diff options
-rw-r--r-- | src/ChangeLog | 11 | ||||
-rw-r--r-- | src/interp/compiler.boot | 2 | ||||
-rw-r--r-- | src/interp/functor.boot | 10 | ||||
-rw-r--r-- | src/interp/nrunfast.boot | 4 | ||||
-rw-r--r-- | src/interp/nrungo.boot | 3 | ||||
-rw-r--r-- | src/interp/showimp.boot | 5 | ||||
-rw-r--r-- | src/interp/wi1.boot | 5 |
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 |