From 8f2d928e082307df14fdc9cdb967c5362c65ccba Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Sun, 13 Mar 2011 21:28:24 -0400 Subject: [PATCH] comment, since it's not immediately clear why I'm not unboxing the value in the closure --- simulator.rkt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/simulator.rkt b/simulator.rkt index af6e4a3..8e4bd50 100644 --- a/simulator.rkt +++ b/simulator.rkt @@ -157,8 +157,9 @@ (machine-proc m)])) -(: lookup-env-reference (machine EnvReference -> SlotValue)) -(define (lookup-env-reference m ref) +(: lookup-env-reference/closure-capture (machine EnvReference -> SlotValue)) +;; Capture values for the closure, given a set of environment references. +(define (lookup-env-reference/closure-capture m ref) (cond [(EnvLexicalReference? ref) (if (EnvLexicalReference-unbox? ref) (ensure-primitive-value-box (env-ref m (EnvLexicalReference-depth ref))) @@ -256,7 +257,7 @@ (target-updater! m (make-closure (MakeCompiledProcedure-label op) (MakeCompiledProcedure-arity op) (map (lambda: ([r : EnvReference]) - (lookup-env-reference m r)) + (lookup-env-reference/closure-capture m r)) (MakeCompiledProcedure-closed-vals op))))] [(ApplyPrimitiveProcedure? op)