aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/interp/compiler.boot8
-rw-r--r--src/interp/g-opt.boot2
-rw-r--r--src/interp/lisp-backend.boot2
4 files changed, 12 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 5a72e0a2..1ecae768 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,11 @@
2012-02-25 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * interp/compiler.boot (finishLambdaExpression): Use %closure.
+ (extractCodeAndConstructTriple): Likewise.
+ * interp/g-opt.boot (optCall): Adjust.
+
+2012-02-25 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* interp/nruncomp.boot (genDeltaEntry): Fix thinko.
2012-02-24 Gabriel Dos Reis <gdr@cs.tamu.edu>
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index cdd57767..4a1cd153 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -92,7 +92,7 @@ compTopLevel: (%Form,%Mode,%Env) -> %Maybe %Triple
compTopLevel(x,m,e) ==
-- signals that target is derived from lhs-- see NRTmakeSlot1Info
$NRTderivedTargetIfTrue: local := false
- $killOptimizeIfTrue: local:= false
+ $killOptimizeIfTrue: local := false
$forceAdd: local:= false
-- start with a base list of domains we may want to inline.
$optimizableConstructorNames: local := $SystemInlinableConstructorNames
@@ -335,10 +335,10 @@ finishLambdaExpression(expr is ["LAMBDA",vars,.],env) ==
vec := ['%vector,:reverse! vec]
["LAMBDA",[:vars,"$$"],:body]
fname := ["CLOSEDFN",expandedFunction] --Like QUOTE, but gets compiled
- ['%pair,fname,vec]
+ ['%closure,fname,vec]
compWithMappingMode(x,m is ["Mapping",m',:sl],oldE) ==
- $killOptimizeIfTrue: local:= true
+ $killOptimizeIfTrue: local := true
e := oldE
isFunctor x =>
if get(x,"modemap",$CategoryFrame) is [[[.,target,:argModeList],.],:.] and
@@ -364,7 +364,7 @@ extractCodeAndConstructTriple(u, m, oldE) ==
if fn is ['%apply,a] then fn := a
[fn,m,oldE]
[op,:.,env] := u
- [['%pair,['%function,op],env],m,oldE]
+ [['%closure,['%function,op],env],m,oldE]
compExpression(x,m,e) ==
$insideExpressionIfTrue: local:= true
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 958f69d7..66aa756d 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -543,7 +543,7 @@ optCall (x is ['%call,:u]) ==
x.first := 'SPADCALL
x.rest := [:a,name]
x
- fn is ['%pair,['%function,op],env] =>
+ fn is ['%closure,['%function,op],env] =>
x.first := op
x.rest := [:a,env]
x
diff --git a/src/interp/lisp-backend.boot b/src/interp/lisp-backend.boot
index cee96c52..b23d1bf6 100644
--- a/src/interp/lisp-backend.boot
+++ b/src/interp/lisp-backend.boot
@@ -598,7 +598,7 @@ for x in [
-- ['%nil, :'NIL],
-- unary list operations
['%head, :'CAR],
- ['%pair, :'CONS],
+ ['%pair, :'CONS],
['%lempty?, :'NULL],
['%lfirst, :'CAR],
['%llength, :'LIST_-LENGTH],