diff options
author | dos-reis <gdr@axiomatics.org> | 2011-12-02 19:38:49 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-12-02 19:38:49 +0000 |
commit | 4891880a4cdc0eebdf1a8f11d771f40e0e1c394e (patch) | |
tree | 4e690e747c1893dd5a175f6bc762f4a3b4c09087 /src/interp/g-opt.boot | |
parent | cc44b14797968a894e92bcff4a4afe30b26dd896 (diff) | |
download | open-axiom-4891880a4cdc0eebdf1a8f11d771f40e0e1c394e.tar.gz |
* interp/buildom.boot (seteltRecordFun): Change EXIT to %exit.
* interp/clam.boot (compHash):Likewise.
* interp/g-opt.boot (changeVariableDefinitionToStore): Likewise.
(jumpToToplevel?): Likewise.
(groupVariableDefinitions): Likewise.
(changeLeaveToExit): Likewise.
(optLabelled): Likewise.
(optSeq): Likewise.
* interp/lisp-backend.boot: Translate %exit to EXIT.
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r-- | src/interp/g-opt.boot | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index 003f3d0a..75df003b 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -97,7 +97,7 @@ changeVariableDefinitionToStore(form,vars) == abstractionOperator? form.op => changeVariableDefinitionToStore(form.absBody,[:form.absParms,:vars]) vars - form is ['%seq,:stmts,['EXIT,val]] => + form is ['%seq,:stmts,['%exit,val]] => for s in stmts repeat vars := changeVariableDefinitionToStore(s,vars) changeVariableDefinitionToStore(val,vars) @@ -110,7 +110,7 @@ jumpToToplevel? x == atomic? x => false op := x.op op is '%seq => CONTAINED('%leave,x.args) -- FIXME: what about GO? - op in '(EXIT %leave) => true + op in '(%exit %leave) => true or/[jumpToToplevel? x' for x' in x] ++ Return true if `form' is just one assignment expression. @@ -135,7 +135,7 @@ groupVariableDefinitions form == [form.absKind,form.absParms,groupVariableDefinitions form.absBody] form is ['%loop,:iters,body,val] => [form.op,:iters,groupVariableDefinitions body,val] - form isnt ['%seq,:stmts,['EXIT,val]] => form + form isnt ['%seq,:stmts,['%exit,val]] => form defs := nil for x in stmts while nonExitingSingleAssignment? x repeat defs := [x.args,:defs] @@ -143,7 +143,7 @@ groupVariableDefinitions form == stmts := drop(#defs,stmts) expr := stmts = nil => val - ['%seq,:stmts,['EXIT,val]] + ['%seq,:stmts,['%exit,val]] ['%bind,reverse! defs,expr] optimizeFunctionDef(def) == @@ -213,7 +213,7 @@ subrname u == changeLeaveToExit(s,g) == s isnt [.,:.] or s.op in '(QUOTE %seq REPEAT COLLECT %collect %loop) => nil - s is ['%leave, =g,:u] => (s.first := "EXIT"; s.rest := u) + s is ['%leave, =g,:u] => (s.first := '%exit; s.rest := u) changeLeaveToExit(first s,g) changeLeaveToExit(rest s,g) @@ -252,14 +252,14 @@ optLabelled (x is ['%labelled,g,a]) == removeNeedlessLeave a if a is ['%seq,:s,['%leave,=g,u]] then changeLeaveToExit(s,g) - a.rest := [:s,["EXIT",u]] + a.rest := [:s,['%exit,u]] a := simplifyVMForm a if hasNoLeave(a,g) then resetTo(x,a) else changeLeaveToGo(a,g) x.first := '%seq - x.rest := [["EXIT",a],second g,["EXIT",second g]] + x.rest := [['%exit,a],second g,['%exit,second g]] x optSPADCALL(form is ['SPADCALL,:argl]) == @@ -424,14 +424,14 @@ optSeq ['%seq,:l] == --this gets rid of unwanted labels generated by declarations in %seq [first l,:getRidOfTemps rest l] seqToCOND l == - transform:= [[a,b] for x in l while (x is ['%when,[a,["EXIT",b]]])] + transform:= [[a,b] for x in l while (x is ['%when,[a,['%exit,b]]])] before:= take(#transform,l) aft:= after(l,before) null before => ['%seq,:aft] null aft => ['%when,:transform,'(%otherwise (conderr))] optCond ['%when,:transform,['%otherwise,optSeq ['%seq,:aft]]] tryToRemoveSeq l == - l is ['%seq,[op,a]] and op in '(EXIT RETURN %leave %return) => a + l is ['%seq,[op,a]] and op in '(%exit RETURN %leave %return) => a l optSuchthat [.,:u] == ["SUCHTHAT",:u] |