aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/interp/c-util.boot22
-rw-r--r--src/interp/types.boot2
3 files changed, 18 insertions, 12 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 92ebd761..db4f4e9e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-27 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/types.boot (%Code): Include %Char.
+ * interp/c-util.boot (middleEndExpand): Temporarilty Comment out
+ signature.
+
2010-07-26 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/g-opt.boot (optCond): Work harder at denesting nested
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index 590c7766..d18c4dea 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -1092,7 +1092,7 @@ mutateLETFormWithUnaryFunction(form,fun) ==
$middleEndMacroList ==
'(COLLECT REPEAT SUCHTHATCLAUSE THETA THETA1 SPADREDUCE SPADDO)
-middleEndExpand: %Form -> %Form
+--middleEndExpand: %Form -> %Code
middleEndExpand x ==
x = '%false or x = '%nil => 'NIL
IDENTP x and (x' := x has %Rename) => x'
@@ -1519,8 +1519,8 @@ ilTransformInsns form ==
--%
++ Replace every middle end sub-forms in `x' with Lisp code.
-mutateToBackendCode: %Form -> %Void
-mutateToBackendCode x ==
+massageBackendCode: %Code -> %Void
+massageBackendCode x ==
IDENTP x and isLispSpecialVariable x => noteSpecialVariable x
atomic? x => nil
-- temporarily have TRACELET report MAKEPROPs.
@@ -1533,7 +1533,7 @@ mutateToBackendCode x ==
x.first := "LETT"
$TRACELETFLAG => x.first := "/TRACE-LET"
u = "%LET" => x.first := "SPADLET"
- mutateToBackendCode CDDR x
+ massageBackendCode CDDR x
if not (u in '(SETQ RELET)) then
IDENTP second x => pushLocalVariable second x
second x is ["FLUID",:.] =>
@@ -1542,15 +1542,15 @@ mutateToBackendCode x ==
MAPC(function pushLocalVariable, LISTOFATOMS second x)
IDENTP u and GET(u,"ILAM") ~= nil =>
x.first := eval u
- mutateToBackendCode x
+ massageBackendCode x
u in '(LET LET_*) =>
oldVars := $LocalVars
vars := nil
for [var,init] in second x repeat
- mutateToBackendCode init
+ massageBackendCode init
$LocalVars := [var,:$LocalVars]
vars := [var,:vars]
- mutateToBackendCode x.rest.rest
+ massageBackendCode x.rest.rest
newVars := setDifference($LocalVars,setUnion(vars,oldVars))
$LocalVars := setUnion(oldVars,newVars)
u in '(PROG LAMBDA) =>
@@ -1559,13 +1559,13 @@ mutateToBackendCode x ==
not (y in $LocalVars) =>
$LocalVars := [y,:$LocalVars]
newBindings := [y,:newBindings]
- res := mutateToBackendCode CDDR x
+ res := massageBackendCode CDDR x
$LocalVars := REMOVE_-IF(function (y +-> y in newBindings),
$LocalVars)
[u,second x,:res]
u = "DECLARE" => nil -- there is nothing to do convert there
- mutateToBackendCode u
- mutateToBackendCode rest x
+ massageBackendCode u
+ massageBackendCode rest x
skipDeclarations: %List -> %List
@@ -1611,7 +1611,7 @@ transformToBackendCode x ==
$LocalVars: fluid := nil
$SpecialVars: fluid := nil
x := middleEndExpand x
- mutateToBackendCode CDDR x
+ massageBackendCode CDDR x
body := skipDeclarations CDDR x
-- Make it explicitly a sequence of statements if it is not a one liner.
body :=
diff --git a/src/interp/types.boot b/src/interp/types.boot
index 37c1d8e5..60139497 100644
--- a/src/interp/types.boot
+++ b/src/interp/types.boot
@@ -129,7 +129,7 @@ namespace BOOT
%Instantiation <=> [%Constructor,:%Form] -- constructor instance
%Env <=> %List -- compiling env
%Mode <=> %Symbol or %String or %List -- type of forms
-%Code <=> %Form -- generated code
+%Code <=> %Form or %Char -- generated code
%Triple <=> -- form + type + env
[%Code,:[%Mode,:[%Env,:null]]]