Fix ++nest bug - in hoon.hoon only for now.

This commit is contained in:
C. Guy Yarvin 2014-09-04 17:24:27 -07:00
parent aaf45361e1
commit a386d59068
2 changed files with 37 additions and 30 deletions

View File

@ -8075,7 +8075,10 @@
~/ %nest
|= [tel=? ref=type]
^- ?
=+ gil=*(set ,[p=type q=type])
=| $: gem=(set ,[p=type q=type]) :: prune ref
gul=(set ,[p=type q=type]) :: assume match
meg=(set ,[p=type q=type]) :: prune sut
==
=< dext
|%
++ cong
@ -8091,9 +8094,9 @@
?&
?|(=(p.q.sut p.q.ref) =(%gold p.q.ref))
::
?| (~(has in gil) [sut ref])
?| (~(has in gul) [sut ref])
%+ %= cram
gil (~(put in gil) [sut ref])
gul (~(put in gul) [sut ref])
sut sut(p q.q.sut)
ref ref(p q.q.ref)
==
@ -8144,18 +8147,13 @@
==
==
::
++ dext
++ dare
?& !(~(has in meg) [sut ref])
dext(tel |, meg (~(put in meg) [sut ref]))
==
::
++ dear
^- ?
=- ?: tyn
&
?: tel
:: ~_ (dunk %need)
:: ~_ (dunk(sut ref) %have)
~|(%type-fail !!)
|
^= tyn
?: =(sut ref)
&
?- sut
%void sint
%noun &
@ -8191,13 +8189,27 @@
[%fork *]
?. ?=(?([%atom *] %noun [%cell *] [%cube *] [%core *]) ref)
sint
?|(dext(tel |, sut p.sut) dext(tel |, sut q.sut))
|(dare(sut p.sut) dare(sut q.sut))
::
[%hold *]
?|
(~(has in gil) [sut ref])
dext(gil (~(put in gil) [sut ref]), sut repo)
==
[%hold *] dext(sut repo)
==
::
++ dext
^- ?
=- ?: tyn
&
?: tel
:: ~_ (dunk %need)
:: ~_ (dunk(sut ref) %have)
~|(%type-fail !!)
|
^= tyn
?: =(sut ref) &
dear
::
++ sext
?| (~(has in gem) [sut ref])
dext(gem (~(put in gem) [sut ref]))
==
::
++ sint
@ -8205,13 +8217,8 @@
?- ref
[%atom *] |
[%cell *] |
[%fork *] ?&(dext(ref p.ref) dext(ref q.ref))
[%hold *]
?|
(~(has in gil) [sut ref])
dext(gil (~(put in gil) [sut ref]), ref repo(sut ref))
==
::
[%fork *] &(sext(ref p.ref) sext(ref q.ref))
[%hold *] dext(ref repo(sut ref))
%noun |
%void &
* dext(ref repo(sut ref))

View File

@ -1221,7 +1221,7 @@
|= lob=lobe
(need (~(get by lat) lob))
::
++ gack !: :: gack a through b
++ gack :: gack a through b
|= [a=@ud b=@ud]
^- [(map ,@ud tako) @ud (set yaki) (set blob)]
:_ :- b
@ -1380,7 +1380,7 @@
%- sa %+ turn (~(tap in qez) ~)
|= tak=tako
(~(got by hut) tak)
++ zeat !: :: expand set
++ zeat :: expand set
|= qez=(set tako)
^- (set tako)
%+ roll (~(tap in qez) ~)
@ -1840,7 +1840,7 @@
+>(ank ank:(durn:(zu ank) nyp))
--
::
++ zu !: :: filesystem
++ zu :: filesystem
|= ank=ankh :: filesystem state
=| myz=(list ,[p=path q=miso]) :: changes in reverse
=| ram=path :: reverse path into