aboutsummaryrefslogtreecommitdiff
path: root/src/interp/slam.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/slam.boot')
-rw-r--r--src/interp/slam.boot10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/interp/slam.boot b/src/interp/slam.boot
index 450e70a2..3da6c906 100644
--- a/src/interp/slam.boot
+++ b/src/interp/slam.boot
@@ -282,8 +282,8 @@ compileRecurrenceRelation(op,nam,argl,junk,[body,sharpArg,n,:initCode]) ==
newTripleCode := ["LIST",sharpArg,:gsList]
newStateCode :=
- null extraArguments => ["SETQ",stateNam,newTripleCode]
- ["HPUT",stateNam,extraArgumentCode,newTripleCode]
+ null extraArguments => ["%store",["%dynval", MKQ stateNam],newTripleCode]
+ ["HPUT",["%dynval", MKQ stateNam],extraArgumentCode,newTripleCode]
computeFunction:= [auxfn,["LAM",cargl,cbody]] where
cargl:= [:argl,lastArg]
@@ -312,11 +312,11 @@ compileRecurrenceRelation(op,nam,argl,junk,[body,sharpArg,n,:initCode]) ==
initialValueCode :=
extraArguments => ["hashTable",''EQUAL]
tripleCode
- cacheResetCode := ["SETQ",stateNam,initialValueCode]
+ cacheResetCode := ["%store",["%dynval", MKQ stateNam],initialValueCode]
["COND",[["%not",["%and",["BOUNDP",MKQ stateNam], _
- ["CONSP",stateNam]]], _
+ ["CONSP",["%dynval",MKQ stateNam]]]], _
["%LET",stateVar,cacheResetCode]], _
- [''T, ["%LET",stateVar,stateNam]]]
+ [''T, ["%LET",stateVar,["%dynval",MKQ stateNam]]]]
-- when there are extra arguments, initialResetCode resets "stateVar"
-- to the hashtable entry for the extra arguments