aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog9
-rw-r--r--src/interp/i-eval.boot23
2 files changed, 14 insertions, 18 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 12f9caeb..336f1501 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,11 @@
-2011-03-06 Gabriel Dos Reis <gdr@cse.tamu.edu>
+2011-03-06 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/i-eval.boot (mkEvalable): Simplify.
+ (mkEvalableMapping): Remove.
+ (mkEvalableRecord): Likewise.
+ (mkEvalableUnion): Likewise.
+
+2011-03-06 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %c2s.
* interp/lisp-backend.boot: Translate it.
diff --git a/src/interp/i-eval.boot b/src/interp/i-eval.boot
index e857253d..56e5fc33 100644
--- a/src/interp/i-eval.boot
+++ b/src/interp/i-eval.boot
@@ -49,12 +49,12 @@ evalDomain form ==
mkEvalable form ==
form is [op,:argl] =>
- op="QUOTE" => form
- op="WRAPPED" => mkEvalable devaluate argl
- op="Record" => mkEvalableRecord form
- op="Union" => mkEvalableUnion form
- op="Mapping"=> mkEvalableMapping form
- op="Enumeration" => form
+ op is "QUOTE" => form
+ op is ":" => [op,second form,mkEvalable third form]
+ op is "WRAPPED" => mkEvalable devaluate argl
+ op in '(Record Union Mapping) =>
+ [op,:[mkEvalable arg for arg in argl]]
+ op is 'Enumeration => form
-- a niladic constructor instantiation goes by itself
constructor? op and argl = nil => form
loadIfNecessary op
@@ -75,17 +75,6 @@ mkEvalable form ==
FBPIP form => BPINAME form
form
-mkEvalableMapping form ==
- [first form,:[mkEvalable d for d in rest form]]
-
-mkEvalableRecord form ==
- [first form,:[[":",n,mkEvalable d] for [":",n,d] in rest form]]
-
-mkEvalableUnion form ==
- isTaggedUnion form =>
- [first form,:[[":",n,mkEvalable d] for [":",n,d] in rest form]]
- [first form,:[mkEvalable d for d in rest form]]
-
evaluateType0 form ==
-- Takes a parsed, unabbreviated type and evaluates it, replacing
-- type valued variables with their values, and calling bottomUp