aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog7
-rw-r--r--src/interp/i-spec1.boot12
2 files changed, 13 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 47d574d0..afa9f1a1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,12 @@
2010-05-23 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * interp/i-spec1.boot (compileADEFBody): Establish a dynamic
+ binding for $freeVariables and $boundVariables.
+ (mkIterFun): Likewise.
+ (mkIterZippedFun): Likewise.
+
+2010-05-23 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* boot/tokens.boot: gensym is now candidate for renaming.
* boot/ast.boot: Replace GENSYM with gensym.
* interp/buildom.boot: Likewise.
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot
index e87b8190..b8799533 100644
--- a/src/interp/i-spec1.boot
+++ b/src/interp/i-spec1.boot
@@ -182,8 +182,8 @@ compileADEFBody(t,vars,types,body,computedResultType) ==
:declareUnusedParameters(parms,body)]]
code := wrap compileInteractive fun
else
- $freeVariables := []
- $boundVariables := [minivectorName,:vars]
+ $freeVariables: local := []
+ $boundVariables: local := [minivectorName,:vars]
-- CCL does not support upwards funargs, so we check for any free variables
-- and pass them into the lambda as part of envArg.
body := checkForFreeVariables(body,"ALL")
@@ -781,8 +781,8 @@ mkIterFun([index,:s],funBody,$localVars) ==
mkLocalVar($mapName,index)
[m]:=bottomUpCompile funBody
mapMode := ['Mapping,m,indMode]
- $freeVariables := []
- $boundVariables := [index]
+ $freeVariables: local := []
+ $boundVariables: local := [index]
-- CCL does not support upwards funargs, so we check for any free variables
-- and pass them into the lambda as part of envArg.
body := checkForFreeVariables(getValue funBody,$localVars)
@@ -919,8 +919,8 @@ mkIterZippedFun(indexList,funBody,zipType,$localVars) ==
mkLocalVar($mapName,$index)
[m]:=bottomUpCompile funBody
mapMode := ['Mapping,m,zipType]
- $freeVariables := []
- $boundVariables := [$index]
+ $freeVariables: local := []
+ $boundVariables: local := [$index]
-- CCL does not support upwards funargs, so we check for any free variables
-- and pass them into the lambda as part of envArg.
body :=