diff options
author | dos-reis <gdr@axiomatics.org> | 2010-05-27 05:43:57 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2010-05-27 05:43:57 +0000 |
commit | 8f5399e77de0741651b0d058b1aa7f57f43aedb0 (patch) | |
tree | 99afff91fbcc1a5b0668cb62c703bd52e3ecbbd6 /src/interp/i-map.boot | |
parent | a7e98a2ab2fcc87c3505ab11708d5bf24607ae85 (diff) | |
download | open-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-map.boot')
-rw-r--r-- | src/interp/i-map.boot | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/interp/i-map.boot b/src/interp/i-map.boot index ab24945f..713f32d2 100644 --- a/src/interp/i-map.boot +++ b/src/interp/i-map.boot @@ -763,16 +763,16 @@ compileCoerceMap(op,argTypes,mm) == name:= makeLocalModemap(op,[first sig,:argTypes]) argCode := [objVal(coerceInteractive(objNew(arg,t1),t2) or throwKeyedMsg("S2IC0001",[arg,$mapName,t1,t2])) - for t1 in argTypes for t2 in rest sig for arg in parms] + for t1 in argTypes for t2 in sig.source for arg in parms] $insideCompileBodyIfTrue := false parms:= [:parms,'envArg] body := ['SPADCALL,:argCode,['LIST,['function,imp]]] - minivectorName := makeInternalMapMinivectorName(name) - body := declareUnusedParameters(parms,substitute(minivectorName,"$$$",body)) + minivectorName := makeInternalMapMinivectorName name + body := substitute(["%dynval",MKQ minivectorName],"$$$",body) setDynamicBinding(minivectorName,LIST2VEC $minivector) - compileInteractive - [name,['LAMBDA,parms,declareGlobalVariables [minivectorName],:body]] - first sig + compileInteractive + [name,['LAMBDA,parms,:declareUnusedParameters(parms,body)]] + sig.target depthOfRecursion(opName,body) == -- returns the "depth" of recursive calls of opName in body |