[bitc-dev] Further problems with letrec

Jonathan S. Shapiro shap at eros-os.org
Sun Jun 25 12:38:36 EDT 2006


There is a larger problem with LETREC. Consider:

  (letrec ((a:int32  (+ 1 2))
           (f  (lambda (x) (+ x a)))) ...body...)

which will get rewritten by the closure converter. The problem here is
that 'a' will get captured before it is initialized. When we switch to
MAKE-CLOSURE and SET-CLOSURE, this will be corrected as well.


shap



More information about the bitc-dev mailing list