diff --git a/compiler/compiler.rkt b/compiler/compiler.rkt index e58939a..c646cdc 100644 --- a/compiler/compiler.rkt +++ b/compiler/compiler.rkt @@ -235,7 +235,7 @@ (loop (Branch-consequent exp) cenv) (loop (Branch-alternative exp) cenv))] [(Lam? exp) - (cons (make-lam+cenv exp cenv) + (cons (make-lam+cenv exp (extract-lambda-cenv exp cenv)) (loop (Lam-body exp) (extract-lambda-cenv exp cenv)))] [(CaseLam? exp) @@ -1022,7 +1022,7 @@ ;; Closures will target their value to the 'val register, and use return linkage. (define (compile-lambda-body exp cenv) (parameterize ([current-lambda-being-compiled exp]) - (define all-applications (collect-lam-applications exp (extract-lambda-cenv exp cenv))) + (define all-applications (collect-lam-applications exp cenv)) (let: ([maybe-unsplice-rest-argument : InstructionSequence (if (Lam-rest? exp) @@ -1040,7 +1040,7 @@ empty-instruction-sequence)] [lam-body-code : InstructionSequence (compile (Lam-body exp) - (extract-lambda-cenv exp cenv) + cenv 'val return-linkage)]) diff --git a/version.rkt b/version.rkt index 6a24895..7b9b521 100644 --- a/version.rkt +++ b/version.rkt @@ -7,4 +7,4 @@ (provide version) (: version String) -(define version "1.227") +(define version "1.228")