First cut at trying to lift some variable initializations into the
enclosing LET. Basically, we look for something like (let (out-1 out-2) (setq out-1 <init-1>) (setq out-2 <init-2>) <stuff>) and try to convert that to (let ((out-1 <init-1>) (out-2 <init-2>)) <stuff>) right after series has completed all of the macroexpansions it wants. Because this may be buggy, you can enable this feature by setting *lift-out-vars-p* to T. It defaults to NIL. Note: this can cause CMUCL sometimes to produce a compile warning that constant folding failed. (Often caused by trying to compute array-total-size of a known constant list.)
Loading
Please sign in to comment