Do you mean the situation with one module, like this one?
;; a.rkt
#lang racket
(provide f c)
(define (f x) x)
(f 3) ; call might be inlined
(define c 10)
(define use-c c) ; constant might be folded
Or are two modules involved, like this second one?
;; b.rkt
#lang racket
(require
If you compile a.rkt normally and set
`compile-context-preservation-enabled' to #f forb.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
When I wrote inlining, I should have written function inlining.
The `compile-context-preservation-enabled' parameter doesn't affect
propagation of non-function constants (which I incorrectly called
folding in my previous message); it affects only function inlining.
At Thu, 19 Jan 2012 10:49:22
Hi everyone,
So Whalesong is actually breaking on a few of my test case examples
because 5.2.1 does some aggressive inlining. Specifically, it's doing
intra-module constant optimizations. Whalesong depends on the late
binding of module bindings in some special places (specifically, the
FFI), so
So Whalesong is actually breaking on a few of my test case examples
because 5.2.1 does some aggressive inlining. Specifically, it's doing
intra-module constant optimizations. Whalesong depends on the late
binding of module bindings in some special places (specifically, the
FFI), so I need a
5 matches
Mail list logo