diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 7 | ||||
-rw-r--r-- | src/interp/i-spec1.boot | 12 |
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 := |