However, if it marks wrong way, there is problems. I have introduced define-constant syntax and implicit inliner for non exported constant value since version 0.2.2. The latter one had the problem. The compiler marks some variable which should not be inlinable as inlinable. Let me show my embarrassing staff:
(library (test) (export test) (import (rnrs)) (define *inner-value* #f) (define *inner-value2* #f) (define (test) (and (begin (set! *inner-value* #t)) (begin (set! *inner-value2* '()))) (display *inner-value*)(display *inner-value2*)(newline)) )In this case, (I actually did not check if it does mark wrongly or not) *inner-value2* will be marked as inlinable, so the compiler inline it as #f. This is the problem. As you can see, it has to be '().
Inlinable marking is written as conservative as possible. Well, actually it wasn't ...
I was too lazy to open an issue for this on Google code, so I just fixed it.