@@ -33,7 +33,7 @@
34 tables=$~([(malt ~[[0 *table]]) 1] (objects table))
34 tables=$~([(malt ~[[0 *table]]) 1] (objects table))
35 global-env=table
35 global-env=table
36− local-envs=$~(~[(malt ~[['_ENV' table+[0 ~]]])] (lest (map name value)))
36+ local-envs=$~(~[(malt ~[['_ENV' table+[0 ~]]])] (list (map name value)))
@@ -62,26 +62,20 @@
64 ^- (eval-m value)
64 ^- (eval-m value)
66 =/ body body.blok
65 =/ body body.blok
68 ^- (eval-m value)
68 ^- (eval-m value)
70 ?~ ret.blok (pure nil+~)
70 ?~ ret.blok (pure nil+~)
71 ?~ u.ret.blok (pure nil+~)
71 ?~ u.ret.blok (pure nil+~)
72 ;< rets=(lest value) bind (eval-exprlist u.u.ret.blok)
72 ;< rets=(lest value) bind (eval-exprlist u.u.ret.blok)
73− (pure (multires rets))
73+ (pure multires+rets)
74 ;< ~ bind (eval-stat i.body)
74 ;< ~ bind (eval-stat i.body)
75 ;< ret=value bind $(body t.body)
75 ;< ret=value bind $(body t.body)
76 (pure ret)
77 (pure ret)
82− ;< res=_val:$:act bind act
85 ++ push-local
79 ++ push-local
86 ^- (eval-m ~)
80 ^- (eval-m ~)
87 |= st=state
81 |= st=state
@@ -91,15 +85,10 @@
91 ^- (eval-m ~)
85 ^- (eval-m ~)
92 |= st=state
86 |= st=state
93 =. local-envs.st
87 =. local-envs.st
94− ?~ t.local-envs.st !!
88+ ?~ local-envs.st !!
95 t.local-envs.st
89 t.local-envs.st
103++ eval-exprlist
92++ eval-exprlist
104 |= vals=exprlist
93 |= vals=exprlist
105 ^- (eval-m (lest value))
94 ^- (eval-m (lest value))
@@ -125,31 +114,15 @@
125 (set-table ->-.i.asmnts (~(put by tabl) ->+.i.asmnts +.i.asmnts))
114 (set-table ->-.i.asmnts (~(put by tabl) ->+.i.asmnts +.i.asmnts))
127 $(asmnts t.asmnts)
116 $(asmnts t.asmnts)
130− %+ turn attrnamelist.stat
131− |= [=name attr=(unit attrib)]
134− ;< actual-values=(list [name value]) bind
135− ?~ rhs.stat (pure ~)
136− ;< rhs=(list value) bind (eval-exprlist u.rhs.stat)
137− (pure (zip lhs rhs))
138− ;< st=state bind get-state
140− %- ~(uni by i.local-envs.st)
142− (weld (turn lhs |=(=name [name `value`nil+~])) actual-values)
145++ set-var
118++ set-var
146 |= var=name
119 |= var=name
147 |= val=value
120 |= val=value
148 ^- (eval-m ~)
121 ^- (eval-m ~)
149 ;< envs=(list (map name value)) bind get-local-envs
122 ;< envs=(list (map name value)) bind get-local-envs
150− =/ new-envs=(unit (lest (map name value)))
123+ =/ new-envs=(unit (list (map name value)))
152− ^- (unit (lest (map name value)))
125+ ^- (unit (list (map name value)))
153 ?~ envs ~
126 ?~ envs ~
154 ?. (~(has by i.envs) var)
127 ?. (~(has by i.envs) var)
155 =/ rest $(envs t.envs)
128 =/ rest $(envs t.envs)