aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/interp/i-spec1.boot8
2 files changed, 9 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0156f61d..679b2528 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-27 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/i-spec1.boot (checkForFreeVariables): Emit
+ getSimpleArrayEntry instead of ELT.
+
2009-06-23 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/bootlex.lisp (spad): Don't bind $noSubsumption.
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot
index a23aaffb..46416212 100644
--- a/src/interp/i-spec1.boot
+++ b/src/interp/i-spec1.boot
@@ -799,10 +799,10 @@ checkForFreeVariables(v,locals) ==
v="$$$" => v -- Placeholder for mini-vector
MEMQ(v,$boundVariables) => v
p := POSITION(v,$freeVariables) =>
- ["ELT","envArg",positionInVec(p,#($freeVariables))]
+ ["getSimpleArrayEntry","envArg",positionInVec(p,#($freeVariables))]
(locals = "ALL") or MEMQ(v,locals) =>
$freeVariables := [v,:$freeVariables]
- ["ELT","envArg",positionInVec(0,#($freeVariables))]
+ ["getSimpleArrayEntry","envArg",positionInVec(0,#($freeVariables))]
v
LISTP v =>
CDR(LASTTAIL v) => -- Must be a better way to check for a genuine list?
@@ -835,9 +835,9 @@ checkForFreeVariables(v,locals) ==
-- if we are in a lambda within another lambda.
newvar :=
p := POSITION(var,$freeVariables) =>
- ["ELT","envArg",positionInVec(p,#($freeVariables))]
+ ["getSimpleArrayEntry","envArg",positionInVec(p,#($freeVariables))]
$freeVariables := [var,:$freeVariables]
- ["ELT","envArg",positionInVec(0,#($freeVariables))]
+ ["getSimpleArrayEntry","envArg",positionInVec(0,#($freeVariables))]
["SETF",newvar,checkForFreeVariables(form,locals)]
error "Non-simple variable bindings are not currently supported"
op = "PROG" =>