aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/boot/ast.boot6
2 files changed, 9 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 23586d9f..be8dd539 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-08 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * boot/ast.boot (bfReduce): Check neutral value for original
+ operator too.
+ (bfReduceCollect): Likewise.
+
2008-10-07 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/i-util.boot (printPrompt): New.
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 9bdd3e08..1e8a1452 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -348,7 +348,7 @@ bfSep(iters)==
bfReduce(op,y)==
a:=if EQCAR(op,"QUOTE") then second op else op
op:=bfReName a
- init:=GET(op,"SHOETHETA")
+ init := GET(a,"SHOETHETA") or GET(op,"SHOETHETA")
g:=bfGenSymbol()
g1:=bfGenSymbol()
body:=['SETQ,g,[op,g,g1]]
@@ -371,7 +371,7 @@ bfReduceCollect(op,y)==
itl:=y.2
a:=if EQCAR(op,"QUOTE") then second op else op
op:=bfReName a
- init:=GET(op,"SHOETHETA")
+ init := GET(a, "SHOETHETA") or GET(op,"SHOETHETA")
bfOpReduce(op,init,body,itl)
else
a:=bfTupleConstruct (y.1)
@@ -436,7 +436,7 @@ bfOpReduce(op,init,y,itl)==
then
g1:=bfGenSymbol()
init:=['CAR,g1]
- y:=['CDR,g1]
+ y:=['CDR,g1] -- ??? bogus self-assignment/initialization
extrait:= [[[g],[init],[],[],[],[g]]]
bfMKPROGN [['L%T,g1,y],bfLp2(extrait,itl,body)]
else