diff options
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/interp/g-opt.boot | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 5faf5478..a024bbf9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2010-07-25 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/g-opt.boot (oprCond): Replace use of TruthP with direct + comparison to %true. + +2010-07-25 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/g-opt.boot (optCall): Don't call optimize again. (optCallSpecially): Remove deadcode. diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index 833ed930..7c09d4a0 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -321,7 +321,7 @@ optMkRecord ["mkRecord",:u] == ["VECTOR",:u] optCond (x is ['COND,:l]) == - if l is [a,[aa,b]] and TruthP aa and b is ["COND",:c] then + if l is [a,[aa,b]] and aa = '%true and b is ["COND",:c] then x.rest.rest := c if l is [[p1,:c1],[p2,:c2],:.] then if (p1 is ['%not,=p2]) or (p2 is ['%not,=p1]) then @@ -330,7 +330,7 @@ optCond (x is ['COND,:l]) == c1 is ['NIL] and p2 = '%true and first c2 = '%true => p1 is ['%not,p1']=> return p1' return ['%not,p1] - l is [[p1,:c1],[p2,:c2],[p3,:c3]] and TruthP p3 => + l is [[p1,:c1],[p2,:c2],[p3,:c3]] and p3 = '%true => EqualBarGensym(c1,c3) => ["COND",[['%or,p1,['%not,p2]],:c1],['%true,:c2]] EqualBarGensym(c1,c2) => ["COND",[['%or,p1,p2],:c1],['%true,:c3]] |