aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-spec1.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-05-27 05:43:57 +0000
committerdos-reis <gdr@axiomatics.org>2010-05-27 05:43:57 +0000
commit8f5399e77de0741651b0d058b1aa7f57f43aedb0 (patch)
tree99afff91fbcc1a5b0668cb62c703bd52e3ecbbd6 /src/interp/i-spec1.boot
parenta7e98a2ab2fcc87c3505ab11708d5bf24607ae85 (diff)
downloadopen-axiom-8f5399e77de0741651b0d058b1aa7f57f43aedb0.tar.gz
* interp/i-map.boot (compileCoerceMap): Minivectors are global
variables. Generate appropriate code. * interp/i-spec1.boot (compileTargetedADEF): Likewise. (compileADEFBody): Likewise. * interp/slam.boot (isRecurrenceRelation): Likewise. Adjust patterns to match minivectors. (mkDiffAssoc): Likewise. (reportFunctionCompilation): Don't declare minivectors.
Diffstat (limited to 'src/interp/i-spec1.boot')
-rw-r--r--src/interp/i-spec1.boot8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot
index 2b3b5ba3..4164d514 100644
--- a/src/interp/i-spec1.boot
+++ b/src/interp/i-spec1.boot
@@ -153,8 +153,8 @@ compileTargetedADEF(t,vars,types,body) ==
compileADEFBody(t,vars,types,body,computedResultType) ==
--+
$compiledOpNameList := [$mapName]
- minivectorName := makeInternalMapMinivectorName(PNAME $mapName)
- body := substitute(minivectorName,"$$$",body)
+ minivectorName := makeInternalMapMinivectorName PNAME $mapName
+ body := substitute(["%dynval",MKQ minivectorName],"$$$",body)
setDynamicBinding(minivectorName,LIST2VEC $minivector)
-- The use of the three variables $definingMap, $genValue and $compilingMap
@@ -177,9 +177,7 @@ compileADEFBody(t,vars,types,body,computedResultType) ==
-- MCD 13/3/96
parms := [:vars,"envArg"]
if not $definingMap and ($genValue or $compilingMap) then
- fun := [$mapName,["LAMBDA",parms,
- declareGlobalVariables [minivectorName],
- :declareUnusedParameters(parms,body)]]
+ fun := [$mapName,["LAMBDA",parms,:declareUnusedParameters(parms,body)]]
code := wrap compileInteractive fun
else
$freeVariables: local := []