From 4de22868bb73e9aaaea1de194a7f80b32f82969a Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Sun, 6 Oct 2013 00:44:07 -0700 Subject: [PATCH] Development "branch" goes back to production. --- arvo/ames.hoon | 160 +++++-------- arvo/batz.hoon | 78 +++++-- arvo/clay.hoon | 535 +++++++++++++++---------------------------- arvo/dill.hoon | 2 +- arvo/eyre.hoon | 2 +- arvo/hoon.hoon | 92 ++++---- arvo/zuse.hoon | 362 +++++++++++++++++++---------- main/bin/begin.hoon | 2 +- main/bin/hello.hoon | 2 +- main/bin/hi.hoon | 14 +- main/bin/update.hoon | 27 ++- main/lib/pony.hoon | 38 ++- 12 files changed, 636 insertions(+), 678 deletions(-) diff --git a/arvo/ames.hoon b/arvo/ames.hoon index 982f64535..6e638be87 100644 --- a/arvo/ames.hoon +++ b/arvo/ames.hoon @@ -1,4 +1,4 @@ -:: +!: :: ames (4a), networking :: |= pit=vase @@ -236,7 +236,7 @@ 0w0 :: 125, ~wyt 0w0 :: 126, ~nub 0w0 :: 127, ~med - 0w20.GGLXx.aqxaQ.w4Iob.wdmmr :: 128, ~lyt, Daniel Nagy (fortuna) + 0w0 :: 128, ~lyt 0w0 :: 129, ~dus 0w0 :: 130, ~neb 0w0 :: 131, ~rum @@ -1012,19 +1012,8 @@ ^- [p=(list boon) q=fort] zork:zank:(wind:(ho:(um p.soq) q.soq) [q.sup r.sup] ham) :: - ++ went :: went:am - |= [soq=sock hen=duct cap=cape sup=soap] :: internal react - ^- [p=(list boon) q=fort] - zork:(kick:(um p.soq) hen) - :: - ++ wert :: wert:am - |= [soq=sock hen=duct inx=@ud rot=riot] :: serve a file - ^- [p=(list boon) q=fort] - =+ ruv=(need (~(get by rop.fox) [inx soq])) - (wise soq [/a hen] %ru [inx rot]) - :: ++ wise :: wise:am - |= [soq=sock hen=duct cha=@ta val=*] :: send a statement + |= [soq=sock hen=duct cha=path val=*] :: send a statement ^- [p=(list boon) q=fort] zork:zank:(wool:(ho:(um p.soq) q.soq) hen cha val) :: @@ -1053,7 +1042,7 @@ == :: ++ done :: done:ho:um:am - |= [cha=@ta num=@ud] :: complete outgoing + |= [cha=path num=@ud] :: complete outgoing ^- [(unit duct) _+>] =+ rol=(need (~(get by ryl.bah) cha)) =+ rix=(~(get by san.rol) num) @@ -1142,21 +1131,27 @@ +(+> (busk(diz (wast:diz ryn)) xong:diz pax)) :: ++ coot :: coot:la:ho:um:am - |= [cha=@ta rum=race] :: update input race + |= [cha=path rum=race] :: update input race ^+ +> =+ cun=(~(get by mis.rum) did.rum) ?~ cun +>.$(raz.bah (~(put by raz.bah) cha rum)) =. +>.$ cock(kay p.u.cun, dam q.u.cun) =. +>.$ ?. =(%good p.u.cun) +>.$ - (emit [%milk [our her] cha did.rum r.u.cun]) + ?> ?=(^ r.u.cun) + %- emit + ^- boon + :^ %milk + [our her] + `soap`[[p:sen:gus clon:diz] cha did.rum] + u.r.u.cun %= $ mis.rum (~(del by mis.rum) did.rum) did.rum +(did.rum) == :: ++ dear :: dear:la:ho:um:am - |= [cha=@ta num=@ud dut=(unit)] :: interpret message + |= [cha=path num=@ud dut=(unit)] :: interpret message ^+ +> =+ ^= rum ^- race =+ rum=(~(get by raz.bah) cha) @@ -1177,7 +1172,7 @@ %bond :: ~& [%bond q.fud r.fud] ?> =(p:sen:gus p.fud) - (dear q.fud r.fud ?-(kay ?(%dead %lost) ~, %good [~ s.fud])) + (dear q.fud r.fud ?-(kay %dead ~, %good [~ s.fud])) :: %carp =+ zol=(~(get by olz.weg) s.fud) @@ -1254,7 +1249,7 @@ :: ~& [%pong-no her] [| +>.$] :: ~& [%pong-yes now her] - [& (wool [/a hen] %pi ~)] + [& (wool [/a hen] /q/pi ~)] :: ++ thaw :: thaw:ho:um:am ^+ . :: wakeup bomb @@ -1277,7 +1272,7 @@ %= +>.$ bin :_ bin - `boon`[%coke [our her] kay [[p:sen:gus clon:diz] u.p.yoh] u.hud] + `boon`[%coke [our her] [[p:sen:gus clon:diz] u.p.yoh] kay u.hud] == (busk xong:diz q.yoh) :: @@ -1290,7 +1285,7 @@ (busk xong:diz feh) :: ++ wool :: wool:ho:um:am - |= [hen=duct cha=@ta val=*] :: send a statement + |= [hen=duct cha=path val=*] :: send a statement ^+ +> =+ ^= rol ^- rill =+ rol=(~(get by ryl.bah) cha) @@ -1420,40 +1415,56 @@ :* [[~ %gold p.bon] [/c hen] [%init p.bon]] [[~ %gold p.bon] hen [%init p.bon]] [[~ %gold p.bon] [/a hen] [%kick now]] - =+ bos=(sein p.bon) - =. bos ?.(=(bos p.bon) bos ~zod) - ?: =(~zod p.bon) ~ - :~ [[~ %iron p.bon] [/c hen] [%pull bos %main ~[%main]]] - [[~ %iron p.bon] [/c hen] [%pull bos %spec ~[%spec]]] - [[~ %iron p.bon] [/c hen] [%pull bos %try ~[%try]]] - [[~ %iron p.bon] [/c hen] [%pull bos %arvo ~[%arvo]]] - == + ~ + :: =+ bos=(sein p.bon) + :: =. bos ?.(=(bos p.bon) bos ~zod) + :: ?: =(~zod p.bon) ~ + :: :~ [[~ %iron p.bon] [/c hen] [%pull bos %main ~[%main]]] + :: [[~ %iron p.bon] [/c hen] [%pull bos %spec ~[%spec]]] + :: [[~ %iron p.bon] [/c hen] [%pull bos %try ~[%try]]] + :: [[~ %iron p.bon] [/c hen] [%pull bos %arvo ~[%arvo]]] + :: == == :: %coke :: ~& [%tz p.bon q.bon q.r.bon r.r.bon] :_ fox - :~ [[~ %iron p.p.bon] s.bon [%went q.p.bon q.bon r.bon]] + :~ [[~ %iron p.p.bon] s.bon [%went q.p.bon r.bon]] == :: %mead :_(fox [[wru hen [%hear p.bon q.bon]] ~]) %milk - :: ~& [%rx p.bon q.bon r.bon !=(~ s.bon)] - ?+ q.bon + :: ~& [%rx p.bon q.bon] + ?> ?=([@ *] q.q.bon) + ?: ?=(%r i.q.q.bon) + ?> ?=([@ @ *] t.q.q.bon) :_ fox - :~ :+ [~ %iron p.p.bon] - (claw p.p.bon) - [%wart q.p.bon q.bon r.bon s.bon] + =+ [cak=i.t.q.q.bon ven=i.t.t.q.q.bon] + :~ :- [~ %iron p.p.bon] + =+ neh=(claw p.p.bon) + ?> ?=(^ neh) + :: ~& [%milk-waft [[ven `path`t.t.t.q.q.bon] t.neh]] + :- ?: =(%c ven) + ?> =(%re cak) + [[%c `path`t.t.t.q.q.bon] hen] + [[ven `path`t.t.t.q.q.bon] t.neh] + `card`[%waft q.p.bon r.bon] == - :: - %hi :: %hi + ?> ?=(%q i.q.q.bon) + ?> ?=([@ *] t.q.q.bon) + ?+ i.t.q.q.bon + :_ fox + :~ :+ [~ %iron p.p.bon] + (claw p.p.bon) + `card`[%wart q.p.bon i.t.q.q.bon t.t.q.q.bon r.bon] + == + :: + %hi %= $ bon :+ %wine p.bon ^- tape - ?~ s.bon - " is not feeling well" - ?: =(0 u.s.bon) + ?: =(0 r.bon) =+ hum=(end 0 3 (mug r.bon)) ?+ hum !! 0 " was thinking about something else" @@ -1465,71 +1476,29 @@ 6 " likes to let others speak" 7 " sincerely wants to know more" == - =+ str=(need ((sand %t) ((hard ,@) u.s.bon))) + =+ str=(need ((sand %t) ((hard ,@) r.bon))) [':' ' ' (trip str)] == - :: - %ye :: %ye - :: ~& [%ye bon] - ?~ s.bon [~ fox] - ?> =(p.p.bon (sein q.p.bon)) - =+ ^= paz ^- (list ,@p) - %+ skim pals:(~(um am [now fox]) p.p.bon) - |=(a=@p =(p.p.bon (sein a))) - :_ fox - %+ turn paz - |= him=ship - :+ [~ %iron p.p.bon] - [/a /a hen] - [%want him %yu [q.p.bon u.s.bon]] :: - %yu :: %yu - :: ~& [%yu bon] - ?. =(q.p.bon (sein p.p.bon)) [~ fox] - ?~ s.bon [~ fox] - =+ dof=((hard ,[p=@p q=@t]) u.s.bon) - $(bon [%milk [p.p.bon p.dof] %hi r.bon [~ q.dof]]) - :: - %pi :: %pi + %pi $(bon [%wine p.bon " sent a ping"]) :: ping :: - %ta :: %ta - ?~ s.bon [~ fox] :: register - =+ gox=((hard ,[p=@p q=@pG r=gens s=pass]) u.s.bon) + %ta + =+ gox=((hard ,[p=@p q=@pG r=gens s=pass]) r.bon) =+ gus=(need (~(us go ton.fox) p.p.bon)) =^ wyl gus (born:gus now gox) =. ton.fox (~(su go ton.fox) gus) :_ fox :~ :+ [~ %iron p.p.bon] [/a /a hen] - [%want q.p.bon %to `(unit will)`wyl] + `card`[%want q.p.bon [%r %ta t.t.q.q.bon] `(unit will)`wyl] == :: %re :: %re - ?~ s.bon [~ fox] :: file request - =+ gox=((hard ,[p=@ud q=riff]) u.s.bon) - =+ gut=(~(get by rop.fox) [p.gox p.bon]) - =. rop.fox - ?^ gut - ?>(?=(~ q.q.gox) (~(del by rop.fox) [p.gox p.bon])) - ?>(?=(^ q.q.gox) (~(put by rop.fox) [p.gox p.bon] q.gox)) :_ fox - :~ :+ [~ %iron p.p.bon] - [/c [%a (scot %p q.p.bon) (scot %ud p.gox) ~] hen] - [%warp p.p.bon q.gox] + :~ :- [~ %iron p.p.bon] + [[/c hen] `card`[%wart q.p.bon i.t.q.q.bon t.t.q.q.bon r.bon]] == - :: - %ru :: %ru - :_ fox - :~ :+ [~ %iron p.p.bon] :: file response - [/c (claw p.p.bon)] - [%wart q.p.bon q.bon r.bon s.bon] - == - :: - %su :: %su - ?~ s.bon [~ fox] - =+ gox=((hard ,@t) u.s.bon) :: suicide - !! == :: %ouzo @@ -1586,20 +1555,9 @@ %want ?> ?=(^ wru) (~(wise am [now fox]) [q.u.wru p.fav] hen q.fav r.fav) - :: - %went - (~(went am [now fox]) [q.u.wru p.fav] hen q.fav r.fav) :: %wake ~(wake am [now fox]) - :: - %writ - ?> ?=(^ wru) - ?> ?=([@ @ ~] tea) - =+ fyg=(slay i.tea) - =+ haw=(slay i.t.tea) - ?> &(?=([~ %$ %p @] fyg) ?=([~ %$ %ud @] haw)) - (~(wert am [now fox]) [q.u.wru q.p.u.fyg] hen q.p.u.haw p.fav) == => %_(. fox q.fuy) =| out=(list move) diff --git a/arvo/batz.hoon b/arvo/batz.hoon index 52889fab5..37062f76c 100644 --- a/arvo/batz.hoon +++ b/arvo/batz.hoon @@ -1,4 +1,4 @@ -:: +!: :: batz (4b), shell :: |= pit=vase @@ -156,20 +156,22 @@ [[[[~ %iron who] hen [%helo prot]] ~] +<.^^$] %noop [~ +<.^^$] %thee abet:lash:(lean tea hen fav) + %waft :: ~& [%leap-waft fav] + abet:lash:(lean tea hen fav) %went ?.((fear tea) [~ +<.^^$] abet:lash:(lean tea hen fav)) %writ abet:lash:(loam tea hen +.fav) %wart (lion hen +.fav) == :: ++ loam :: loam:be - |= [tea=wire hen=duct rot=riot] :: handle response + |= [tea=wire hen=duct rot=riot] :: file response ^+ *fi =+(a=(lead tea hen) abet:(gall:q.a p.a rot)) :: ++ lion :: lion:be - |= [hen=duct him=@p cha=@ta num=@ud val=(unit ,*)] :: handle message + |= [hen=duct him=@p cak=@tas sic=path val=*] :: handle request ^- [(list move) brat] - =+ yes=(~(get by sev) cha) + =+ yes=(~(get by sev) cak) ?~ yes [~ +<.^^$] =+ sey=(~(tap by u.yes) *(list ,[p=@ud q=@ud r=wire])) |- ^- [(list move) brat] @@ -180,7 +182,7 @@ =< abet =< abet %- pong:(ox:(past:(fest p.i.sey hen) q.i.sey) r.i.sey) - [%wart him cha num val] + [%wart him cak sic val] =^ vun +<.^^^$ $(sey t.sey) [(weld von vun) +<.^^^$] :: @@ -349,6 +351,10 @@ ?~ rot %_(+>.$ ..ra (warn (spud (meat kit))), s.orb [%r ~]) =+ tyk=`kite`[p.p.u.rot q.p.u.rot r.kit r.p.u.rot q.u.rot] + ?. =(kit tyk) + ~& [%kit kit] + ~& [%tyk tyk] + !! ?> =(kit tyk) +>.$(p.orb (~(del by p.orb) q.p.u.dup)) :: @@ -662,14 +668,14 @@ [s.kit ~ %& p.kit q.kit t.kit] :: ++ gump :: message server - |= [ton=? cha=@tas gyp=@ud ted=@ud lap=wire] + |= [ton=? cav=@ta gyp=@ud ted=@ud lap=wire] ^+ +> =+ ^= yes ^- (set ,[p=@ud q=@ud r=wire]) - =+ yes=(~(get by sev) cha) + =+ yes=(~(get by sev) cav) ?~(yes ~ u.yes) %_ +>.$ sev - %+ ~(put by sev) cha + %+ ~(put by sev) cav ?: ton (~(put in yes) gyp ted lap) (~(del in yes) gyp ted lap) @@ -740,6 +746,9 @@ %ok (gram [/c ~] %info who p.gud q.gud) %sc good:+>.^$(sac ?~(p.gud ?~(sac ~ +.sac) [u.p.gud sac])) %sp !! + %sq =+ tea=(bist %ma r.gud) + (gram [/a [%b tea] ~] [%want p.gud [%q q.gud %b tea] s.gud]) + %sr (gram [/a /b ~] [%want p.gud [%r q.gud] r.gud]) %te (gram ~ %tell p.gud) %th (gram [/e ~] %that p.gud q.gud) %va !! @@ -770,10 +779,11 @@ %es :: ~& %es-loss (gull (bist %ma lap) p.gal q.gal ~) %ht (gram [/e [%b (bist [%ma lap])] ~] [%band who ~]) - %oy (gump | p.gal gyp ted lap) + %lq (gump | p.gal gyp ted lap) + %ow +> + %rt +> %up +>(..ra (hoop lap ted)) %wa (gust gyp ted lap) - %yo +> == :: ++ moor :: start goal @@ -786,10 +796,11 @@ %es :: ~& %es-moor (gull (bist %ma lap) p.gal q.gal [~ r.gal]) %ht (gram [/e [%b (bist [%ma lap])] ~] [%band who p.gal]) - %oy (gump & p.gal [gyp ted lap]) + %lq (gump & p.gal [gyp ted lap]) + %ow +> + %rt +> %up +>(..ra (hoot lap ted p.gal)) %wa (gush p.gal gyp ted lap) - %yo (gram [/a [%b (bist [%ma lap])] ~] [%want +.gal]) == :: ++ ox :: per delivery @@ -853,22 +864,29 @@ %ht ?> ?=(%thee -.fav) +>.$(+>.$ (glib lap [%ht +.fav])) + :: + %lq + ?> ?=(%wart -.fav) + +>.$(+>.$ (glib lap [%lq p.fav r.fav s.fav])) + :: + %rt + ?: ?=(%went -.fav) + ?. ?=(%dead q.fav) +>.$ + +>.$(+>.$ (glib lap [%rt ~])) + ?> ?=(%waft -.fav) + +>.$(+>.$ (glib lap [%rt ~ q.fav])) :: %up ?> ?=(%line -.fav) +>.$(+>.$ (glib lap [%up +.fav])) :: - %oy - ?> ?=(%wart -.fav) - +>.$(+>.$ (glib lap [%oy +.fav])) + %ow + ?> ?=(%went -.fav) + +>.$(+>.$ (glib lap [%ow q.fav])) :: %wa ?> ?=(%wake -.fav) +>.$(+>.$ (glib lap [%wa ~])) - :: - %yo - ?> ?=(%went -.fav) - +>.$(lug ~, +>.$ (glib lap [%yo +.fav])) == -- -- @@ -1082,6 +1100,11 @@ |% :: poke/peek pattern ++ beat :: process move |= [wru=(unit writ) tea=wire hen=duct fav=curd] + =+ vaf=(card fav) + ?. =(vaf fav) + ~& [%fav fav] + ~& [%vaf vaf] + !! => .(fav ((hard card) fav)) ^- [p=(list move) q=vane] ?: ?=([%crud *] fav) @@ -1123,8 +1146,13 @@ ~|([%beat-none -.fav] !!) :: %init + =+ bos=(sein p.fav) + =. bos ?.(=(bos p.fav) bos ~zod) ?~ wru !! - :- [[wru hen fav] ~] + :- :- [wru hen fav] + ?: =(bos p.fav) ~ + :_ ~ + [wru [/b hen] [%line (rap 3 ":{(scow %p bos)}/main=/bin/update")]] ..^$(dez (~(put by dez) hen [[q.u.wru (bard q.u.wru)] ~])) :: ?(%loin %make %sith) @@ -1132,6 +1160,9 @@ == ?> ?=(^ u.dus) ?+ -.fav + => ?. ?=(%writ -.fav) . + :: ~& [%batz-writ tea] + . ?~ wru =+ ade=(adit hen) =+ hem=`helm`?-(ade %lead [%lead p.i.u.dus], %iron %iron, %gold %gold) @@ -1142,9 +1173,14 @@ ..^$(dez (~(put by dez) hen [[p.i.u.dus +.q.yub] t.u.dus])) :: %init + =+ bos=(sein p.fav) + =. bos ?.(=(bos p.fav) bos ~zod) ?~ wru !! - :- :~ [wru hen fav] + :- :* [wru hen fav] [wru [[%b tea] hen] [%hail ~]] + ?: =(bos p.fav) ~ + :_ ~ + [wru [/b hen] [%line (rap 3 ":{(scow %p bos)}/main=/bin/update")]] == ..^$(dez (~(put by dez) hen [[q.u.wru (bard q.u.wru)] u.dus])) :: diff --git a/arvo/clay.hoon b/arvo/clay.hoon index da73f1b17..130ea19ec 100644 --- a/arvo/clay.hoon +++ b/arvo/clay.hoon @@ -1,4 +1,4 @@ -:: +!: :: clay (4c), revision control :: |= pit=vase @@ -15,7 +15,6 @@ =+ yar=(~(get by fat.ruf) who) ?~(yar *room u.yar) =| yel=(list ,[p=duct q=card]) - =| wot=(list ,[p=duct q=tape]) =| byn=(list ,[p=duct q=riot]) =| vag=(list ,[p=duct q=card]) =| say=(list ,[p=duct q=ship r=[p=@ud q=riff]]) @@ -26,9 +25,6 @@ ;: weld %+ turn (flop yel) |=([a=duct b=card] [[~ %gold who] hun.yar b]) - :: - %+ turn (flop wot) - |=([a=duct b=tape] [[~ %gold who] a [%wort b]]) :: %+ turn (flop byn) |=([a=duct b=riot] [[~ %gold who] a [%writ b]]) @@ -37,7 +33,10 @@ |=([a=duct b=card] [[~ %gold who] a b]) :: %+ turn (flop say) - |=([a=duct b=ship c=*] [[~ %gold who] [/a a] [%want b %re c]]) + |= [a=duct b=ship c=[p=@ud q=riff]] + :+ [~ %gold who] + [/a a] + [%want b [%q %re p.q.c (scot %ud p.c) ~] q.c] == :: ++ doze @@ -47,108 +46,39 @@ ?~ saz nex $(saz t.saz, nex (hunt nex doze:(di i.saz))) :: - ++ fray - |= [hen=duct pal=(list disc) sab=saba] - ^+ +> - ?~ pal +> - $(pal t.pal, +> zoot:wake:(exec:(di i.pal) hen now [%| sab])) - :: ++ wake ^+ . =+ saz=(turn (~(tap by dos.yar) ~) |=([a=@tas b=*] a)) |- ^+ ..wake ?~ saz ..wake - $(saz t.saz, ..wake zoot:wake:(di i.saz)) + $(saz t.saz, ..wake abet:wake:(di i.saz)) :: ++ de :: per desk - |_ [for=@p syd=@ta lim=@da qyx=cult dom=dome] - ++ aeon :: act count through - |= lok=case - ^- (unit ,@ud) - ?- -.lok - %da - ?: (gth p.lok lim) ~ - |- ^- (unit ,@ud) - ?~ hit.dom [~ let.dom] - ?: (gte p.lok p.i.hit.dom) [~ let.dom] - $(hit.dom t.hit.dom, let.dom (dec let.dom)) - :: - %tas (~(get by lab.dom) p.lok) - %ud ?:((gth p.lok let.dom) ~ [~ p.lok]) + |_ [for=@p syd=@ta rede] + ++ abet + ?: =(for who) + %_(..de dos.yar (~(put by dos.yar) syd qyx dom)) + %_ ..de + rid.yar + =+ ^= rob ^- (map ,@tas rede) + =+ rob=(~(get by rid.yar) for) + ?~(rob ~ u.rob) + (~(put by rid.yar) for (~(put by rob) syd `rede`+<+>.abet)) == :: - ++ ache :: arch report - ^- arch - :+ p.ank.dom - ?~(q.ank.dom ~ [~ p.u.q.ank.dom]) - |- ^- (map ,@ta ,~) - ?~ r.ank.dom ~ - [[p.n.r.ank.dom ~] $(r.ank.dom l.r.ank.dom) $(r.ank.dom r.r.ank.dom)] - :: - ++ amor :: endpoint query - |= ren=?(%x %y %z) - ^- (unit ,*) - ?- ren - %x ?~(q.ank.dom ~ [~ q.u.q.ank.dom]) - %y [~ ache] - %z [~ ank.dom] - == - :: - ++ ante :: rewind by change - |= lem=maki - ^+ +> - ?- -.lem - & - %_ +> - ank.dom ?. ?=(& -.p.lem) ank.dom - ank:(dusk:(zu ank.dom) p.p.lem) - lab.dom ?. ?=(| -.p.lem) lab.dom - (~(del by lab.dom) p.p.lem) - == - :: - | - |- ^+ +>.^$ - ?~ s.p.lem +>.^$ - $(s.p.lem t.s.p.lem, +>.^$ ^$(lem i.s.p.lem)) - == - :: - ++ argo :: rewind to aeon - |= oan=@ud - ^+ +> - ?: =(let.dom oan) +> - ?> ?=(^ hit.dom) - ?> ?=(& -.q.i.hit.dom) - => .(+> (ante q.i.hit.dom)) - $(let.dom (dec let.dom), hit.dom t.hit.dom) - :: - ++ auto :: read at point - |= mun=mood - ^- (unit) - ?: ?=(%v p.mun) - [~ dom] - ?: &(?=(%w p.mun) !?=(%ud -.q.mun)) - ?^(r.mun ~ [~ let.dom]) - ?: ?=(%w p.mun) - ?> ?=(^ hit.dom) ?^(r.mun ~ [~ i.hit.dom]) - (amor(ank.dom ank:(deny:(zu ank.dom) r.mun)) p.mun) - :: - ++ aver :: domestic read + ++ aver :: read |= mun=mood ^- (unit (unit ,*)) - =+ nao=(aeon q.mun) - ?~(nao ~ [~ (avid u.nao mun)]) - :: - ++ avid :: seek and read - |= [oan=@ud mun=mood] - ^- (unit) - ?: &(?=(%w p.mun) !?=(%ud -.q.mun)) :: NB optimization - ?^(r.mun ~ [~ oan]) - (auto:(argo oan) mun) + =+ ezy=?~(ref ~ (~(get by haw.u.ref) mun)) + ?^ ezy ezy + =+ nao=(~(aeon ze lim dom) q.mun) + :: ~& [%aver-mun nao [%from syd lim q.mun]] + ?~(nao ~ [~ (~(avid ze lim dom) u.nao mun)]) :: ++ balk :: read and send |= [hen=duct oan=@ud mun=mood] ^+ +> - =+ vid=(avid oan mun) + =+ vid=(~(avid ze lim dom) oan mun) ?~ vid (blob hen) (blab hen mun u.vid) :: ++ blab :: ship result @@ -187,10 +117,35 @@ == $(xiq t.xiq, nex (hunt nex zis)) :: - ++ ease :: unsubscribe + ++ duce :: produce request + |= [hen=duct rav=rave] + ^+ +> + =. qyx (~(put by qyx) hen rav) + ?~ ref +> + =+ ^= vaw ^- rave + ?. ?=([%& %v *] rav) rav + [%| [%ud let.dom] `case`q.p.rav] + =+ inx=nix.u.ref + %= +>.$ + say [[[[%c (scot %ud inx) ~] hen] for [inx syd ~ vaw]] say] + nix.u.ref +(nix.u.ref) + bom.u.ref (~(put by bom.u.ref) inx [hen vaw]) + fod.u.ref (~(put by fod.u.ref) hen inx) + == + :: + ++ ease :: release request |= hen=duct ^+ +> - +>(qyx (~(del by qyx) hen)) + :: ~& [%ease [who for] hen] + =. qyx (~(del by qyx) hen) + ?~ ref +> + =+ nux=(~(get by fod.u.ref) hen) + ?~ nux +>.$ + %= +>.$ + say [[[[%c (scot %ud u.nux) ~] hen] for [u.nux syd ~]] say] + fod.u.ref (~(del by fod.u.ref) hen) + bom.u.ref (~(del by bom.u.ref) u.nux) + == :: ++ eave :: subscribe |= [hen=duct rav=rave] @@ -199,17 +154,17 @@ & =+ ver=(aver p.rav) ?~ ver - +>.$(qyx (~(put by qyx) hen rav)) + (duce hen rav) ?~ u.ver (blob hen) (blab hen p.rav u.u.ver) :: | - =+ nab=(aeon p.p.rav) + =+ nab=(~(aeon ze lim dom) p.p.rav) ?~ nab - ?> =(~ (aeon q.p.rav)) - +>.$(qyx (~(put by qyx) hen rav)) - =+ huy=(aeon q.p.rav) + ?> =(~ (~(aeon ze lim dom) q.p.rav)) + (duce hen rav) + =+ huy=(~(aeon ze lim dom) q.p.rav) ?: &(?=(^ huy) |((lth u.huy u.nab) &(=(0 u.huy) =(0 u.nab)))) (blob hen) =+ top=?~(huy let.dom u.huy) @@ -222,71 +177,102 @@ =+ ^= ptr ^- case ?: =(0 u.nab) [%da @da] =+(old=(slag wid seb) ?>(?=(^ old) `case`[%da p.i.old])) - +>.$(qyx (~(put by qyx) hen `rave`[%| ptr q.p.rav])) + (duce hen `rave`[%| ptr q.p.rav]) == :: - ++ edit :: apply changes - |= [hen=duct wen=@da lem=maki] + ++ echo :: announce changes + |= [hen=duct wen=@da lem=nori] ^+ +> - ?- -.lem - & - %= +>.$ - ank.dom ?. ?=(& -.p.lem) ank.dom - ank:(durn:(zu ank.dom) p.p.lem) - let.dom +(let.dom) - hit.dom :_(hit.dom [wen lem]) - lab.dom ?. ?=(| -.p.lem) lab.dom - ?< (~(has by lab.dom) p.p.lem) - (~(put by lab.dom) p.p.lem let.dom) - vag - ?~(hez.yar vag :_(vag [u.hez.yar [%ergo who syd +(let.dom)]])) - :: - yel - =+ pre=`path`~[(scot %p for) syd (scot %ud +(let.dom))] - ?- -.p.lem - | :_ yel - [hen %note '=' %leaf :(weld (trip p.p.lem) " " (spud pre))] - & |- ^+ yel - ?~ q.p.p.lem yel - :_ $(q.p.p.lem t.q.p.p.lem) - :- hen - :+ %note - ?-(-.q.i.q.p.p.lem %del '-', %ins '+', %mut ':') - [%leaf (spud (weld pre p.i.q.p.p.lem))] - == + %= +> + vag ?~(hez.yar vag :_(vag [u.hez.yar [%ergo who syd let.dom]])) + yel + =+ pre=`path`~[(scot %p for) syd (scot %ud let.dom)] + ?- -.lem + | :_ yel + [hen %note '=' %leaf :(weld (trip p.lem) " " (spud pre))] + & |- ^+ yel + ?~ q.q.lem yel + :_ $(q.q.lem t.q.q.lem) + :- hen + :+ %note + ?-(-.q.i.q.q.lem %del '-', %ins '+', %mut ':') + [%leaf (spud (weld pre p.i.q.q.lem))] == - :: - | - |- ^+ +>.^$ - ?~ s.p.lem +>.^$ - $(s.p.lem t.s.p.lem, +>.^$ ^$(lem i.s.p.lem)) == :: + ++ edit :: apply changes + |= [wen=@da lem=nori] + ^+ +> + +>(dom +<+:(~(axel ze lim dom) wen lem)) + :: ++ exec :: change and update - |= [hen=duct wen=@da lem=maki] + |= [hen=duct wen=@da lem=nori] ^+ +> - wake:(edit hen wen lem) + (echo:wake:(edit wen lem) hen wen lem) + :: + ++ knit :: external change + |= [inx=@ud rot=riot] + ^+ +> + =+ ruv=(~(get by bom.u.ref) inx) + ?~ ruv +>.$ + => ?. |(?=(~ rot) ?=(& -.q.u.ruv)) . + %_ . + bom.u.ref (~(del by bom.u.ref) inx) + fod.u.ref (~(del by fod.u.ref) p.u.ruv) + == + ?~ rot + =+ rav=`rave`q.u.ruv + %= +>.$ + lim + ?.(&(?=(| -.rav) ?=(%da -.q.p.rav)) lim `@da`p.q.p.rav) + :: + haw.u.ref + ?. ?=(& -.rav) haw.u.ref + (~(put by haw.u.ref) p.rav ~) + == + ?< ?=(%v p.p.u.rot) + =. haw.u.ref + (~(put by haw.u.ref) [p.p.u.rot q.p.u.rot q.u.rot] ~ r.u.rot) + ?. ?=(%w p.p.u.rot) +>.$ + |- ^+ +>.^$ + =+ nez=[%w [%ud let.dom] ~] + =+ nex=(~(get by haw.u.ref) nez) + ?~ nex +>.^$ + ?~ u.nex +>.^$ :: should never happen + %= $ + haw.u.ref (~(del by haw.u.ref) nez) + +>.^$ (edit ((hard frog) u.u.nex)) + == :: ++ wake :: update subscribers ^+ . =+ xiq=(~(tap by qyx) ~) =| xaq=(list ,[p=duct q=rave]) |- ^+ ..wake - ?~ xiq ..wake(qyx (~(gas by *cult) xaq)) + ?~ xiq + :: ~& [%wake-out [who for] xaq] + ..wake(qyx (~(gas by *cult) xaq)) ?- -.q.i.xiq & - =+ nao=(aeon q.p.q.i.xiq) + =+ cas=?~(ref ~ (~(get by haw.u.ref) `mood`p.q.i.xiq)) + ?^ cas + %= $ + xiq t.xiq + ..wake ?~ u.cas (blob p.i.xiq) + (blab p.i.xiq p.q.i.xiq u.u.cas) + == + =+ nao=(~(aeon ze lim dom) q.p.q.i.xiq) ?~ nao $(xiq t.xiq, xaq [i.xiq xaq]) $(xiq t.xiq, ..wake (balk p.i.xiq u.nao p.q.i.xiq)) :: | =+ mot=`moat`p.q.i.xiq - =+ nab=(aeon p.mot) + =+ nab=(~(aeon ze lim dom) p.mot) ?: |(?=(~ nab) =(let.dom u.nab)) $(xiq t.xiq, xaq [i.xiq xaq]) ?> (gte let.dom u.nab) ?> ?=(^ hit.dom) - =+ huy=(aeon q.mot) + =+ huy=(~(aeon ze lim dom) q.mot) ?~ huy =+ ptr=[%da p.i.hit.dom] =+ fud=(flop (scag (sub let.dom u.nab) `(list frog)`hit.dom)) @@ -302,167 +288,23 @@ ..wake (blob:(bleb p.i.xiq +(u.nab) fud)) == == - :: - ++ zoot - %_(..de dos.yar (~(put by dos.yar) syd qyx dom)) -- :: ++ di |= syd=@ta =+ ^= saq ^- desk =+ saq=(~(get by dos.yar) syd) - ?~(saq [~ [~ [@uvH ~ ~] 0 ~ ~]] u.saq) - ~(. de who syd now p.saq q.saq) + ?~(saq *desk u.saq) + ~(. de who syd now p.saq ~ q.saq) :: - ++ fa - |= him=ship - =+ ^= raz - =+ raz=(~(get by rid.yar) him) - ?~(raz [p=*rind q=*rink] u.raz) - |% - ++ mete :: foreign request - |= [hen=duct ryf=riff] - ^+ +> - =+ nux=(~(get by fod.p.raz) hen) - ?^ nux - ?> ?=(~ q.ryf) - %= +>.$ - say [[[[%c (scot %ud u.nux) ~] hen] him [u.nux ryf]] say] - fod.p.raz (~(del by fod.p.raz) hen) - bim.p.raz (~(del by bim.p.raz) u.nux) - == - ?~ q.ryf +>.$ - =+ inx=nix.p.raz - %= +>.$ - say [[[[%c (scot %ud inx) ~] hen] him [inx ryf]] say] - nix.p.raz +(nix.p.raz) - bim.p.raz (~(put by bim.p.raz) inx [hen ryf]) - fod.p.raz (~(put by fod.p.raz) hen inx) - == - :: - ++ mote :: send/cancel request - |= [hen=duct ryf=riff] - ^+ +> - (mete hen ryf) - :: =+ rym=(~(get by mir.q.raz) p.ryf) - :: ?~ rym (mete hen ryf) - :: =+ wex=~(. de [who p.ryf lim.u.rym qyx.u.rym dom.u.rym]) - :: =+ wak=?~(q.ryf (ease:wex hen) (eave:wex hen u.q.ryf)) - :: =: byn byn.wak - :: qyx.u.rym qyx.wak - :: dom.u.rym dom.wak - :: == - :: +>.$(mir.q.raz (~(put by mir.q.raz) p.ryf u.rym)) - :: - ++ poll :: pull result - |= [hen=duct syd=disc rot=riot] - ^+ +> - =+ rum=(need (~(get by mir.q.raz) syd)) - =+ kas=(need ask.rum) - =< abet - =< able - |% - ++ abet - ^+ +>.$ - +>.$(mir.q.raz (~(put by mir.q.raz) syd rum)) - :: - ++ able - ^+ . - ?~ rot - %- pith(ask.rum ~, lim.rum kas) - ~(. de [him syd kas qyx.rum dom.rum]) - ?> ?=(%w p.p.u.rot) - ?> =(syd r.p.u.rot) - ?> =(~ q.u.rot) - ?> ?=(%ud -.q.p.u.rot) - ?> =(let.dom.rum p.q.p.u.rot) - =+ rog=((hard frog) r.u.rot) - =+ sab=`saba`[him syd [p.q.p.u.rot +(p.q.p.u.rot)] [q.rog ~]] - =. ..fa (fray hen pal.rum sab) - (pith (~(exec de [him syd lim.rum qyx.rum dom.rum]) hen rog)) - :: - ++ pith - |= wex=_de - ^+ +> - =+ wak=wake:wex - %_ +>.$ - byn byn.wak - yel yel.wak - qyx.rum qyx.wak - dom.rum dom.wak - == - -- - :: - ++ puke :: pull failed - |= [hen=duct syd=disc msg=tape] - ^+ +> - %_ +> - mir.q.raz (~(del by mir.q.raz) syd) - yel [[hen [%note '?' %leaf msg]] yel] - == - :: - ++ pull :: pull changeset - |= [hen=duct syd=disc pal=(list disc)] - ^+ +> - =+ ^= rum ^- rede - =+ rum=(~(get by mir.q.raz) syd) - ?^ rum u.rum [~2000.1.1 ~ pal ~ [~ [@uvH ~ ~] 0 ~ ~]] - ?> ?=(~ ask.rum) - => .(ask.rum [~ now]) - =. +>.$ - %+ mete - [[%c %pull (scot %p him) syd ~] hen] - [syd ~ %| [%da lim.rum] [%da now]] - +>.$(mir.q.raz (~(put by mir.q.raz) syd rum)) - :: - ++ tome :: accept response - |= [inx=@ud rot=riot] - ^+ +> - :: ~& [%tome inx ?~(rot ~ [p.u.rot q.u.rot])] - =+ mub=(~(get by bim.p.raz) inx) - ?~ mub +>.$ - =+ die=?~(rot & &(?=(^ q.q.u.mub) ?=(& -.u.q.q.u.mub))) - %= +>.$ - byn [[p.u.mub rot] byn] - bim.p.raz ?.(die bim.p.raz (~(del by bim.p.raz) inx)) - fod.p.raz ?.(die fod.p.raz (~(del by fod.p.raz) p.u.mub)) - hac.q.raz ?~ rot - hac.q.raz - %+ ~(put by hac.q.raz) - [p.p.u.rot q.p.u.rot r.p.u.rot q.u.rot] - r.u.rot - == - :: - ++ tref :: request rejected - |= [hen=duct tea=wire] - ^+ +> - ~& [%tref tea] - ?. ?=([@ *] tea) +> - =+ xoc=(slay i.tea) - ?: ?=([~ %$ %p @] xoc) - ?> ?=([@ ~] t.tea) - (puke hen i.t.tea "system failure") - ?. ?=([~ %$ %ud @] xoc) +>.$ - =+ mub=(~(get by bim.p.raz) q.p.u.xoc) - ?~ mub +>.$ - %= +>.$ - byn [[p.u.mub ~] byn] - fod.p.raz (~(del by fod.p.raz) q.p.u.xoc) - == - :: - ++ vera :: search - |= [syd=@tas ren=care lok=case way=path] - ^- (unit) - =+ haz=(~(get by hac.q.raz) ren lok syd way) - ?^ haz haz - =+ rym=(~(get by mir.q.raz) syd) - ?~ rym ~ - =+ vyr=(~(aver de [him syd lim.u.rym qyx.u.rym dom.u.rym]) ren lok way) - ?~(vyr ~ u.vyr) - :: - ++ zoom - %_(+>.$ rid.yar (~(put by rid.yar) him raz)) - -- + ++ do + |= [him=ship syd=@tas] + =+ ^= red ^- rede + =+ roy=(~(get by rid.yar) him) + =+ yit=?~(roy ~ (~(get by u.roy) syd)) + ?^(yit u.yit `rede`[~2000.1.1 ~ [~ *rind] *dome]) + :: ~& [%do-qyx him syd qyx.red] + ~(. de him syd red) -- -- :::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -483,6 +325,7 @@ [[[wru [/d hen] %flog fav] ~] ..^$] :: %deem + ~& [%beat-deem wru hen] =. wru ?^ wru wru ?. =(%gold (adit hen)) ~ @@ -491,9 +334,9 @@ :: %init :: [[%tell %0 %leaf "clay: home for {~(rend co ~ %p q.u.wru)}"] ~] - [~ ..^$(fat.ruf (~(put by fat.ruf) q.u.wru [hen ~ ~ ~ ~]))] + [~ ..^$(fat.ruf (~(put by fat.ruf) q.u.wru [hen ~ ~ ~]))] :: - ?(%into %info) + ?(%info %into) =. wru ?^ wru wru ?. =(%gold (adit hen)) ~ @@ -505,15 +348,20 @@ [~ ..^$(fat.ruf (~(put by fat.ruf) p.fav yar(hez [~ hen])))] =^ mos ruf =+ ^= zot - zoot:(exec:(di:wake:(un q.u.wru now ruf) q.fav) hen now [%& r.fav]) + abet:(exec:(di:wake:(un q.u.wru now ruf) q.fav) hen now r.fav) abet:zot(hez.yar ?.(=(%into -.fav) hez.yar.zot [~ hen])) [mos ..^$] :: - %pull - ?> ?=(^ wru) - ?> !=(q.u.wru q.fav) + %waft + ?> ?=([@ @ ~] tea) + =+ syd=(need (slaw %tas i.tea)) + =+ inx=(need (slaw %ud i.t.tea)) =^ mos ruf - abet:zoom:(pull:(fa:(un q.u.wru now ruf) p.fav) hen q.fav r.fav) + =< abet + =< abet + =< wake + %. [inx ((hard riot) q.fav)] + knit:(do:(un q.u.wru now ruf) p.fav syd) [mos ..^$] :: %warp @@ -521,34 +369,36 @@ =^ mos ruf =< abet =+ une=(un q.u.wru now ruf) - :: ~& [%warp q.u.wru p.fav] - ?. =(q.u.wru p.fav) - zoom:(mote:(fa:une p.fav) hen q.fav) - =+ wex=(di:une p.q.fav) + :: ~& [%clay-warp q.u.wru fav] + =+ wex=?.(=(q.u.wru p.fav) (do:une p.fav p.q.fav) (di:une p.q.fav)) ?~ q.q.fav - zoot:(ease:wex hen) - zoot:(eave:wex hen u.q.q.fav) + abet:(ease:wex hen) + abet:(eave:wex hen u.q.q.fav) [mos ..^$] :: %wart - ?> ?=(%ru q.fav) - ?~ s.fav [~ ..^$] - =^ mos ruf - =< abet - =< zoom - (tome:(fa:(un q.u.wru now ruf) p.fav) ((hard ,[@ud riot]) u.s.fav)) - [mos ..^$] + ?> ?=(^ wru) + ?> ?=(%re q.fav) + =+ ryf=((hard riff) s.fav) + :_ ..^$ + :~ :+ [~ %iron q.u.wru] + [/c [%c (scot %p p.fav) r.fav] hen] + `card`[%warp q.u.wru ryf] + == :: - %went - ?: =(%good q.fav) [~ ..^$] + %writ ?> ?=([@ *] tea) - =+ une=(un q.u.wru now ruf) - =^ mos ruf - ?+ i.tea ~&([%went-wrong tea] !!) - %pull - abet:zoom:(tref:(fa:une p.fav) hen t.tea) - == - [mos ..^$] + =+ him=(need (slaw %p i.tea)) + :_ ..^$ + :~ :+ wru + [/a [%c ~] hen] + `card`[%want him [%r %re %c t.tea] p.fav] + == + :: + %went :: XX should actually propagate + ?: =(%good q.fav) [~ ..^$] + ~& [%clay-lost tea] + [~ ..^$] :: %wake =+ dal=(turn (~(tap by fat.ruf) ~) |=([a=@p b=room] a)) @@ -557,36 +407,6 @@ ?~ dal [mos ..^^$(las.ruf now)] =^ som ruf abet:wake:(un i.dal now ruf) $(dal t.dal, mos (weld som mos)) - :: - %wort - ?> ?=([@ *] tea) - =+ une=(un q.u.wru now ruf) - =^ mos ruf - ?+ i.tea !! - %pull - ?> ?=([@ @ ~] t.tea) - =+ xoc=(slay i.t.tea) - ?> ?=([~ %$ %p @] xoc) - =< abet - =< zoom - (puke:(fa:(un q.u.wru now ruf) q.p.u.xoc) hen i.t.t.tea p.fav) - == - [mos ..^$] - :: - %writ - ?> ?=([@ *] tea) - =+ une=(un q.u.wru now ruf) - =^ mos ruf - ?+ i.tea ~&([%writ-bad tea] !!) - %pull - ?> ?=([@ @ ~] t.tea) - =+ xoc=(slay i.t.tea) - ?> ?=([~ %$ %p @] xoc) - =< abet - =< zoom - (poll:(fa:(un q.u.wru now ruf) q.p.u.xoc) hen i.t.t.tea p.fav) - == - [mos ..^$] == :: ++ come @@ -622,9 +442,12 @@ =+ run=((soft care) ron) ?~ luk ~ ?~ run ~ - ?. =(our his) - (vera:(fa:(un our now ruf) his) syd u.run u.luk tyl) - =+ vyr=(aver:(di:(un our now ruf) syd) u.run u.luk tyl) + =+ ^= vyr + =+ une=(un our now ruf) + %. [u.run u.luk tyl] + =+ dud=?.(=(our his) (do:une his syd) (di:une syd)) + :: ~& [%scry-at [our his] now lim.dud] + aver:dud ?~(vyr ~ u.vyr) :: ++ stay `vase`!>(ruf) diff --git a/arvo/dill.hoon b/arvo/dill.hoon index dbaa761e5..571c51291 100644 --- a/arvo/dill.hoon +++ b/arvo/dill.hoon @@ -1,4 +1,4 @@ -:: +!: :: dill (4d), terminal handling :: |= pit=vase diff --git a/arvo/eyre.hoon b/arvo/eyre.hoon index 7d1f89669..38cd90357 100644 --- a/arvo/eyre.hoon +++ b/arvo/eyre.hoon @@ -1,4 +1,4 @@ -:: +!: :: eyre (4e), http servant :: |= pit=vase diff --git a/arvo/hoon.hoon b/arvo/hoon.hoon index c459ab676..2a5eb8f72 100644 --- a/arvo/hoon.hoon +++ b/arvo/hoon.hoon @@ -1,5 +1,5 @@ :: -:: Hoon/Arvo stage 191 (reflexive). +:: Hoon/Arvo stage 191 (reflexive). :: This file is in the public domain. :: :: A noun is an atom or a cell. An atom is any natural number @@ -125,7 +125,7 @@ :: below. No secrets live forever, though, and the kernel :: author retains no dominion whatsoever over Arvo users. :: All keys and algorithms can be updated without disruption. -:: [NB: the roots are now in urb/les/arvo/ames.hoon.] +:: [NB: the roots are now in urb/zod/arvo/ames.hoon.] :: :: Arvo does not process packets only, but also local events :: (++card) from the host OS. Modules handling these events @@ -297,6 +297,7 @@ [%sgls p=@ q=gene] :: [%sgpm p=@ud q=gene r=gene] :: [%sgts p=gene q=gene] :: + [%sgwt p=@ud q=gene r=gene s=gene] :: [%sgzp p=gene q=gene] :: :: :: [%smcb p=gene q=gene] :: @@ -425,19 +426,19 @@ [1 p=(list)] :: [2 p=(list ,[@ta *])] :: == :: -++ tool $& [p=tool q=tool] :: +++ nock $& [p=nock q=nock] :: $% [0 p=@] :: [1 p=*] :: - [2 p=tool q=tool] :: - [3 p=tool] :: - [4 p=tool] :: - [5 p=tool q=tool] :: - [6 p=tool q=tool r=tool] :: - [7 p=tool q=tool] :: - [8 p=tool q=tool] :: - [9 p=@ q=tool] :: - [10 p=?(@ [p=@ q=tool]) q=tool] :: - [11 p=tool] :: + [2 p=nock q=nock] :: + [3 p=nock] :: + [4 p=nock] :: + [5 p=nock q=nock] :: + [6 p=nock q=nock r=nock] :: + [7 p=nock q=nock] :: + [8 p=nock q=nock] :: + [9 p=@ q=nock] :: + [10 p=?(@ [p=@ q=nock]) q=nock] :: + [11 p=nock] :: == :: ++ toon $% [0 p=*] :: [1 p=(list)] :: @@ -478,6 +479,8 @@ == :: $% [%d p=@ud] :: blocklist == :: +++ unce |* a=_,* :: change part + $%([& p=@ud] [| p=(list a) q=(list a)]) :: ++ unit |* a=_,* :: maybe $|(~ [~ u=a]) :: ++ upas :: tree change (%d) @@ -486,9 +489,7 @@ [1 p=*] :: insert new [2 p=axis q=udon] :: mutate! == :: -++ urge |* a=_,* :: list change - %- list :: - ,$%([& p=@ud] [| p=(list a) q=(list a)]) :: +++ urge |*(a=_,* (list (unce a))) :: list change ++ vase ,[p=type q=*] :: type-value pair ++ vise ,[p=tope q=*] :: old vase ++ wall (list tape) :: text lines @@ -505,6 +506,7 @@ [%tree p=term q=wine] :: [%unit p=term q=wine] :: == :: +++ woof (list $|(@ud [p=@ud q=@ud])) :: udon transform ++ wonk |*(veq=edge ?@(q.veq !! p.u.q.veq)) :: :: :: ++ map |* [a=_,* b=_,*] :: associative array @@ -3873,7 +3875,7 @@ [%fork hoz bur] :: ++ cove - |= nug=tool + |= nug=nock ?- nug [0 *] p.nug [10 *] $(nug q.nug) @@ -3881,8 +3883,8 @@ == ++ comb ~/ %comb - |= [mal=tool buz=tool] - ^- tool + |= [mal=nock buz=nock] + ^- nock ?: ?&(?=([0 *] mal) !=(0 p.mal)) ?: ?&(?=([0 *] buz) !=(0 p.buz)) [%0 (peg p.mal p.buz)] @@ -3897,8 +3899,8 @@ :: ++ cond ~/ %cond - |= [pex=tool yom=tool woq=tool] - ^- tool + |= [pex=nock yom=nock woq=nock] + ^- nock ?- pex [1 0] yom [1 1] woq @@ -3907,8 +3909,8 @@ :: ++ cons ~/ %cons - |= [vur=tool sed=tool] - ^- tool + |= [vur=nock sed=nock] + ^- nock ?: ?=([[0 *] [0 *]] +<) ?: ?&(=(+(p.vur) p.sed) =((div p.vur 2) (div p.sed 2))) [%0 (div p.vur 2)] @@ -3944,8 +3946,8 @@ :: ++ flan ~/ %flan - |= [bos=tool nif=tool] - ^- tool + |= [bos=nock nif=nock] + ^- nock ?- bos [1 1] bos [1 0] nif @@ -3959,13 +3961,13 @@ :: ++ flip ~/ %flip - |= [dyr=tool] + |= [dyr=nock] [%6 dyr [%1 1] [%1 0]] :: ++ flor ~/ %flor - |= [bos=tool nif=tool] - ^- tool + |= [bos=nock nif=nock] + ^- nock ?- bos [1 1] nif [1 0] bos @@ -3979,22 +3981,22 @@ :: ++ hike ~/ %hike - |= [axe=axis pac=(list ,[p=axis q=tool])] - ^- tool + |= [axe=axis pac=(list ,[p=axis q=nock])] + ^- nock ?~ pac [%0 axe] - =+ zet=(skim pac.$ |=([p=axis q=tool] [=(1 p)])) + =+ zet=(skim pac.$ |=([p=axis q=nock] [=(1 p)])) ?~ zet - =+ tum=(skim pac.$ |=([p=axis q=tool] ?&(!=(1 p) =(2 (cap p))))) - =+ gam=(skim pac.$ |=([p=axis q=tool] ?&(!=(1 p) =(3 (cap p))))) + =+ tum=(skim pac.$ |=([p=axis q=nock] ?&(!=(1 p) =(2 (cap p))))) + =+ gam=(skim pac.$ |=([p=axis q=nock] ?&(!=(1 p) =(3 (cap p))))) %+ cons %= $ axe (peg axe 2) - pac (turn tum |=([p=axis q=tool] [(mas p) q])) + pac (turn tum |=([p=axis q=nock] [(mas p) q])) == %= $ axe (peg axe 3) - pac (turn gam |=([p=axis q=tool] [(mas p) q])) + pac (turn gam |=([p=axis q=nock] [(mas p) q])) == ?>(?=([* ~] zet) q.i.zet) :: @@ -4499,6 +4501,7 @@ r.gen :: [%sgts *] [%sggr [%germ p.gen] q.gen] + [%sgwt *] [%tsgl s.gen %wtdt q.gen [~ 1] %sgpm p.gen r.gen [~ 1]] [%sgzp *] [%sggr [%mean [%brdt p.gen]] q.gen] [%smcl *] ?- q.gen @@ -5568,7 +5571,7 @@ |= axe=axis =+ vot=*(set type) |- - ^- tool + ^- nock ?- sut [%atom *] (flip [%3 %0 axe]) %void [%1 1] @@ -5672,7 +5675,7 @@ ++ hail |= [dab=(map term foot) waf=(map term foot)] =+ axe=1 - =+ dif=*(list ,[p=axis q=tool]) + =+ dif=*(list ,[p=axis q=nock]) |- ^+ dif ?~ dab ?>(?=(~ waf) dif) @@ -5789,8 +5792,8 @@ ++ mint ~/ %mint |= [gol=type gen=gene] - ^- [p=type q=tool] - |^ ^- [p=type q=tool] + ^- [p=type q=nock] + |^ ^- [p=type q=nock] ?: ?&(=(%void sut) !?=([%zpcb *] gen)) ?. |(!vet ?=([%zpfs *] gen) ?=([%zpzp *] gen)) ~|(%mint-vain !!) @@ -5824,8 +5827,8 @@ =+ mew=(swab q.gen) =- [(nice p.yom) ?:(=(0 p.q.lar) q.yom [%9 p.q.lar q.yom])] ^= yom - =+ hej=*(list ,[p=axis q=tool]) - |- ^- [p=type q=tool] + =+ hej=*(list ,[p=axis q=nock]) + |- ^- [p=type q=nock] ?@ mew [(fire q.q.lar) (hike p.lar hej)] =+ zil=^$(gen q.i.mew, gol %noun) @@ -5922,7 +5925,7 @@ :: ++ grow |= [mel=?(%gold %iron %lead %zinc) ruf=gene dab=(map term foot)] - ^- [p=type q=tool] + ^- [p=type q=nock] =+ dan=^$(gen ruf, gol %noun) =+ toc=(core p.dan [%gold p.dan [~ dab]]) =+ dez=(harp(sut toc) dab) @@ -7096,6 +7099,11 @@ ;~(gunk (cook lent (stun [1 3] gar)) loaf loaf) (stag 0 ;~(gunk loaf loaf)) == + ++ hing |. + ;~ pose + ;~(gunk (cook lent (stun [1 3] gar)) loaf loaf loaf) + (stag 0 ;~(gunk loaf loaf loaf)) + == ++ bonk ;~ pfix cen ;~ pose diff --git a/arvo/zuse.hoon b/arvo/zuse.hoon index cb8d6e02c..f1d601520 100644 --- a/arvo/zuse.hoon +++ b/arvo/zuse.hoon @@ -451,12 +451,13 @@ [[p.ank p.bus] (flop myz:(dist:(zu ank) %c bus))] :: ++ ze !: - |_ dome + |_ [lim=@da dome] ++ aeon :: aeon:ze - |= lok=case :: change count thru + |= lok=case :: act count through ^- (unit ,@ud) ?- -.lok %da + ?: (gth p.lok lim) ~ |- ^- (unit ,@ud) ?~ hit [~ let] ?: (gte p.lok p.i.hit) [~ let] @@ -474,91 +475,226 @@ ?~ r.ank ~ [[p.n.r.ank ~] $(r.ank l.r.ank) $(r.ank r.r.ank)] :: + ++ acai :: acai:ze + |= mus=masu :: inverse trout + [p.mus q.mus [q.r.mus p.r.mus] [q.s.mus p.s.mus]] + :: ++ acid :: acid:ze |= oan=@ud :: invert to - ^- (list maki) + ^- (list tako) =+ mar=(scag (sub let oan) hit) - (adze (turn mar |=([a=@da b=maki] b))) + (alar (adze (turn mar |=([a=@da b=nori] b)))) :: ++ adze :: adze:ze - |= may=(list maki) :: reverse maki + |= may=(list nori) :: reverse nori %- flop - |- ^- (list maki) + |- ^- (list nori) ?~ may ~ =+ yam=$(may t.may) ?- -.i.may - & ?-(-.p.i.may | yam, & [[%& %& (curl p.p.i.may)] yam]) - | [i.may(s.p $(may s.p.i.may)) yam] + & [[%& (bind p.i.may acai) (curl q.i.may)] yam] + | yam == :: - ++ aint :: aint:ze - |= may=(list maki) :: strip maki - ^- (list maki) + ++ alar :: alar:ze + |= may=(list nori) :: nori to tako + ^- (list tako) ?~ may ~ - =+ yam=$(may t.may) ?- -.i.may - & ?-(-.p.i.may | [i.may yam], & yam) - | [i.may(s.p $(may s.p.i.may)) yam] + & (weld q.q.i.may $(may t.may)) + | $(may t.may) == :: + ++ alba :: alba:ze + |= hoe=(list tako) :: deconstruct + |- ^- (map path (list udon)) + ?~ hoe ~ + =+ hom=$(hoe t.hoe) + %+ ~(put by hom) p.i.hoe + =+ vue=(~(get by hom) p.i.hoe) + [?>(?=(%mut -.q.i.hoe) p.q.i.hoe) ?~(vue ~ u.vue)] + :: + ++ aloe :: aloe:ze + |= yop=(map path (list udon)) :: reconstruct + ^- (list tako) + =+ puy=(~(tap by yop) ~) + |- ^- (list tako) + ?~ puy ~ + (weld (turn q.i.puy |=(a=udon [p.i.puy %mut a])) $(puy t.puy)) + :: + ++ alto :: alto:ze + |= $: yop=(map path (list udon)) :: yop before peq + peq=(map path (list udon)) + == + =+ puy=(~(tap by yop) ~) + |- ^+ peq + ?~ puy peq + %= $ + puy t.puy + peq + =+ peb=(~(get by peq) p.i.puy) + ?~ peb peq + (~(put by peq) p.i.puy (lyre q.i.puy u.peb)) + == +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: +++ woof (list $|(@ud [p=@ud q=@ud])) :: udon transform +++ lisp :: transform urge + |* wig=(urge) + |= dog=woof + ^- [p=woof q=_wig] + ?~ wig [~ ~] + ?: =([%& 0] i.wig) $(wig t.wig) + ?~ dog + ?- -.i.wig + & $(dog [p.i.wig ~]) + | $(dog [(lent p.i.wig) ~]) + == + ?@ i.dog + ?: =(0 i.dog) $(dog t.dog) + ?- -.i.wig + & + ?: (lth i.dog p.i.wig) + =+ mol=$(dog t.dog, p.i.wig (sub p.i.wig i.dog)) + [[i.dog p.mol] [[%& i.dog] q.mol]] + =+ mol=$(i.dog (sub i.dog p.i.wig), wig t.wig) + [[p.i.wig p.mol] [[%& p.i.wig] q.mol]] + :: + | + =+ leg=(lent p.i.wig) + ?> (gte i.dog leg) + =+ mol=$(i.dog (sub i.dog leg), wig t.wig) + :- `woof`[`[@ @]`[leg (lent q.i.wig)] `woof`p.mol] + `_wig`[i.wig q.mol] + == + ?> ?=(& -.i.wig) + ?> (gte p.i.wig -.i.dog) + =+ mol=$(dog t.dog, p.i.wig (sub p.i.wig -.i.dog)) + [[i.dog p.mol] [[%& +.i.dog] q.mol]] +:: +++ lith :: initial transform + |= wig=(urge) + ^- woof + =+ wug=((lisp wig) *woof) + ?>(=(wig q.wug) p.wug) +:: +++ lobe :: udonous urge + |= [ump=umph heb=(list (urge))] + ^- (list udon) + (turn heb |=(a=(urge) `udon`[ump %c a])) +:: +++ lobo :: urgey udon + |= [ump=umph yeb=(list udon)] + ^- (list (urge)) + (turn yeb |=(a=udon ?>(&(=(ump p.a) ?=(%c -.q.a)) p.q.a))) +:: +++ loch :: put wof before weq + |= [wof=woof weq=(list (urge))] + ^- (list (urge)) + |- ^+ weq + ?~ weq ~ + =+ wug=((lisp i.weq) wof) + [q.wug $(weq t.weq, wof p.wug)] +:: +++ loup :: put heb before weq + |= [heb=(list (urge)) weq=(list (urge))] + ^- (list (urge)) + ?~ heb weq + ?~ weq heb + ?: =(i.heb i.weq) $(heb t.heb, weq t.weq) + $(heb t.heb, weq (loch (lith i.heb) weq)) +:: +++ lyre :: put yeb before zeq + |= [yeb=(list udon) zeq=(list udon)] + ^- (list udon) + ?~ yeb zeq + ?~ zeq yeb + ?: =(i.yeb i.zeq) $(yeb t.yeb, zeq t.zeq) + =+ ump=p.i.yeb + (lobe ump (loup (lobo ump yeb) (lobo ump zeq))) +:: +:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ++ amor :: amor:ze |= ren=?(%v %x %y %z) :: endpoint query ^- (unit ,*) ?- ren - %v [~ `dome`+<.amor] + %v [~ `dome`+<+.amor] %x ?~(q.ank ~ [~ q.u.q.ank]) %y [~ ache] - %z [~ ank] :: should bee + %z [~ ank] == :: ++ ante :: ante:ze - |= lem=maki :: rewind by change + |= lem=nori :: rewind by change ^+ +> - ?- -.lem - & - %_ +> - ank ?. ?=(& -.p.lem) ank - ank:(dusk:(zu ank) p.p.lem) - lab ?. ?=(| -.p.lem) lab - (~(del by lab) p.p.lem) - == - :: - | - |- ^+ +>.^$ - ?~ s.p.lem +>.^$ - $(s.p.lem t.s.p.lem, +>.^$ ^$(lem i.s.p.lem)) + ?- -.lem + & (avon:(anti q.lem) (bind p.lem acai)) + | +>(lab (~(del by lab) p.lem)) == :: + ++ anti :: axon:ze + |= nyp=soba :: reverse axon + ^+ +> + +>(ank ank:(dusk:(zu ank) nyp)) + :: ++ argo :: argo:ze |= oan=@ud :: rewind to aeon ^+ +> ?: =(let oan) +> - ?> ?=(^ hit) - ?> ?=(& -.q.i.hit) - => .(+> (ante q.i.hit)) - $(let (dec let), hit t.hit) + =+ lem=?>(?=(^ hit) q.i.hit) + =: let (dec let) + hit t.hit + == + $(+> (ante lem)) + :: + ++ arum :: arum:ze + |= [tak=(list tako) kat=(list tako)] :: hard merge + (aloe (alto (alba tak) (alba kat))) :: ++ auld :: auld:ze - |= [wen=@da gem=germ sab=saba] :: adjust edits - ^- (unit saba) :::::: + |= [wen=@da gem=germ sab=saba] :: construct merge + ^- (unit (unit nori)) :::::: =+ ^= viq ^- [p=@ud q=@ud] :: =+ viq=(~(get by ang) [p.sab q.sab]) :: ?~(viq [0 0] u.viq) :: - ?: =(let p.viq) [~ sab] :: perfect fit - =+ paj=(axel:(argo p.viq) wen [%| sab]) :: + =. sab :: + ?: =(q.viq p.r.sab) sab :: perfect motion + ?> (gth q.viq p.r.sab) :: proper motion + %= sab :: + p.r q.viq :: + s (slag (sub q.viq p.r.sab) s.sab) :: + == :: + ?~ s.sab [~ ~] + =+ ^= mus ^- masu + [p.sab q.sab [p.viq +(let)] [q.viq q.r.sab]] + :: ~& [%auld p.mus q.mus [%too r.mus] [%fro s.mus]] + =+ kat=(alar s.sab) + =+ lem=`nori`[%& [~ mus] `soba`[[@ @] kat]] + ?: =(let p.viq) + :: ~& [%nice let] + [~ ~ lem] :: perfect fit + =+ paj=(axel:(argo p.viq) wen lem) :: XX !! ?: =(ank.paj ank) :: - [~ sab(s (aint s.sab))] :: same outcome - ?- gem :: - %fine ~ :: nothing perfect - %mate ~|(%mate-stub !!) :: not supported - %that [~ sab(s (weld (acid p.viq) s.sab))] :: discard internal - %this :: discard external - [~ sab(s (aint s.sab))] :: - == :: + :: ~& [%same [let p.viq]] + [~ ~ lem(q.q ~)] + =+ ^= tak + %- alar %- flop + %+ turn (scag (sub let p.viq) hit) + |=(a=frog q.a) + =+ tig=(mang [arum tak kat] |=(* *(unit))) + ?^ tig [~ ~ lem(q.q ((hard (list tako)) u.tig))] + ?- gem + %fine ~ :: nothing perfect + %mate ~|(%mate-stub !!) :: not supported + %that [~ ~ lem(q.q (weld (acid p.viq) q.q.lem))] + %this [~ ~ lem(q.q ~)] + == :: ++ auto :: auto:ze |= mun=mood :: read at point ^- (unit) + ?: ?=(%v p.mun) + [~ `dome`+<+.auto] ?: &(?=(%w p.mun) !?=(%ud -.q.mun)) ?^(r.mun ~ [~ let]) ?: ?=(%w p.mun) @@ -578,33 +714,32 @@ ?^(r.mun ~ [~ oan]) (auto:(argo oan) mun) :: + ++ avon :: avon:ze + |= mys=(unit masu) :: apply trout + ^+ +> + ?~ mys +> + =+ [yek=[p.u.mys q.u.mys] det=[q.r.u.mys q.s.u.mys]] + =+ guf=(~(get by ang) yek) + =+ ted=`moar`?~(guf [0 0] u.guf) + :: ~& [%avon p.u.mys q.u.mys [%haz ted] [%too r.u.mys] [%fro s.u.mys]] + ?> &(=(p.ted p.r.u.mys) =(q.ted p.s.u.mys)) + +>.$(ang ?:(=([0 0] det) (~(del by ang) yek) (~(put by ang) yek det))) + :: ++ axel :: axel:ze - |= [wen=@da lem=maki] :: edit + |= [wen=@da lem=nori] :: edit ^+ +> =: let +(let) hit :_(hit [wen lem]) == - ?- -.lem - & - %= +>.$ - ank ?. ?=(& -.p.lem) ank - ank:(durn:(zu ank) p.p.lem) - lab ?. ?=(| -.p.lem) lab - ?< (~(has by lab) p.p.lem) - (~(put by lab) p.p.lem let) - == - :: - | - =+ sab=p.lem - =+ ^= vip ^- @ud - =+ vip=(~(get by ang) [p.sab q.sab]) - ?~(vip 0 p.u.vip) - ?> =(vip p.r.sab) - =. ang (~(put by ang) [p.sab q.sab] [q.r.sab let]) - |- ^+ +>.^$ - ?~ s.sab +>.^$ - $(s.sab t.s.sab, +>.^$ ^$(lem i.s.sab)) + ?- -.lem + & (avon:(axon q.lem) p.lem) + | +>(lab ?<((~(has by lab) p.lem) (~(put by lab) p.lem let))) == + :: + ++ axon :: axon:ze + |= nyp=soba :: apply changes + ^+ +> + +>(ank ank:(durn:(zu ank) nyp)) -- :: ++ zu !: :: filesystem @@ -716,12 +851,11 @@ => .(+ (drum p.i.myz q.i.myz)) $(myz t.myz) :: - ++ dupe :: apply - | - :: ++ durn :: apply forward |= nyp=soba ^+ +> + ?: =([0 0] p.nyp) + dune(myz q.nyp) => ?: =(p.ank p.p.nyp) . ~& [%durn-in-wrong p.ank p.p.nyp] . @@ -1186,7 +1320,7 @@ ?. ?=(^ ved) ~ =+ his=`@p`q.p.u.fal =+ [dis=(end 3 1 q.p.u.hyr) rem=(rsh 3 1 q.p.u.hyr)] - ?. ?&(?=(%c dis) ?=(?(%w %x %y %z) rem)) ~ + ?. ?&(?=(%c dis) ?=(?(%v %w %x %y %z) rem)) ~ [~ rem (case p.u.ved) q.p.u.fal q.p.u.dyc tyl] :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: section 3bF, Arvo models :: @@ -1218,7 +1352,7 @@ ++ tear |=(a=@ *(unit ,[p=@ q=@])) :: accept -- :: -- :: -++ agon (map ,[p=ship q=disc] ,[p=@ud q=@ud]) :: mergepoints +++ agon (map ,[p=ship q=disc] ,[p=@ud q=@ud]) :: mergepts our/their ++ ankh :: fs node (new) $: p=cash :: recursive hash q=(unit ,[p=cash q=*]) :: file @@ -1230,8 +1364,8 @@ ++ bait ,[p=skin q=@ud r=dove] :: fmt nrecvd spec ++ bath :: convo per client $: sop=shed :: not stalled - raz=(map ,@ta race) :: statements inbound - ryl=(map ,@ta rill) :: statements outbound + raz=(map path race) :: statements inbound + ryl=(map path rill) :: statements outbound == :: ++ bead :: terminal control $: $: bul=@ud :: buffer length @@ -1301,9 +1435,9 @@ ++ boat ,[(list slip) tart] :: user stage ++ boon :: fort output $% [%beer p=ship q=@uvG] :: gained ownership - [%coke p=sock q=cape r=soap s=duct] :: message result + [%coke p=sock q=soap r=cape s=duct] :: message result [%mead p=lane q=rock] :: accept packet - [%milk p=sock q=@tas r=@ud s=(unit ,*)] :: accept message + [%milk p=sock q=soap r=*] :: accept message [%ouzo p=lane q=rock] :: transmit packet [%wine p=sock q=tape] :: notify user == :: @@ -1326,7 +1460,6 @@ ++ cape :: end-to-end result $? %good :: delivered %dead :: rejected - %lost :: interrupted == :: ++ card :: event $% [%bbye ~] :: reset prompt @@ -1401,14 +1534,14 @@ [%volt p=*] :: upgrade kernel [%wait p=@da q=path] :: timer wait [%wake ~] :: timer activate - [%want p=ship q=@ta r=*] :: send message - [%warp p=ship q=riff] :: request - [%wart p=ship q=@ta r=@ud s=(unit ,*)] :: incoming response - [%warn p=tape] :: system message - [%went p=ship q=cape r=soap] :: outgoing reaction + [%waft p=ship q=*] :: response message + [%want p=ship q=path r=*] :: send message + [%warn p=tape] :: syslog + [%warp p=ship q=riff] :: file request + [%wart p=ship q=@tas r=path s=*] :: service request + [%went p=ship q=cape] :: reaction message [%wipe ~] :: clean to sequence [%word p=chum] :: set password - [%wort p=tape] :: semantic failure [%writ p=riot] :: response == :: ++ cart ,[p=cash q=cash] :: hash change @@ -1443,14 +1576,6 @@ ++ cred ,[p=? q=logo q=oryx r=(unit ship)] :: client credentials ++ cult (map duct rave) :: subscriptions ++ deed ,[p=@ q=step] :: signature, stage -++ dock :: link record - $: for=ship :: host - dys=@tas :: linked to desk - kol=case :: last update case - num=@ud :: update count - cuz=(list ,[p=@ud q=dole]) :: cumulative update - == :: -++ dole ,[p=(unit moar) q=(list maki)] :: flow trace ++ dome :: project state $: ang=agon :: pedigree ank=ankh :: new state @@ -1458,7 +1583,7 @@ hit=(list frog) :: changes in reverse lab=(map ,@tas ,@ud) :: labels == :: -++ desk ,[p=cult q=dome] :: project state +++ desk ,[p=cult q=dome] :: domestic desk state ++ disc ,@ta :: modeshipdeskcasespur ++ door :: foreign contact $: wod=road :: connection to @@ -1475,9 +1600,8 @@ $: hop=@da :: network boot date ton=town :: security zac=(map ship oven) :: flows by server - rop=(map ,[p=@ud q=sock] riff) :: remote requests == :: -++ frog ,[p=@da q=maki] :: project change +++ frog ,[p=@da q=nori] :: time and change ++ gift :: one-way effect $% [%$ p=vase] :: trivial output [%cc p=(unit case)] :: change case @@ -1494,6 +1618,8 @@ [%ok p=disc q=nori] :: save changes [%sc p=(unit skit)] :: stack library [%sp p=(list lark)] :: spawn task(s) + [%sq p=ship q=@tas r=path s=*] :: send request + [%sr p=ship q=path r=*] :: send response [%te p=(list ,@t)] :: dump lines [%th p=@ud q=love] :: http response [%va p=@tas q=(unit vase)] :: set/clear variable @@ -1514,10 +1640,11 @@ $% [%eg p=riot] :: simple result [%ht p=@ud q=scab r=cred s=moth] :: http request [%it p=~] :: interrupt event + [%lq p=ship q=path r=*] :: client request [%ly p=newt q=tape] :: lifecycle event + [%ow p=cape] :: one-way reaction + [%rt p=(unit)] :: roundtrip response [%up p=@t] :: prompt response - [%oy p=ship q=@ta r=@ud s=(unit ,*)] :: incoming request - [%yo p=ship q=cape r=soap] :: request response [%wa ~] :: alarm == :: ++ goal :: app request @@ -1526,10 +1653,11 @@ [%eg p=kite] :: single request [%es p=ship q=disc r=rave] :: subscription [%ht p=(list rout)] :: http server - [%oy p=@ta] :: listen on channel - [%up p=prod] :: user prompt + [%lq p=@tas] :: listen for service + [%ow ~] :: one-way reaction + [%rt ~] :: roundtrip response + [%up p=prod] :: user prompt [%wa p=@da] :: alarm - [%yo p=ship q=@ta r=*] :: network message == :: ++ govt path :: country/postcode ++ gram ,@uw :: physical datagram @@ -1584,7 +1712,6 @@ ++ lice ,[p=ship q=buck] :: full license ++ life ,@ud :: regime number ++ lint (list rock) :: fragment array -++ link ,[p=code q=sock] :: connection ++ logo ,@uvI :: session identity ++ love $% :: http response [%ham p=manx] :: html node @@ -1592,10 +1719,6 @@ [%raw p=httr] :: raw http response == :: ++ mace (list ,[p=life q=ring]) :: private secrets -++ maki :: general change - $% [& p=nori] :: direct change - [| p=saba] :: metachange - == :: ++ mane $|(@tas [@tas @tas]) :: XML name/space ++ manx ,[t=marx c=marl] :: XML node ++ marl (list manx) :: XML node list @@ -1603,10 +1726,11 @@ ++ mart (list ,[n=mane v=tape]) :: XML attributes ++ marv ?(%da %tas %ud) :: release form ++ marx $|(@tas [n=mane a=mart]) :: XML tag +++ masu ,[p=ship q=disc r=moar s=moar] :: sync square ++ math (map ,@t (list ,@t)) :: semiparsed headers ++ meal :: payload $% [%back p=cape q=flap r=@dr] :: acknowledgment - [%bond p=life q=@ta r=@ud s=*] :: message + [%bond p=life q=path r=@ud s=*] :: message [%carp p=@ q=@ud r=@ud s=flap t=@] :: skin/inx/cnt/hash [%fore p=ship q=(unit lane) r=@] :: forwarded packet == :: @@ -1638,7 +1762,7 @@ goad :: == :: ++ nori :: repository action - $% [& p=soba] :: delta + $% [& p=(unit masu) q=soba] :: delta [| p=@tas] :: label == :: ++ octs ,[p=@ud q=@] :: octet-stream @@ -1695,12 +1819,11 @@ $% [& p=mood] :: single request [| p=moat] :: change range == :: -++ rede :: mirror - $: lim=@da :: updated to - ask=(unit ,@da) :: requested to - pal=(list disc) :: propagated to - qyx=cult :: subscriptions - dom=dome :: state +++ rede :: universal project + $: lim=@da :: complete to + qyx=cult :: subscribers + ref=(unit rind) :: external requests + dom=dome :: revision state == :: ++ riff ,[p=disc q=(unit rave)] :: request/desist ++ rill :: outbound stream @@ -1709,8 +1832,9 @@ == :: ++ rind :: request manager $: nix=@ud :: request index - bim=(map ,@ud ,[p=duct q=riff]) :: outstanding + bom=(map ,@ud ,[p=duct q=rave]) :: outstanding fod=(map duct ,@ud) :: current requests + haw=(map mood (unit)) :: simple cache == :: ++ rink :: foreign state $: hac=(map rump ,*) :: cache @@ -1726,13 +1850,12 @@ $: hun=duct :: terminal duct hez=(unit duct) :: sync duct dos=(map ,@tas ,[p=cult q=dome]) :: native projects - den=(map ,@tas dock) :: links - rid=(map ship ,[p=rind q=rink]) :: neighbors + rid=(map ship (map ,@tas rede)) :: neighbors == :: ++ rock ,@uvO :: packet ++ rout ,[p=(list host) q=path r=oryx s=path] :: http route (new) ++ rump ,[p=care q=case r=@tas s=path] :: relative path -++ saba ,[p=ship q=@tas r=moar s=(list maki)] :: patch/merge +++ saba ,[p=ship q=@tas r=moar s=(list nori)] :: patch/merge ++ safe :: domestic host $: hoy=(list ship) :: hierarchy val=wand :: private keys @@ -1780,8 +1903,8 @@ ++ slip ,[p=bell q=goal] :: traceable request ++ sled ,[p=* q=*] :: [data code] ++ snow ,[p=@ud q=@ud r=(set ,@ud)] :: window exceptions -++ soap ,[p=[p=life q=life] q=@tas r=@ud] :: statement id -++ soup ,[p=@tas q=@ud] :: new statement id +++ soap ,[p=[p=life q=life] q=path r=@ud] :: statement id +++ soup ,[p=path q=@ud] :: new statement id ++ soul :: packet in travel $: gom=soup :: message identity nux=@ud :: xmission count @@ -1789,10 +1912,11 @@ lys=@da :: last sent pac=rock :: packet data == :: -++ soba ,[p=cart q=(list ,[p=path q=miso])] :: delta +++ soba ,[p=cart q=(list tako)] :: delta ++ sock ,[p=ship q=ship] :: from to ++ spur path :: modeshipdeskcasespur ++ step ,[p=bray q=gens r=pass] :: identity stage +++ tako ,[p=path q=miso] :: change detail ++ tart _|+([@da path note] *bowl) :: process core ++ task :: $: paq=(qeu gyro) :: prompt queue diff --git a/main/bin/begin.hoon b/main/bin/begin.hoon index 67f047df3..341e6f54b 100644 --- a/main/bin/begin.hoon +++ b/main/bin/begin.hoon @@ -180,7 +180,7 @@ %+ (posh (add ~s1 now)) ~[la/leaf/"generating 2048-bit RSA key..."] |= now=@da =+ loy=(brew 2.048 bur) - %- (post bos [%ta %to] [mig tic ges pub:ex:loy]) + %- (post bos %ta [mig tic ges pub:ex:loy]) |= [now=@da rup=(unit ,*)] :_ ~ ?~ rup ~[la/leaf/"request rejected"] diff --git a/main/bin/hello.hoon b/main/bin/hello.hoon index 338e547e0..77d1377e3 100644 --- a/main/bin/hello.hoon +++ b/main/bin/hello.hoon @@ -1,4 +1,4 @@ -:: +:: :: /=main=/bin/hello/hoon :: |= * diff --git a/main/bin/hi.hoon b/main/bin/hi.hoon index 7458c9b47..344f2d1ce 100644 --- a/main/bin/hi.hoon +++ b/main/bin/hi.hoon @@ -4,18 +4,20 @@ |= * |= [bud=@p ebb=$|(~ [tex=tape ~])] ^- bowl -:- ~ +:- :~ [%sq bud %hi /request ?~(ebb '' (rap 3 tex.ebb))] + == :- ~ :- ^- (list slip) - :~ [/foo/bar [%yo bud %hi ?~(ebb '' (rap 3 tex.ebb))]] + :~ [/request [%ow ~]] + [/prompt [%up %none "waiting for {(scow %p bud)}" ~]] == |= [now=@da pax=path nut=note] -?> =(/foo/bar pax) -?> ?=(%yo -.nut) -:- ?: =(%good q.nut) +?> =(/request pax) +?> ?=(%ow -.nut) +:- ?: =(%good p.nut) ~ :_ ~ :- %ha :- %leaf - "hi: {}.{} spurned {}/{}/{}" + "hi: {(scow %p bud)} rejected a message" ~ diff --git a/main/bin/update.hoon b/main/bin/update.hoon index f7b218cb5..4cbe69c88 100644 --- a/main/bin/update.hoon +++ b/main/bin/update.hoon @@ -1,12 +1,25 @@ !: -:: /=main=/bin/update/hoon +:: /=main=/bin/install/hoon :: => .(-< `who=@p`-<) -|= * +|= [est=time eny=@uw] |= ~ +^- bowl +?: =(~zod who) [~ ~] +=+ bos==+(bos=(sein who) ?.(=(bos who) bos ~zod)) +=+ ^= syn ^- (list ,@tas) + [%main %arvo %try ~] :_ ~ -=+ bos=(sein who) -:~ [%xy /c [%pull bos %main ~[%main]]] - [%xy /c [%pull bos %spec ~[%spec]]] - [%xy /c [%pull bos %arvo ~[%arvo]]] -== +^- (list gift) +:- [%la %leaf "updating..."] +%+ turn syn +|= des=@tas +=+ der=((hard dome) .^(%cv /(scot %p bos)/[des]/=)) +=+ owr=((hard dome) .^(%cv /(scot %p who)/[des]/=)) +=+ sab=`saba`[bos des [0 let.der] (flop (turn hit.der |=(a=frog q.a)))] +=+ lum=(~(auld ze est owr) est %fine sab) +?~ lum + `gift`[%la %leaf "{(trip des)} failed to merge"] +?~ u.lum + `gift`[%la %leaf "{(trip des)} is up to date"] +`gift`[%ok des u.u.lum] diff --git a/main/lib/pony.hoon b/main/lib/pony.hoon index acf3f71f4..a33de6db3 100644 --- a/main/lib/pony.hoon +++ b/main/lib/pony.hoon @@ -38,39 +38,32 @@ (wop now) :: ++ post :: request/response - |= [him=@p [cho=@ta chu=@ta] msg=*] + |= [him=@p cav=@tas msg=*] |= woo=||([@da (unit ,*)] bowl) ^- bowl =+ leg="waiting for {(scow %p him)}" - :- ~ :- ~ + :- :~ [%sq him cav /request msg] + == + :- ~ :- ^- (list slip) - :~ [/request [%yo him cho msg]] - [/response [%oy chu]] + :~ [/request [%rt ~]] [/prompt [%up %none leg ~]] == |= [now=@da pax=path nut=note] ^- bowl - ?+ -.nut !! - %oy (woo now s.nut) - %yo - ?. =(%good q.nut) (woo now ~) - :- ~ :- ~ - :_ ..$ - ^- (list slip) - :~ [/response [%oy chu]] - [/prompt [%up %none leg ~]] - == + ?+ -.nut ~& [%bad-nut nut] !! + %rt (woo now p.nut) == :: ++ pour |= $: est=@da dyz=(list ,[p=@tas q=[p=ship q=disc r=moat]]) - wop=||([@da (map ,@tas ,[p=(unit ,@ud) q=(list frog)])] bowl) + wop=||([@da (map ,@tas ,[p=@ud q=(list frog)])] bowl) == ^- bowl ?~ dyz (wop est ~) =+ :* zyd=(~(gas by *(map ,@tas ,[p=ship q=disc r=moat])) dyz) - fyx=*(map ,@tas ,[p=(unit ,@ud) q=(list frog)]) + fyx=*(map ,@tas ,[p=@ud q=(list frog)]) == =< apex |% @@ -92,17 +85,17 @@ +>(zyd (~(del by zyd) cyt)) ?> ?=(%ud -.q.p.u.rot) =+ geb=(need (~(get by zyd) cyt)) - =+ saq=(need (~(get by fyx) cyt)) + =+ saq=(~(get by fyx) cyt) %= +>.$ zyd %+ ~(put by zyd) cyt - ?> =(+(p.p.r.geb) p.q.p.u.rot) - geb(p.r q.p.u.rot) + ?> =(p.p.r.geb p.q.p.u.rot) + geb(p.r [%ud +(p.q.p.u.rot)]) :: fyx %+ ~(put by fyx) cyt - :- ?~(p.saq [~ p.q.p.u.rot] p.saq) - [((hard frog) r.u.rot) q.saq] + :- ?~(saq p.q.p.u.rot p.u.saq) + [((hard frog) r.u.rot) ?~(saq ~ q.u.saq)] == :: ++ bite @@ -112,7 +105,8 @@ =+ fuh=(~(tap by zyd) ~) %+ turn fuh |= [a=@tas b=[p=ship q=disc r=moat]] - `slip`[[%pl a ~] %es p.b q.b [%| r.b]] + =+ bys=`slip`[[%pull a ~] %es p.b q.b [%| r.b]] + bys :: ++ done ^- bowl