aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog11
-rw-r--r--src/interp/compiler.boot2
-rw-r--r--src/interp/functor.boot10
-rw-r--r--src/interp/nrunfast.boot4
-rw-r--r--src/interp/nrungo.boot3
-rw-r--r--src/interp/showimp.boot5
-rw-r--r--src/interp/wi1.boot5
7 files changed, 28 insertions, 12 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4a71efb7..930d0a02 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
+2008-11-29 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/compiler.boot (setqSingle): Use setShellEntry.
+ * interp/wi1.boot (setqSingle): Likewise.
+ * interp/functor.boot (setVector4): Likewise.
+ (DescendCode): Abort on SETELT opcode.
+ (SetFunctionSlots): Likewise.
+ * interp/nrunfast.boot (evalSlotDomain): Likewise.
+ * interp/nrungo.boot (NRTevalDomain): Likewise.
+ * interp/showimp.boot (getDomainRefName): Match "setShellEntry".
+
2008-11-28 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/define.boot (compCapsuleInner): Call processFunctor.
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 686192e7..3245b887 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -854,7 +854,7 @@ setqSingle(id,val,m,E) ==
--e.g. the %LET form below will be changed by putInLocalDomainReferences
--+
if k := NRTassocIndex(id) then
- form := ['SETELT,"$",k,x]
+ form := ["setShellEntry","$",k,x]
else form:=
$QuickLet => ["%LET",id,x]
["%LET",id,x,
diff --git a/src/interp/functor.boot b/src/interp/functor.boot
index e7858752..2e0e7a4d 100644
--- a/src/interp/functor.boot
+++ b/src/interp/functor.boot
@@ -420,7 +420,7 @@ setVector4(catNames,catsig,conditions) ==
if $HackSlot4 then
for ["%LET",name,cond,:.] in $getDomainCode repeat
$HackSlot4:=MSUSBT(name,cond,$HackSlot4)
- code := ['SETELT,'$,4,'TrueDomain]
+ code := ["setShellEntry",'$,4,'TrueDomain]
code:=['(%LET TrueDomain (NREVERSE TrueDomain)),:$HackSlot4,code]
code:=
[:
@@ -650,9 +650,9 @@ DescendCode(code,flag,viewAssoc,EnvToPass) ==
code is ['devaluate,:.] => nil
code is ['MDEF,:.] => nil
code is ['call,:.] => code
- code is ['SETELT,:.] => code -- can be generated by doItIf
- code is ['QSETREFV,:.] => code -- can be generated by doItIf
code is ["setShellEntry",:.] => code -- can be generated by doItIf
+ code is ['SETELT,:.] => systemErrorHere "DescendCode"
+ code is ['QSETREFV,:.] => systemErrorHere "DescendCode"
stackWarning('"unknown Functor code: %1 ",[code])
code
@@ -715,8 +715,8 @@ SetFunctionSlots(sig,body,flag,mode) == --mode is either "original" or "adding"
if not (catImplem is ['PAC,:.]) then
keyedSystemError("S2OR0002",[catImplem])
body is ["setShellEntry",:.] => body
- body is ['SETELT,:.] => body
- body is ['QSETREFV,:.] => body
+ body is ['SETELT,:.] => systemErrorHere "SetFunctionSlots"
+ body is ['QSETREFV,:.] => systemErrorHere "SetFunctionSlots"
nil
LookUpSigSlots(sig,siglist) ==
diff --git a/src/interp/nrunfast.boot b/src/interp/nrunfast.boot
index c7af9a80..028658a5 100644
--- a/src/interp/nrunfast.boot
+++ b/src/interp/nrunfast.boot
@@ -76,7 +76,9 @@ evalSlotDomain(u,dollar) ==
u = "$$" => dollar
FIXP u =>
VECP (y := dollar.u) => y
- y is ['SETELT,:.] => eval y--lazy domains need to marked; this is dangerous?
+ y is ["setShellEntry",:.] => eval y
+ --lazy domains need to marked; this is dangerous?
+ y is ['SETELT,:.] => systemErrorHere "evalSlotDomain"
y is [v,:.] =>
VECP v => lazyDomainSet(y,dollar,u) --old style has [$,code,:lazyt]
IDENTP v and constructor? v
diff --git a/src/interp/nrungo.boot b/src/interp/nrungo.boot
index b2a2f263..51ab48dc 100644
--- a/src/interp/nrungo.boot
+++ b/src/interp/nrungo.boot
@@ -60,7 +60,8 @@ isInstantiated [op,:argl] ==
--=======================================================
NRTevalDomain form ==
- form is ['SETELT,:.] => eval form
+ form is ["setShellEntry",:.] => eval form
+ form is ['SETELT,:.] => systemErrorHere "NRTevalDomain"
evalDomain form
--------------------> NEW DEFINITION (see interop.boot.pamphlet)
diff --git a/src/interp/showimp.boot b/src/interp/showimp.boot
index d873129f..06db93ac 100644
--- a/src/interp/showimp.boot
+++ b/src/interp/showimp.boot
@@ -197,10 +197,11 @@ getDomainRefName(dom,nam) ==
not FIXP nam => nam
slot := dom.nam
VECP slot => slot.0
- slot is ['SETELT,:.] => getDomainRefName(dom,getDomainSeteltForm slot)
+ slot is ["setShellEntry",:.] =>
+ getDomainRefName(dom,getDomainSeteltForm slot)
slot
-getDomainSeteltForm ['SETELT,.,.,form] ==
+getDomainSeteltForm ["setShellEntry",.,.,form] ==
form is ['evalSlotDomain,u,d] => devaluateSlotDomain(u,d)
VECP form => systemError()
form
diff --git a/src/interp/wi1.boot b/src/interp/wi1.boot
index fc971f76..9b83ebc0 100644
--- a/src/interp/wi1.boot
+++ b/src/interp/wi1.boot
@@ -579,7 +579,7 @@ setqSingle(id,val,m,E) ==
if (k:=NRTassocIndex(id))
then
$markFreeStack := [id,:$markFreeStack]
- form:=['SETELT,"$",k,x]
+ form:=["setShellEntry","$",k,x]
else form:=
$QuickLet => ["%LET",id,x]
["%LET",id,x,
@@ -1214,7 +1214,8 @@ compDefineCategory2(form,signature,specialCases,body,m,e,
['sublisV,['PAIR,['QUOTE,sargl],['LIST,:
[['devaluate,u] for u in sargl]]],body]
body:=
- ['PROG1,["%LET",g:= GENSYM(),body],['SETELT,g,0,mkConstructor $functorForm]]
+ ['PROG1,["%LET",g:= GENSYM(),body],
+ ["setShellEntry",g,0,mkConstructor $functorForm]]
fun:= compile [op',['LAM,sargl,body]]
-- 5. give operator a 'modemap property