aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/interp/compiler.boot5
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)