mirror of
https://github.com/urbit/ares.git
synced 2024-11-29 11:54:10 +03:00
ska: correct melo-target lifcycle, delaying want.gen with call.gen
This commit is contained in:
parent
54ff73f7a5
commit
20202ef654
@ -336,7 +336,6 @@
|
|||||||
::
|
::
|
||||||
:: +seal: finalize analysis (including recursive descendants)
|
:: +seal: finalize analysis (including recursive descendants)
|
||||||
::
|
::
|
||||||
:: XX: debug %ices-fail-2, prevent memoization
|
|
||||||
:: XX: refactor
|
:: XX: refactor
|
||||||
::
|
::
|
||||||
++ seal
|
++ seal
|
||||||
@ -387,22 +386,10 @@
|
|||||||
=> [s=sock.less.c w=w so=so ca=ca]
|
=> [s=sock.less.c w=w so=so ca=ca]
|
||||||
~+ ~(norm so (~(app ca w) s))
|
~+ ~(norm so (~(app ca w) s))
|
||||||
::
|
::
|
||||||
?. ?| ?=(~ rem)
|
~| %ices-melo-sock-nest
|
||||||
|
?> ?| ?=(~ rem)
|
||||||
(~(huge so s) (~(app ca w) sock.u.rem))
|
(~(huge so s) (~(app ca w) sock.u.rem))
|
||||||
==
|
==
|
||||||
:: XX should this prevent memoization?
|
|
||||||
::
|
|
||||||
~& [%ices-fail-nest k=k n=n m=m]
|
|
||||||
[[ices lope] gen]
|
|
||||||
::
|
|
||||||
:: XX s/b debug assert (only if rect.c?)
|
|
||||||
::
|
|
||||||
?. ?| ?=(~ rem)
|
|
||||||
(lien (~(get ja moan.gen) form.c) |=([ss=sock *] =(s ss)))
|
|
||||||
==
|
|
||||||
~& [%ices-fail-link k=k n=n m=m direct=rect.c]
|
|
||||||
[[ices lope] gen]
|
|
||||||
::
|
|
||||||
=. ices (~(put by ices) k [s form.c])
|
=. ices (~(put by ices) k [s form.c])
|
||||||
=? lope ?!(.=(m n)) (~(put in lope) [s form.c])
|
=? lope ?!(.=(m n)) (~(put in lope) [s form.c])
|
||||||
[[ices lope] gen]
|
[[ices lope] gen]
|
||||||
@ -410,18 +397,26 @@
|
|||||||
=. gen
|
=. gen
|
||||||
%- ~(rep in kid)
|
%- ~(rep in kid)
|
||||||
|= [k=@hail =_gen]
|
|= [k=@hail =_gen]
|
||||||
%_ gen
|
?: (~(has by loop.gen) k)
|
||||||
call
|
?< (~(has by remo.gen) k)
|
||||||
=. k ?~(rem=(~(get by remo.gen) k) k site.u.rem)
|
?< (~(has by call.gen) k)
|
||||||
?~ lac=(~(get by call.gen) k) call.gen
|
gen(want (~(del by want.gen) k), loop (~(del by loop.gen) k))
|
||||||
?~ mos=(~(del in remos.u.lac) site)
|
|
||||||
(~(del by call.gen) k)
|
|
||||||
(~(put by call.gen) k u.lac(remos mos))
|
|
||||||
::
|
::
|
||||||
want (~(del by want.gen) k)
|
?~ rem=(~(get by remo.gen) k)
|
||||||
loop (~(del by loop.gen) k)
|
=/ lac (~(got by call.gen) k)
|
||||||
remo (~(del by remo.gen) k)
|
?^ remos.lac gen
|
||||||
==
|
gen(want (~(del by want.gen) k), call (~(del by call.gen) k))
|
||||||
|
::
|
||||||
|
?< (~(has by call.gen) k)
|
||||||
|
=. gen
|
||||||
|
?~ lac=(~(get by call.gen) site.u.rem)
|
||||||
|
~& [%missing-call k=k rem=site.u.rem]
|
||||||
|
gen
|
||||||
|
?^ mos=(~(del in remos.u.lac) site) :: XX explain
|
||||||
|
gen(call (~(put by call.gen) site.u.rem u.lac(remos mos)))
|
||||||
|
gen(want (~(del by want.gen) site.u.rem), call (~(del by call.gen) site.u.rem))
|
||||||
|
gen(want (~(del by want.gen) k), remo (~(del by remo.gen) k))
|
||||||
|
|
||||||
=/ hiss (~(get ju hint.gen) site)
|
=/ hiss (~(get ju hint.gen) site)
|
||||||
=^ fizz gen
|
=^ fizz gen
|
||||||
%- ~(rep in hiss)
|
%- ~(rep in hiss)
|
||||||
|
Loading…
Reference in New Issue
Block a user