From: Nikodemus S. <nik...@ra...> - 2006-10-30 19:26:48
|
bdo...@la... (Brian Downing) writes: > I also found this in the fopcompiler: > > ;; We wrap the real lambda inside another one to ensure > ;; that the compiler doesn't e.g. let convert it, thinking > ;; that there are no external references. > (let* ((handle (%compile `(lambda () ,form) > *compile-object* > :path path))) > (when for-value-p > (sb!fasl::dump-push handle *compile-object*) > ;; And then call the wrapper function when loading the FASL > (sb!fasl::dump-fop 'sb!fasl::fop-funcall *compile-object*) > (sb!fasl::dump-byte 0 *compile-object*))) > > ...which results in a similar effect in fopcompiled functions. If you are looking at this, then bug 406 is worth looking at too: it seems like there is also potential for unexpected external references due to that %COMPILE. Cheers, -- Nikodemus Schemer: "Buddha is small, clean, and serious." Lispnik: "Buddha is big, has hairy armpits, and laughs." |