diff options
author | dos-reis <gdr@axiomatics.org> | 2008-07-02 10:19:16 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-07-02 10:19:16 +0000 |
commit | f434b1c1c6f2c9af3da71cd78218f5fa18906616 (patch) | |
tree | b481da5d8bdcf90f5074ee2f1359a2cb53106456 /src | |
parent | c2d4514bfae7dbe8572c69fac2b9c013252d31f1 (diff) | |
download | open-axiom-f434b1c1c6f2c9af3da71cd78218f5fa18906616.tar.gz |
* interp/compiler.boot (compExpression): Tidy.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 4 | ||||
-rw-r--r-- | src/interp/compiler.boot | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e89e17ef..5d72a4c7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2008-07-02 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * interp/compiler.boot (compExpression): Tidy. + 2008-06-14 Gabriel Dos Reis <gdr@cs.tamu.edu> * algebra/variable.spad.pamphlet (ModePatternVariable): New. diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index 550776b2..4eebd0b6 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -283,7 +283,8 @@ extractCodeAndConstructTriple(u, m, oldE) == compExpression: (%Form,%Mode,%Env) -> %Maybe %Triple compExpression(x,m,e) == $insideExpressionIfTrue: local:= true - atom first x and (fn:= GETL(first x,"SPECIAL")) => + -- special forms have dedicated compilers. + (op := first x) and SYMBOLP op and (fn := GET(op,"SPECIAL")) => FUNCALL(fn,x,m,e) compForm(x,m,e) @@ -1702,4 +1703,4 @@ for x in [["|", :"compSuchthat"],_ ["UnionCategory", :"compConstructorCategory"],_ ["where", :"compWhere"],_ ["[||]", :"compileQuasiquote"]] repeat - MAKEPROP(car x, 'SPECIAL, cdr x) + MAKEPROP(first x, "SPECIAL", rest x) |