diff options
Diffstat (limited to 'src/interp/nruncomp.boot')
-rw-r--r-- | src/interp/nruncomp.boot | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/interp/nruncomp.boot b/src/interp/nruncomp.boot index d986a708..b0eeb807 100644 --- a/src/interp/nruncomp.boot +++ b/src/interp/nruncomp.boot @@ -391,9 +391,7 @@ buildFunctor($definition is [name,:args],sig,code,$locals,$e) == domainShell := GETREFV ($NRTbase + $NRTdeltaLength) for i in 0..4 repeat domainShell.i := $domainShell.i --we will clobber elements; copy since $domainShell may be a cached vector - $template := - $NRTvec = true => GETREFV ($NRTbase + $NRTdeltaLength) - nil + $template := GETREFV ($NRTbase + $NRTdeltaLength) $catvecList:= [domainShell,:[emptyVector for u in CADR domainShell.4]] $catNames := ['$] -- for DescendCode -- to be changed below for slot 4 $maximalViews:= nil @@ -412,19 +410,16 @@ buildFunctor($definition is [name,:args],sig,code,$locals,$e) == storeOperationCode:= DescendCode(code,true,nil,first $catNames) outsideFunctionCode:= NRTaddDeltaCode() storeOperationCode:= NRTputInLocalReferences storeOperationCode - if $NRTvec = true then - NRTdescendCodeTran(storeOperationCode,nil) --side effects storeOperationCode + NRTdescendCodeTran(storeOperationCode,nil) --side effects storeOperationCode codePart2:= - $NRTvec = true => - argStuffCode := - [[$setelt,'$,i,v] for i in $NRTbase.. for v in $FormalMapVariableList - for arg in rest $definition] - if MEMQ($NRTaddForm,$locals) then - addargname := $FormalMapVariableList.(POSN1($NRTaddForm,$locals)) - argStuffCode := [[$setelt,'$,5,addargname],:argStuffCode] - [['stuffDomainSlots,'$],:argStuffCode, - :predBitVectorCode2,storeOperationCode] - [:outsideFunctionCode,storeOperationCode] + argStuffCode := + [[$setelt,'$,i,v] for i in $NRTbase.. for v in $FormalMapVariableList + for arg in rest $definition] + if MEMQ($NRTaddForm,$locals) then + addargname := $FormalMapVariableList.(POSN1($NRTaddForm,$locals)) + argStuffCode := [[$setelt,'$,5,addargname],:argStuffCode] + [['stuffDomainSlots,'$],:argStuffCode, + :predBitVectorCode2,storeOperationCode] $CheckVectorList := NRTcheckVector domainShell --CODE: part 1 @@ -594,9 +589,7 @@ NRTsetVector4a(sig,form,cond) == NRTmakeSlot1 domainShell == opDirectName := INTERN STRCONC(PNAME first $definition,'";opDirect") - fun := - $NRTmakeCompactDirect => '(function lookupInCompactTable) - '(function lookupInTable) + fun := '(function lookupInCompactTable) [($QuickCode=>'QSETREFV;'SETELT), '$,1, ['LIST,fun,'$,opDirectName]] NRTmakeSlot1Info() == |