diff options
author | dos-reis <gdr@axiomatics.org> | 2012-05-04 18:12:21 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2012-05-04 18:12:21 +0000 |
commit | 0cd308630a5760fd4b6b2740ada3774a59585099 (patch) | |
tree | 3b07808173900496d6a58f00bd696d4fb37c00f7 /src/interp | |
parent | 4e59a0f4d0ce881f79ae146fce1f85467755bb99 (diff) | |
download | open-axiom-0cd308630a5760fd4b6b2740ada3774a59585099.tar.gz |
* interp/lisp-backend.boot (assembleCode): New.
* interp/c-util.boot (backendCompileSPADSLAM): Use it.
(backendCompile2): Likewise.
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/c-util.boot | 17 | ||||
-rw-r--r-- | src/interp/lisp-backend.boot | 6 |
2 files changed, 9 insertions, 14 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot index 95980031..50861e5f 100644 --- a/src/interp/c-util.boot +++ b/src/interp/c-util.boot @@ -1535,15 +1535,8 @@ backendCompileSPADSLAM(name,args,body) == ["PROGN",["SETQ",g2,app], ["SETQ",al,["cons5",["CONS",key,g2],al]],g2]]]] SETANDFILE(al,nil) -- define the global cache. - -- compile the worker function first. - u := [auxfn,["LAMBDA",args,:body]] - if $PrettyPrint then PRETTYPRINT u - COMP370 u - -- then compile the wrapper (which is the user-visible constructor). - u := [name,["LAMBDA",args,code]] - if $PrettyPrint then PRETTYPRINT u - COMP370 u - name + assembleCode [auxfn,["LAMBDA",args,:body]] + assembleCode [name,["LAMBDA",args,code]] backendCompile2: %Code -> %Symbol backendCompile2 code == @@ -1551,11 +1544,7 @@ backendCompile2 code == systemError ['"parenthesis error in: ", code] symbolTarget(name,$clamList) => compClam(name,args,body,$clamList) type = "SPADSLAM" => backendCompileSPADSLAM(name,args,body) - body := [name,[type,args,:body]] - if $PrettyPrint then PRETTYPRINT body - if not $COMPILE then SAY '"No Compilation" - else COMP370 body - name + assembleCode [name,[type,args,:body]] ++ returns all fuild variables contained in `x'. Fuild variables are ++ identifiers starting with '$', except domain variable names. diff --git a/src/interp/lisp-backend.boot b/src/interp/lisp-backend.boot index e0d5a80e..bb61333e 100644 --- a/src/interp/lisp-backend.boot +++ b/src/interp/lisp-backend.boot @@ -805,3 +805,9 @@ COMPILE1 fun == ['DEFMACRO,name,newArgs,:body] compileLispDefinition(name,body) body + +assembleCode x == + if $PrettyPrint then PRETTYPRINT x + if not $COMPILE then SAY '"No Compilation" + else COMP370 x + first x |