> If you compile "a.rkt" normally and set > `compile-context-preservation-enabled' to #f for"b.rkt", then `f' will > not be inlined (because inlining is disabled), but `c' will still be > replaced with 10.
This is odd then, because I thought I had tried this yesterday and still observed inlining. Let me try again... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #lang racket/base (require compiler/zo-parse compiler/decompile) (define (test b) (parameterize ([current-namespace (make-base-namespace)] (compile-enforce-module-constants b)) (eval (compile '(module foo-1 '#%kernel (#%provide a) (define-values (a) 'hello)))) (define bytecode (compile '(module foo-2 '#%kernel (#%require 'foo-1) (display a) (newline)))) (define op (open-output-bytes)) (write bytecode op) (decompile (zo-parse (open-input-bytes (get-output-bytes op)))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > (test #t) '(begin (module foo-2 .... (display 'hello) (newline))) > (test #f) '(begin (module foo-2 .... (display |_a@(quote foo-1)|) (newline))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; So maybe I'm hallucinating (again). I confirm that compile-enforce-module-constants is working here. I'll need to look at why it didn't appear as effective in the context of Whalesong; perhaps I'd set up the parameterization incorrectly. Thanks! _________________________ Racket Developers list: http://lists.racket-lang.org/dev