From 58d87a5f008107b6ddc93d3191c1ac9380e16e7b Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sun, 23 May 2010 22:26:42 +0000 Subject: * interp/i-spec1.boot (compileADEFBody): Establish a dynamic binding for $freeVariables and $boundVariables. (mkIterFun): Likewise. (mkIterZippedFun): Likewise. --- src/ChangeLog | 7 +++++++ src/interp/i-spec1.boot | 12 ++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 47d574d0..afa9f1a1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2010-05-23 Gabriel Dos Reis + + * interp/i-spec1.boot (compileADEFBody): Establish a dynamic + binding for $freeVariables and $boundVariables. + (mkIterFun): Likewise. + (mkIterZippedFun): Likewise. + 2010-05-23 Gabriel Dos Reis * boot/tokens.boot: gensym is now candidate for renaming. 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 := -- cgit v1.2.3