diff --git a/base/arvo/clay.hoon b/base/arvo/clay.hoon
index 83c19e1ac9..3fe828268d 100644
--- a/base/arvo/clay.hoon
+++ b/base/arvo/clay.hoon
@@ -72,7 +72,7 @@
[%writ p=riot] ::
== == ::
$: %f ::
- $% [%made p=@uvH q=(each gage (list tank))] ::
+ $% [%made p=@uvH q=gage] ::
== == ::
$: %t ::
$% [%wake ~] :: timer activate
@@ -175,28 +175,42 @@
:: ~& [%aver-mun nao [%from syd lim q.mun]]
?~(nao ~ (read-at-aeon:ze u.nao mun))
::
- ++ made-to-tage
- |= res=(each gage tang)
- ^- tage
- ?: ?=(%| -.res)
- ~| %ford-fail
- |-
- ?~ p.res !!
- ~> %mean.|.(i.p.res) :: interpolate ford fail into stack trace
- $(p.res t.p.res)
- ?@ p.p.res
- ~|(%bad-marc !!)
- p.res
+ ++ ford-fail
+ |= tan=tang
+ ~| %ford-fail
+ |-
+ ?~ tan !!
+ ~> %mean.|.(i.tan) :: interpolate into stack trace
+ $(tan t.tan)
::
- ++ tage-to-cages
- |= tab=tage
- ^- (list (pair cage cage))
- ?~ p.tab
- ~
- :_ $(p.tab t.p.tab, q.tab (slot 3 q.tab))
- ~| %strange-gage
- :- [?^(p.i.p.tab !! p.i.p.tab) (slot 4 q.tab)]
- [?^(q.i.p.tab !! q.i.p.tab) (slot 5 q.tab)]
+ ++ unwrap-tang
+ |* res=(each ,* tang)
+ ?: ?=(%& -.res)
+ p.res
+ (ford-fail p.res)
+ ::
+ ++ gage-to-cages
+ |= gag=gage ^- (list (pair cage cage))
+ (unwrap-tang (gage-to-tage gag))
+ ::
+ ++ gage-to-tage
+ |= gag=gage
+ ^- (each (list (pair cage cage)) tang)
+ ?. ?=(%tabl -.gag)
+ (mule |.(`~`(ford-fail >%strange-gage< ~)))
+ =< ?+(. [%& .] [@ *] .)
+ |- ^- ?((list ,[cage cage]) (each ,~ tang))
+ ?~ p.gag ~
+ =* hed i.p.gag
+ ?- -.p.hed
+ %tabl (mule |.(`~`(ford-fail >%strange-gage< ~)))
+ %| (mule |.(`~`(ford-fail p.p.hed)))
+ %& ?- -.q.hed
+ %tabl (mule |.(`~`(ford-fail >%strange-gage< ~)))
+ %| (mule |.(`~`(ford-fail p.q.hed)))
+ %& =+ $(p.gag t.p.gag)
+ ?+(- [[p.p p.q]:hed -] [@ *] -)
+ == ==
::
++ balk :: read and send
|= [hen=duct cay=(unit (each cage lobe)) mun=mood]
@@ -538,7 +552,7 @@
(checkout-ankh(lat.ran lat.ran.+.hat) u.-.hat)
::
++ take-inserting
- |= [wen=@da res=(each gage tang)]
+ |= [wen=@da res=gage]
^+ +>
?~ dok
~& %clay-take-inserting-unexpected-made +>.$
@@ -551,14 +565,14 @@
(apply-edit wen)
+>.$
^- (list (pair path cage))
- %+ turn (tage-to-cages (made-to-tage res))
+ %+ turn (gage-to-cages res)
|= [pax=cage cay=cage]
?. ?=(%path p.pax)
~|(%clay-take-inserting-strange-path-mark !!)
[((hard path) q.q.pax) cay]
::
++ take-diffing
- |= [wen=@da res=(each gage tang)]
+ |= [wen=@da res=gage]
^+ +>
?~ dok
~& %clay-take-diffing-unexpected-made +>.$
@@ -571,7 +585,7 @@
(apply-edit wen)
+>.$
^- (list (trel path lobe cage))
- %+ turn (tage-to-cages (made-to-tage res))
+ %+ turn (gage-to-cages res)
|= [pax=cage cay=cage]
^- (pair path (pair lobe cage))
?. ?=(%path p.pax)
@@ -580,14 +594,14 @@
[paf (page-to-lobe:ze [p q.q]:cay) (~(got by dig.u.dok) paf)]
::
++ take-castify
- |= [wen=@da res=(each gage tang)]
+ |= [wen=@da res=gage]
^+ +>
?~ dok
~& %clay-take-castifying-unexpected-made +>.$
?. =(~ muh.u.dok)
~& %clay-take-castifying-redundant-made +>.$
=+ ^- cat=(list (pair path cage))
- %+ turn (tage-to-cages (made-to-tage res))
+ %+ turn (gage-to-cages res)
|= [pax=cage cay=cage]
?. ?=(%path p.pax)
~|(%castify-bad-path-mark !!)
@@ -610,7 +624,7 @@
==
::
++ take-mutating
- |= [wen=@da res=(each gage tang)]
+ |= [wen=@da res=gage]
^+ +>
?~ dok
~& %clay-take-mutating-unexpected-made +>.$
@@ -623,7 +637,7 @@
(apply-edit wen)
+>.$
^- (list (trel path lobe cage))
- %+ murn (tage-to-cages (made-to-tage res))
+ %+ murn (gage-to-cages res)
|= [pax=cage cay=cage]
^- (unit (pair path (pair lobe cage)))
?. ?=(%path p.pax)
@@ -634,7 +648,7 @@
`[paf (~(got by muh.u.dok) paf) cay]
::
++ take-patch
- |= res=(each gage tang)
+ |= res=gage
^+ +>
:: ~& %taking-patch
?: ?=(%| -.res)
@@ -675,29 +689,15 @@
(echo now %& *cart sim)
==
?~ dok ~& %no-dok +>.$
- =+ cay=p.res
- ?@ p.cay ~| %patch-bad-marc !!
- :: ~& %canning
- =+ ^= can
- |- ^- (list ,[path cage])
- ?~ p.p.cay
- ~
- :_ %_($ cay [[%tabl t.p.p.cay] (slot 3 q.cay)])
- ?. ?=(%path p.i.p.p.cay)
- ~| %patch-strange-marc-a
- !!
- ?. ?=(@ q.i.p.p.cay)
- ~| %patch-strange-marc-b
- !!
- =+ coy=(slot 2 q.cay)
- ?@ q.coy
- ~| %patch-strange-coy
- !!
- :- ((hard path) -.q.coy)
- [q.i.p.p.cay (slot 3 coy)]
+ =+ ^- cat=(list (pair path cage))
+ %+ turn (gage-to-cages res)
+ |= [pax=cage cay=cage]
+ ?. ?=(%path p.pax)
+ ~|(%patch-bad-path-mark !!)
+ [((hard path) q.q.pax) cay]
:: ~& %canned
:: ~& %checking-out
- =. ank.dom (checkout-ankh:ze (mo can))
+ =. ank.dom (checkout-ankh:ze (mo cat))
=. +>.$ =>(wake ?>(?=(^ dok) .))
:: ~& %checked-out
?~ hez +>.$(dok ~)
@@ -734,7 +734,7 @@
==
::
++ take-ergo
- |= res=(each gage tang)
+ |= res=gage
^+ +>
?: ?=(%| -.res)
%_ +>.$
@@ -743,30 +743,19 @@
==
?~ hez ~|(%no-sync-duct !!)
?. syn ~|(%sync-off !!)
- =+ cay=p.res
- ?@ p.cay ~| %patch-bad-marc !!
%= +>.$
reg
:_ reg
:* u.hez %ergo who syd let.dom
- |- ^- (list ,[path (unit mime)])
- ?~ p.p.cay
+ ^- (list ,[path (unit mime)])
+ %+ turn (gage-to-cages res)
+ |= [pax=cage mim=cage]
+ ?. ?=(%path p.pax)
+ ~|(%ergo-bad-path-mark !!)
+ :- ((hard path) q.q.pax)
+ ?. ?=(%mime p.mim)
~
- :_ %_($ cay [[%tabl t.p.p.cay] (slot 3 q.cay)])
- ?. ?=(%path p.i.p.p.cay)
- ~| %ergo-strange-marc-a
- !!
- ?. ?=(@ q.i.p.p.cay)
- ~| %ergo-strange-marc-b
- !!
- =+ coy=(slot 2 q.cay)
- ?@ q.coy
- ~| %ergo-strange-coy
- !!
- :- ((hard path) -.q.coy)
- ?. ?=(%mime q.i.p.p.cay)
- ~
- `((hard mime) q:(slot 3 coy))
+ `((hard mime) q:(slot 3 q.mim))
==
==
::
@@ -1898,7 +1887,7 @@
(diff-bas %bob bob.dat bob ali.dat)
::
++ diffed-bob
- |= res=(each gage tang)
+ |= res=(each tage tang)
^+ +>
?: ?=(%| -.res)
(error:he %diff-bob-bad-made leaf/"merge diff bob failed" p.res)
@@ -1977,7 +1966,7 @@
==
::
++ merged
- |= res=(each gage tang)
+ |= res=(each tage tang)
?: ?=(%| -.res)
(error:he %merge-bad-made leaf/"merging failed" p.res)
=+ cay=p.res
@@ -2034,7 +2023,7 @@
::
++ built
- |= res=(each gage tang)
+ |= res=(each tage tang)
^+ +>
?: ?=(%| -.res)
(error:he %build-bad-made leaf/"delta building failed" p.res)
@@ -2170,7 +2159,7 @@
==
::
++ checked-out
- |= res=(each gage tang)
+ |= res=(each tage tang)
^+ +>
?: ?=(%| -.res)
(error:he %checkout-bad-made leaf/"merge checkout failed" p.res)
@@ -2230,8 +2219,8 @@
==
::
++ ergoed
- |= res=(each gage tang)
- ^+ +>
+ |= res=(each tage tang)
+ ^+ +
?: ?=(%| -.res)
(error:he %ergo-bad-made leaf/"merge ergo failed" p.res)
=+ cay=p.res
diff --git a/base/arvo/eyre.hoon b/base/arvo/eyre.hoon
index facb1b7a91..9790fd2246 100644
--- a/base/arvo/eyre.hoon
+++ b/base/arvo/eyre.hoon
@@ -39,7 +39,7 @@
$% [%thou p=httr] :: response for proxy
== == ::
$: %f :: by %ford
- $% [%made p=@uvH q=(each gage tang)] ::
+ $% [%made p=@uvH q=gage] ::
[%news ~] ::
== == ::
$: %t :: by %time
@@ -577,7 +577,7 @@
==
::
%made
- ?> ?=(?([%| *] [%& @ *]) q.sih)
+ ?< ?=(%tabl -.q.sih)
=. our (need hov) :: XX
|- ^+ ..axon
?- tee
diff --git a/base/arvo/ford.hoon b/base/arvo/ford.hoon
index 26a197661e..1267a56ea8 100644
--- a/base/arvo/ford.hoon
+++ b/base/arvo/ford.hoon
@@ -55,7 +55,7 @@
dep=(set beam) :: dependencies
== ::
++ calx :: concrete cache line
- $% [%hood p=calm q=(pair beam gage) r=hood] :: compile
+ $% [%hood p=calm q=(pair beam cage) r=hood] :: compile
[%bake p=calm q=(trel mark beam heel) r=(unit vase)]:: load
[%slit p=calm q=[p=type q=type] r=type] :: slam type
[%slim p=calm q=[p=type q=twig] r=(pair type nock)]:: mint
@@ -105,8 +105,21 @@
^- cafe ::
[(grom p.a p.b) (grum q.a q.b)] ::
:: ::
-++ faun |=([a=cafe b=vase] (fine a `gage`[%noun b])) :: vase to cage
-++ feel |=([a=cafe b=gage] (fine a q.b)) :: cage to vase
+++ faun |=([a=cafe b=vase] (fine a [%& %noun b])) :: vase to gage
+++ feel |=([a=cafe b=cage] (fine a q.b)) :: cage to vase
+++ furl :: unwrap gage to cage
+ |= [a=cafe b=gage] ^- (bolt cage)
+ ?- -.b
+ %tabl (flaw a >%bad-marc< ~)
+ %| (flaw a p.b)
+ %& (fine a p.b)
+ ==
+::
+++ fret :: lift error
+ |= a=(bolt gage) ^- (bolt gage)
+ ?. ?=(%2 -.q.a) a
+ [p.a [%0 p.q.a `gage`[%| q.q.a]]]
+::
++ fest :: bolt to success
|= a=beam ::
|*([b=cafe c=*] (flag a (fine b [~ u=c]))) ::
@@ -413,6 +426,23 @@
==
fun
::
+ ++ tabl-run :: apply to all elems
+ |= fun=(burg cage gage)
+ |= [cof=cafe gag=gage]
+ ^- (bolt gage)
+ ?. ?=(%tabl -.gag)
+ (cope (furl cof gag) fun)
+ %+ cope
+ |- ^- (bolt (list (pair gage gage)))
+ ?~ p.gag (fine cof ~)
+ %+ cope (fret ^$(gag q.i.p.gag))
+ |= [cof=cafe val=gage]
+ %+ cope ^$(p.gag t.p.gag)
+ |= [cof=cafe rex=(list (pair gage gage))]
+ (fine cof [[p.i.p.gag val] rex])
+ |= [cof=cafe rex=(list (pair gage gage))]
+ (fine cof %tabl rex)
+ ::
++ dash :: process cache
|= cof=cafe
^+ +>
@@ -424,17 +454,15 @@
%. [cof kas kos]
;~ cope
;~ coax
- |=([cof=cafe p=silk q=silk] (make cof p))
- |=([cof=cafe p=silk q=silk] (make cof q))
+ |=([cof=cafe p=silk q=silk] (cope (make cof p) furl))
+ |=([cof=cafe p=silk q=silk] (cope (make cof q) furl))
==
- |= [cof=cafe cay=gage coy=gage]
- ?. &(?=(@ p.cay) ?=(@ p.coy))
- (flaw cof leaf/"bad diff marc" ~)
+ |= [cof=cafe cay=cage coy=cage]
?. =(p.cay p.coy)
%+ flaw cof :_ ~
leaf/"diff on data of different marks: {(trip p.cay)} {(trip p.coy)}"
?: =(q.q.cay q.q.coy)
- (fine cof %null [%atom %n] ~)
+ (fine cof %& %null [%atom %n] ~)
%+ cope (fang cof p.cay)
|= [cof=cafe pro=vase]
?. (slab %grad p.pro)
@@ -461,7 +489,7 @@
=+ for=((soft ,@tas) q:(slap gar [%cnzy %form]))
?~ for
(flaw cof leaf/"bad ++form:grad" ~)
- (fine cof u.for dif)
+ (fine cof %& u.for dif)
==
::
++ daze :: remember depends
@@ -480,7 +508,7 @@
=. ..exec (dash p.bot)
?- -.q.bot
%0 =^ dep deh.bay (daze p.q.bot)
- amok:(expo [%made dep %& q.q.bot])
+ amok:(expo [%made dep q.q.bot])
%2 =^ dep deh.bay (daze p.q.bot)
amok:(expo [%made dep %| q.q.bot])
%1 =+ zuk=(~(tap by p.q.bot) ~)
@@ -499,11 +527,11 @@
|= [cof=cafe for=mark bem=beam]
^- (bolt hood)
%+ cool |.(leaf/"ford: fade {<[(tope bem)]>}")
- %+ cope (make cof [%bake for bem ~])
- |= [cof=cafe cay=gage]
+ %+ cope (cope (make cof [%bake for bem ~]) furl)
+ |= [cof=cafe cay=cage]
%+ (clef %hood) (fine cof bem(r [%ud 0]) cay)
- ^- (burg (pair beam gage) hood)
- |= [cof=cafe bum=beam cay=gage]
+ ^- (burg (pair beam cage) hood)
+ |= [cof=cafe bum=beam cay=cage]
:: ~& fade/clef-miss/bem
=+ rul=(fair bum)
?. ?=(@ q.q.cay)
@@ -678,12 +706,10 @@
%. [cof kas kos]
;~ cope
;~ coax
- |=([cof=cafe p=silk q=silk] (make cof p))
- |=([cof=cafe p=silk q=silk] (make cof q))
+ |=([cof=cafe p=silk q=silk] (cope (make cof p) furl))
+ |=([cof=cafe p=silk q=silk] (cope (make cof q) furl))
==
- |= [cof=cafe cay=gage coy=gage]
- ?. &(?=(@ p.cay) ?=(@ p.coy))
- (flaw cof leaf/"bad join marc: {
} {}" ~)
+ |= [cof=cafe cay=cage coy=cage]
%+ cope (fang cof for)
|= [cof=cafe pro=vase]
?. (slab %grad p.pro)
@@ -704,7 +730,7 @@
leaf/"join on data of bad marks: {(trip p.cay)} {(trip p.coy)}"
leaf/"expected mark {(trip u.fom)}"
?: =(q.q.cay q.q.coy)
- (fine cof cay)
+ (fine cof %& cay)
?. (slab %join p.gar)
(flaw cof leaf/"no ++join:grad" ~)
%+ cope
@@ -713,8 +739,8 @@
(slop q.cay q.coy)
|= [cof=cafe dif=vase]
?@ q.dif
- (fine cof %null dif)
- (fine cof u.fom (slot 3 dif))
+ (fine cof %& %null dif)
+ (fine cof %& u.fom (slot 3 dif))
==
::
++ mash
@@ -723,12 +749,10 @@
%. [cof r.mas r.mos]
;~ cope
;~ coax
- |=([cof=cafe p=silk q=silk] (make cof p))
- |=([cof=cafe p=silk q=silk] (make cof q))
+ |=([cof=cafe p=silk q=silk] (cope (make cof p) furl))
+ |=([cof=cafe p=silk q=silk] (cope (make cof q) furl))
==
- |= [cof=cafe cay=gage coy=gage]
- ?. &(?=(@ p.cay) ?=(@ p.coy))
- (flaw cof leaf/"bad mash marc: {} {}" ~)
+ |= [cof=cafe cay=cage coy=cage]
%+ cope (fang cof for)
|= [cof=cafe pro=vase]
?. (slab %grad p.pro)
@@ -750,9 +774,9 @@
leaf/"mash on data of bad marks: {(trip p.cay)} {(trip p.coy)}"
leaf/"expected mark {(trip u.fom)}"
?: =(q.q.cay q.q.coy)
- (fine cof cay)
+ (fine cof %& cay)
?. (slab %mash p.gar)
- (fine cof %null [%atom %n] ~)
+ (fine cof %& %null [%atom %n] ~)
%+ cope
%^ maul cof
(slap (slap pro [%cnzy %grad]) [%cnzy %mash])
@@ -763,7 +787,7 @@
q.coy
==
|= [cof=cafe dif=vase]
- (fine cof u.fom dif)
+ (fine cof %& u.fom dif)
==
::
++ kale :: mutate
@@ -772,17 +796,18 @@
%+ cope
|- ^- (bolt (list (pair wing vase)))
?~ muy (flue cof)
- %+ cope (make cof q.i.muy)
- |= [cof=cafe cay=gage]
+ %+ cope (cope (make cof q.i.muy) furl)
+ |= [cof=cafe cay=cage]
%+ cope ^$(muy t.muy)
|= [cof=cafe rex=(list (pair wing vase))]
(fine cof [[p.i.muy q.cay] rex])
|= [cof=cafe yom=(list (pair wing vase))]
%+ cope (make cof kas)
- |= [cof=cafe cay=gage]
+ %- tabl-run
+ |= [cof=cafe cay=cage]
%+ cope (keel cof q.cay yom)
|= [cof=cafe vax=vase]
- (fine cof p.cay vax)
+ (fine cof %& p.cay vax)
::
++ keel :: apply mutations
|= [cof=cafe suh=vase yom=(list (pair wing vase))]
@@ -872,13 +897,13 @@
::
++ lear :: load vase
|= [cof=cafe bem=beam]
- ^- (bolt cage)
+ ^- (bolt gage)
=+ von=(save ~ %cx bem)
?~ von
[p=*cafe q=[%1 [[%x bem ~] ~ ~]]]
?~ u.von
(flaw cof leaf/"lear: file unavailable" (smyt (tope bem)) ~)
- (fine cof u.u.von)
+ (fine cof %& u.u.von)
::
++ lend :: load arch
|= [cof=cafe bem=beam]
@@ -929,8 +954,8 @@
%+ cope (lion cof for haz)
|= [cof=cafe wuy=(list ,@tas)]
?~ wuy (flue cof)
- %+ cope (make cof %bake i.wuy bem arg)
- |= [cof=cafe hoc=gage]
+ %+ cope (cope (make cof %bake i.wuy bem arg) furl)
+ |= [cof=cafe hoc=cage]
%+ cope (lope cof i.wuy t.wuy q.hoc)
|= [cof=cafe vax=vase]
((fest bem) cof vax)
@@ -1040,12 +1065,12 @@
%. [cof p.kas q.kas]
;~ cope
;~ coax
- |=([cof=cafe p=silk q=silk] ^$(cof cof, kas p.kas))
- |=([cof=cafe p=silk q=silk] ^$(cof cof, kas q.kas))
- ==
+ |=([cof=cafe p=silk q=silk] (cope ^$(cof cof, kas p.kas) furl))
+ |=([cof=cafe p=silk q=silk] (cope ^$(cof cof, kas q.kas) furl))
+ == :: XX merge %tabl
::
- |= [cof=cafe bor=gage heg=gage] ^- (bolt gage)
- [p=cof q=[%0 ~ [%$ (slop q.bor q.heg)]]]
+ |= [cof=cafe bor=cage heg=cage] ^- (bolt gage)
+ (faun cof (slop q.bor q.heg))
==
::
%bake
@@ -1055,7 +1080,7 @@
|= [cof=cafe vux=(unit vase)]
?~ vux
(flaw cof leaf/"bake failed" (smyt (tope q.kas)) ~)
- (fine cof [p.kas u.vux])
+ (fine cof [%& p.kas u.vux])
::
%boil
^- (bolt gage)
@@ -1064,49 +1089,48 @@
|= [cof=cafe bem=beam]
%+ cope (lime cof p.kas bem r.kas)
|= [cof=cafe vax=vase]
- (fine cof `gage`[p.kas vax])
+ (fine cof `gage`[%& p.kas vax])
::
%bunt
%+ cool |.(leaf/"ford: bunt {}")
?: ?=(?(%hoon %hook) p.kas)
- (fine cof p.kas [%atom %t] '')
+ (fine cof %& p.kas [%atom %t] '')
%+ cope (fang cof p.kas)
|= [cof=cafe tux=vase]
- (fine cof [p.kas (slot 6 tux)])
+ (fine cof [%& p.kas (slot 6 tux)])
::
%call
:: %+ cool |.(leaf/"ford: call {<`@p`(mug kas)>}")
%. [cof p.kas q.kas]
;~ cope
;~ coax
- |=([cof=cafe p=silk q=silk] ^$(cof cof, kas p))
+ |=([cof=cafe p=silk q=silk] (cope ^$(cof cof, kas p) furl))
|=([cof=cafe p=silk q=silk] ^$(cof cof, kas q))
==
::
- |= [cof=cafe gat=gage sam=gage]
- (maul cof q.gat q.sam)
- ::
- |= [cof=cafe vax=vase]
- (fine cof %noun vax)
+ |= [cof=cafe gat=cage sam=gage]
+ %. [cof sam]
+ %- tabl-run
+ |= [cof=cafe sam=cage]
+ (cope (maul cof q.gat q.sam) faun)
==
::
%cast
%+ cool |.(leaf/"ford: cast {}")
%+ cope $(kas q.kas)
- |= [cof=cafe cay=gage]
+ %- tabl-run
+ |= [cof=cafe cay=cage]
^- (bolt gage)
%+ cool |.(leaf/"ford: casting {} to {}")
- ?. ?=(@ p.cay)
- (flaw cof leaf/"bad cast marc" ~)
%+ cope (link cof p.kas p.cay q.cay)
|= [cof=cafe vax=vase]
- (fine cof [p.kas vax])
+ (fine cof [%& p.kas vax])
::
%diff
%+ cool |.(leaf/"ford: diff {<`@p`(mug p.kas)>} {<`@p`(mug q.kas)>}")
(diff cof p.kas q.kas)
::
- %done [cof %0 p.kas q.kas]
+ %done [cof %0 p.kas %& q.kas]
%dude (cool |.(p.kas) $(kas q.kas))
%dune
?~ q.kas [cof [%2 p.kas [%leaf "no data"]~]]
@@ -1142,46 +1166,44 @@
%+ cool |.(leaf/"ford: pact {<`@p`(mug p.kas)>} {<`@p`(mug q.kas)>}")
(pact cof p.kas q.kas)
::
- %plan
- %+ cope (abut:(meow p.kas q.kas) cof r.kas)
- |= [cof=cafe vax=vase]
- (fine cof %noun vax)
- ::
- %reef (fine cof %noun pit)
+ %plan (cope (abut:(meow p.kas q.kas) cof r.kas) faun)
+ %reef (faun cof pit)
%ride
%+ cool |.(leaf/"ford: ride {<`@p`(mug kas)>}")
%+ cope $(kas q.kas)
- |= [cof=cafe cay=gage]
+ %- tabl-run
+ |= [cof=cafe cay=cage]
%+ cope (maim cof q.cay p.kas)
|= [cof=cafe vax=vase]
- (fine cof %noun vax)
+ (faun cof vax)
::
%tabl
%+ cope
- |- ^- (bolt (pair (list (pair marc marc)) vase))
- ?~ p.kas (fine cof ~ *vase)
+ |- ^- (bolt (list (pair gage gage)))
+ ?~ p.kas (fine cof ~)
%+ cope (make cof p.i.p.kas)
|= [cof=cafe key=gage]
%+ cope (make cof q.i.p.kas)
|= [cof=cafe val=gage]
%+ cope ^^$(p.kas t.p.kas)
- |= [cof=cafe rex=(list (pair marc marc)) rey=vase]
- (fine cof [[p.key p.val] rex] (slop (slop q.key q.val) rey))
- |= [cof=cafe rex=(list (pair marc marc)) rey=vase]
- (fine cof [%tabl rex] rey)
+ |= [cof=cafe rex=(list (pair gage gage))]
+ (fine cof [[key val] rex])
+ |= [cof=cafe rex=(list (pair gage gage))]
+ (fine cof [%tabl rex])
::
%vale
%+ cool |.(leaf/"ford: vale {} {} {<`@p`(mug r.kas)>}")
%+ cope (lave cof p.kas q.kas r.kas)
|= [cof=cafe vax=vase]
- (fine cof `cage`[p.kas vax])
+ (fine cof `gage`[%& p.kas vax])
::
%volt
%+ cool |.(leaf/"ford: volt {}")
%+ cope $(kas [%bunt p.q.kas])
- |= [cof=cafe cay=gage]
+ %- tabl-run
+ |= [cof=cafe cay=cage]
^- (bolt gage)
- [cof %0 p.kas p.q.kas p.q.cay q.q.kas]
+ [cof %0 p.kas %& p.q.kas p.q.cay q.q.kas]
==
::
++ malt :: cached slit
@@ -1403,7 +1425,7 @@
(flaw cof [%leaf "type error: {} {}"]~)
(fine cof [p.tug q.vax])
::
- %toy (cope (make cof %boil p.hon how ~) feel)
+ %toy (cope (cope (make cof %boil p.hon how ~) furl) feel)
==
::
++ head :: consume structures
@@ -1511,12 +1533,10 @@
%. [cof kas kos]
;~ cope
;~ coax
- |=([cof=cafe p=silk q=silk] (make cof p))
- |=([cof=cafe p=silk q=silk] (make cof q))
+ |=([cof=cafe p=silk q=silk] (cope (make cof p) furl))
+ |=([cof=cafe p=silk q=silk] (cope (make cof q) furl))
==
- |= [cof=cafe cay=gage coy=gage]
- ?. &(?=(@ p.cay) ?=(@ p.coy))
- (flaw cof leaf/"bad pact marc" ~)
+ |= [cof=cafe cay=cage coy=cage] ^- (bolt gage)
?: ?=(?(%hoon %hook) p.cay)
?. ?=(%txt-diff p.coy)
(flaw cof leaf/"{} mark with bad diff type: {}" ~)
@@ -1528,7 +1548,7 @@
=- (flaw cof leaf/"{} data with bad diff" -)
[>type=p.q.coy< >shouldbe=-:!>(*(urge cord))< ~]
=+ pac=(role (lurk (lore (cat 3 u.txt '\0a')) u.dif))
- (fine cof p.cay [%atom %t] (end 3 (dec (met 3 pac)) pac))
+ (fine cof %& p.cay [%atom %t] (end 3 (dec (met 3 pac)) pac))
%+ cope (fang cof p.cay)
|= [cof=cafe pro=vase]
?. (slab %grad p.pro)
@@ -1557,7 +1577,7 @@
(slap (slap pox [%cnzy %grad]) [%cnzy %pact])
q.coy
|= [cof=cafe pat=vase]
- (fine cof p.cay pat)
+ (fine cof %& p.cay pat)
==
::
++ resp
@@ -1622,8 +1642,8 @@
~
::
++ load :: highly forgiving
- |= old=axle
- ..^$(+>- old)
+:: |= old=axle
+:: ..^$(+>- old)
::=. old
:: ?. ?=([%0 *] old) old :: remove at 1
:: :- %1
@@ -1632,12 +1652,13 @@
:: ?> ?=([n=[p=* q=[tad=* dym=* deh=* jav=*]] l=* r=*] +.old)
:: :- [p.n.+.old [tad.q.n.+.old dym.q.n.+.old deh.q.n.+.old ~]]
:: [$(+.old l.+.old) $(+.old r.+.old)]
-:: =+ lox=((soft axle) old)
-:: ^+ ..^$
-:: ?~ lox
-:: ~& %ford-reset
-:: ..^$
-:: ..^$(+>- u.lox)
+ |= old=*
+ =+ lox=((soft axle) old)
+ ^+ ..^$
+ ?~ lox
+ ~& %ford-reset
+ ..^$
+ ..^$(+>- u.lox)
::
++ scry
|= [fur=(unit (set monk)) ren=@tas who=ship syd=desk lot=coin tyl=path]
diff --git a/base/arvo/gall.hoon b/base/arvo/gall.hoon
index b3d36bb2b7..ecfefcbcfa 100644
--- a/base/arvo/gall.hoon
+++ b/base/arvo/gall.hoon
@@ -130,9 +130,10 @@
(~(nest ut -:!>(*hide)) %| p:(slot 12 vax))
::
++ mo-boom :: complete new boot
- |= [dap=dude pup=scup dep=@uvH gux=(each gage tang)]
+ |= [dap=dude pup=scup dep=@uvH gux=gage]
^+ +>
?- -.gux
+ %tabl ~|(%made-tabl !!)
%|
=. +> (mo-bold dap dep)
=. +> (mo-give %onto %| p.gux)
@@ -169,13 +170,14 @@
==
::
++ mo-boon :: complete old boot
- |= [dap=dude pup=scup dep=@uvH gux=(each gage tang)]
+ |= [dap=dude pup=scup dep=@uvH gux=gage]
^+ +>
?. (~(has by bum) dap)
~& [%gall-old-boon dap]
+>
=. +> (mo-bold dap dep)
?- -.gux
+ %tabl ~|(%made-tabl !!)
%| (mo-give %onto %| p.gux)
%& ?> ?=(@ p.p.gux)
ap-abet:(ap-peep:(ap-abed:ap dap [%high [~ our]]) q.p.gux)
@@ -321,9 +323,9 @@
num=(slav %ud i.t.t.t.pax)
==
?- -.q.+>.sih
+ %tabl ~|(%made-tabl !!)
%| (mo-give %mack `p.q.+>.sih) :: XX should crash
- %& ?> ?=(@ p.p.q.+>.sih)
- =. +>.$ (mo-give %mack ~) :: XX pump should ack
+ %& =. +>.$ (mo-give %mack ~) :: XX pump should ack
(mo-give(hen (mo-ball him num)) %unto %diff `cage`p.q.+>.sih)
==
::
@@ -335,9 +337,9 @@
==
?: ?=([%f %made *] sih)
?- -.q.+>.sih
+ %tabl ~|(%made-tabl !!)
%| (mo-give %mack `p.q.+>.sih) :: XX should crash
- %& ?> ?=(@ p.p.q.+>.sih)
- (mo-pass [%sys pax] %g %deal [him our] i.t.t.pax %poke p.q.+>.sih)
+ %& (mo-pass [%sys pax] %g %deal [him our] i.t.t.pax %poke p.q.+>.sih)
==
?: ?=([%a %woot *] sih) +>.$ :: quit ack, boring
?> ?=([%g %unto *] sih)
@@ -805,9 +807,7 @@
^+ +>
=+ cug=(ap-find /lame)
?~ cug
- ~> %slog.
- :- ~
- rose/[" " "[" "]"]^[>%ap-lame< >wut< why]
+ ~& [%ap-lame wut why]
+>.$
=^ cam +>.$
%+ ap-call q.u.cug
@@ -986,7 +986,6 @@
%merg `%c
%plug `%c
%them `%e
- %wait `%t
%want `%a
==
--
diff --git a/base/arvo/hoon.hoon b/base/arvo/hoon.hoon
index 6dd8980ee8..81a81c1519 100644
--- a/base/arvo/hoon.hoon
+++ b/base/arvo/hoon.hoon
@@ -9618,7 +9618,6 @@
== ::
++ curd ,[p=@tas q=*] :: typeless card
++ duct (list wire) :: causal history
-++ gage (pair marc vase) :: structured cage
++ from ,[ost=bone src=ship] :: forward problem
++ hide :: standard app state
$: $: our=ship :: owner/operator
diff --git a/base/arvo/zuse.hoon b/base/arvo/zuse.hoon
index b76695f449..e25448684d 100644
--- a/base/arvo/zuse.hoon
+++ b/base/arvo/zuse.hoon
@@ -2475,9 +2475,9 @@
[%call p=silk q=silk] :: slam
[%cast p=mark q=silk] :: translate
[%diff p=silk q=silk] :: diff
- [%done p=(set beam) q=gage] :: literal
+ [%done p=(set beam) q=cage] :: literal
[%dude p=tank q=silk] :: error wrap
- [%dune p=(set beam) q=(unit gage)] :: unit literal
+ [%dune p=(set beam) q=(unit cage)] :: unit literal
[%file p=beam] :: from clay
[%flag p=@uvH q=silk] :: re-apply user deps
[%join p=mark q=silk r=silk] :: merge
@@ -2492,8 +2492,13 @@
[%volt p=(set beam) q=(cask ,*)] :: unsafe add type
== ::
::::
+++ gage :: recursive cage/tang
+ $% [%& p=cage] :: success
+ [%| p=tang] :: error
+ [%tabl p=(list (pair gage gage))] :: table of results
+ ==
++ gift-ford :: out result <-$
- $% [%made p=@uvH q=(each gage tang)] :: computed result
+ $% [%made p=@uvH q=gage] :: computed result
[%mass p=mass] :: memory usage
[%news ~] :: fresh depends
== ::