From 39b72cbb5af6729114c534c69907a43a1142d0df Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Mon, 16 Jun 2014 18:33:31 -0700 Subject: [PATCH] App model 1.1 at least compiles. --- arvo/dill.hoon | 2 +- arvo/eyre.hoon | 100 ++++++++++------ arvo/ford.hoon | 12 +- arvo/gall.hoon | 310 +++++++++++++++++++++++++++++-------------------- arvo/hoon.hoon | 10 +- arvo/zuse.hoon | 2 +- 6 files changed, 269 insertions(+), 167 deletions(-) diff --git a/arvo/dill.hoon b/arvo/dill.hoon index 8449f1e257..958aa23c22 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 09549ccd28..d96dd7b81d 100644 --- a/arvo/eyre.hoon +++ b/arvo/eyre.hoon @@ -4,6 +4,7 @@ |= pit=vase => =~ |% :: interfaces +++ bead ,[p=(set beam) q=cage] :: computed result ++ chop ,[p=@ud q=@da] :: see ++ gift :: out result <-$ $% [%thou p=httr] :: raw http response @@ -41,9 +42,10 @@ ++ riff ,[p=desk q=(unit rave)] :: see %clay ++ sign :: in result $-< $% [%crud p=@tas q=(list tank)] :: by any + [%dumb p=chop] :: by %gall [%helo p=path q=prod] :: by %batz [%made p=(each bead (list tank))] :: by %ford - [%rasp p=cage] :: by %gall + [%rasp p=chop q=(unit cage)] :: by %gall [%rush p=chop q=cage] :: by %gall [%rust p=chop q=cage] :: by %gall [%talk p=tank] :: by %batz @@ -141,7 +143,7 @@ $: cnt=@ud :: updates produced toy=@ud :: updates sent wan=(map ,@ud ,@ud) :: upno to reqno - red=(map ,@ud (each cage cage)) :: ready for pickup + red=(map ,@ud (unit (each cage cage))) :: ready for pickup == :: -- :: |% @@ -279,6 +281,15 @@ ?- -.sin %crud +>.$(mow [[hen %slip %d %flog sin] mow]) + :: + %dumb + ?> ?=([%hoop @ @ @ @ ~] tea) + =+ ^= ouy + %- yolk:(gale (need (slaw %p i.t.tea)) i.t.t.tea) + (need (slaw %ud i.t.t.t.tea)) + ?~ ouy + +>.$ + abet:work:abet:dumb:(yule:u.ouy i.t.t.t.t.tea) :: %made ?. ?=([%honk @ @ @ ~] tea) @@ -293,7 +304,11 @@ (need (slaw %ud i.t.t.t.tea)) ?~ ouy +>.$ - abet:work:abet:abet:(hear:(yule:u.ouy i.t.t.t.t.tea) %& p.sin) + =+ woy=(yule:u.ouy i.t.t.t.t.tea) + =< abet =< work =< abet + ?~ q.sin + dumb:woy + (hear:woy `[%& u.q.sin]) :: ?(%rush %rust) =+ heq=?:(?=(%rust -.sin) [%& q.sin] [%| q.sin]) @@ -303,7 +318,7 @@ (need (slaw %ud i.t.t.t.tea)) ?~ ouy +>.$ - abet:work:abet:abet:(hear:(yule:u.ouy i.t.t.t.t.tea) heq) + abet:work:abet:(hear:(yule:u.ouy i.t.t.t.t.tea) `heq) :: %thou :: remote return ?> ?=([@ @ *] tea) @@ -1013,13 +1028,13 @@ ++ fapg :: dispatch %apg |= [fur=(unit term) you=@p paw=path] ^- (unit seam) - ?> ?=(^ fur) + =+ for=?^(fur u.fur %html) ?> ?=(^ paw) :- ~ :* %apg (need ((sand %tas) i.paw)) you - u.fur + for (turn t.paw |=(a=@ `@ta`(need ((sand %ta) a)))) == :: @@ -1337,13 +1352,22 @@ +>.$(..ya (hone our num ses)) +>.$ :: - ++ busc :: seam result code - |= som=seam - ^- @ud - ?.(?=(%sil -.som) 200 p.som) :: 203 means a diff + ++ bush :: error response + |= [cod=@ud msg=@t num=@ud] + ^+ +> + =+ pup=(~(get by q.rey) num) + ?~ pup +>.$ + %= +>.$ + q.rey + %+ ~(put by q.rey) num + %= u.pup + pez + `pest`[%fin %raw cod ~[content-type/'text/plain'] `(taco msg)] + == + == :: - ++ bust - |= num=@ud + ++ bust :: no-content response + |= [cod=@ud num=@ud] ^+ +> =+ pup=(~(get by q.rey) num) ?~ pup +>.$ @@ -1351,7 +1375,7 @@ %= +>.$ q.rey %+ ~(put by q.rey) num - u.pup(pez [%fin %raw 204 *mess `*octs]) + u.pup(pez [%fin %raw cod *mess `*octs]) == :: ++ inch :: function built @@ -1846,8 +1870,8 @@ |= [num=@ud app=term you=ship nap=@ud suc=term cnt=@ud] ^+ +> =+ yon=(yolk nap) - ?~ yon (bust num) - abet:abet:(hire:(yule:u.yon suc) cnt num) + ?~ yon (bust 204 num) + abet:(hire:(yule:u.yon suc) cnt num) :: ++ yokg :: main call |= [num=@ud app=term you=ship pax=path] @@ -1859,13 +1883,13 @@ |= [num=@ud app=term you=ship nap=@ud cnt=@ud jon=json] ^+ +> =+ yon=(yolk nap) - ?~ yon (bust num) + ?~ yon (bust 204 num) abet:(post:u.yon cnt num jon) :: ++ yoks :: subscribe |= [num=@ud app=term you=ship nap=@ud suc=term pax=path] =+ yon=(yolk nap) - ?~ yon (bust num) + ?~ yon (bust 204 num) abet:(scud:u.yon suc num pax) :: ++ yoku :: unsubscribe @@ -1918,18 +1942,18 @@ %post `note`[%mess [our app] you [%json !>(jon)]] ?. =(+(cnt) meg.siq) - +>.$(..yo (bust num)) - abet:(hire:(yule %post) cnt num) + +>.$(..yo (bust 204 num)) + (hire:(yule %post) cnt num) :: ++ scud :: subscribe |= [suc=term num=@ud pax=path] =. +>.$ (toss suc `note`[%show [our app] you pax]) - abet:(hire:(yule suc) 0 num) + (hire:(yule suc) 0 num) :: ++ self :: request main |= pax=path ^+ +> - abet:(hire:(yule:(toss %self [%show [our app] you pax]) %self) 0 nap) + (hire:(yule:(toss %self [%show [our app] you pax]) %self) 0 nap) :: ++ toss :: toss to gall |= [suc=term noh=note] @@ -1951,7 +1975,7 @@ ++ busk :: seam result |= $: num=@ud cnt=@ud - heq=(each cage cage) + huq=(unit (each cage cage)) == ^+ +> =+ pup=(~(get by q.rey) num) @@ -1980,19 +2004,20 @@ suc (rsh 3 2 (scot %ui +(cnt))) == + ?~ huq +>.$(..yo (bust 404 num)) %= +>.$ q.rey %+ ~(put by q.rey) num ^- pimp %= pip pez %new - vaz [%instance (trip (rsh 3 2 (scot %ui nap)))]~ + vaz [%port (trip (rsh 3 2 (scot %ui nap)))]~ sip sip som ^- seam :+ %sil - ?:(-.heq 200 203) + ?:(-.u.huq 200 203) =+ bek=`beak`[our %main [%da now]] - =+ don=`silk`[%done ~ `cage`p.heq] + =+ don=`silk`[%done ~ `cage`p.u.huq] ^- silk :^ %cast %mime bek ?~ fur.pip don @@ -2000,9 +2025,17 @@ == == :: + ++ dumb :: reset + ^+ ..yu + =+ dum=(~(tap by wan.wig) ~) + |- ^+ ..yu + ?~ dum amok + $(dum t.dum, ..yo (bust 404 q.i.dum)) + :: ++ hear :: produce - |= heq=(each cage cage) - ^+ +> + |= huq=(unit (each cage cage)) + ^+ ..yu + =< abet =+ cnt=cnt.wig =+ dul=(~(get by wan.wig) cnt) :: ~& :~ %yu-hear @@ -2012,13 +2045,14 @@ :: == =: cnt.wig +(cnt.wig) wan.wig ?~(dul wan.wig (~(del by wan.wig) cnt.wig)) - red.wig (~(put by red.wig) cnt.wig heq) + red.wig (~(put by red.wig) cnt.wig huq) == - ?~(dul +>.$ (busk u.dul cnt heq)) + ?~(dul +>.$ (busk u.dul cnt huq)) :: ++ hire :: consume |= [cnt=@ud num=@ud] - ^+ +> + ^+ ..yu + =< abet :: ~& :~ %yu-hire :: [%instance nap] :: [%produced cnt.wig] @@ -2028,16 +2062,16 @@ :: == ?: |((lth +(cnt) toy.wig) (gth cnt toy.wig)) ~& [%hire-improper [%request cnt] [%dispatched toy.wig]] - +>.$(..yo (bust num)) + +>.$(..yo (bust 204 num)) ?: (gte cnt cnt.wig) :: ~& %hire-wait =+ old=(~(get by wan.wig) cnt) =. wan.wig (~(put by wan.wig) cnt num) - +>.$(..yo ?~(old ..yo (bust u.old))) + +>.$(..yo ?~(old ..yo (bust 204 u.old))) =+ rud=(~(get by red.wig) cnt) ?~ rud :: ~& %hire-bust - +>.$(..yo (bust num)) + +>.$(..yo (bust 204 num)) :: ~& %hire-send (busk num cnt u.rud) -- diff --git a/arvo/ford.hoon b/arvo/ford.hoon index 0c8edabe63..4b3db3bcac 100644 --- a/arvo/ford.hoon +++ b/arvo/ford.hoon @@ -5,6 +5,7 @@ => =~ :: structures |% +++ bead ,[p=(set beam) q=cage] :: computed result ++ gift :: out result <-$ $% [%made p=(each bead (list tank))] :: computed result == :: @@ -591,9 +592,14 @@ (fine cof [p.kas vax]) :: %done [cof %0 p.kas q.kas] - %dune - ?~ q.kas (flaw cof [%leaf "not ready"]~) - [cof %0 p.kas u.q.kas] + %dude + =+ dog=$(kas q.kas) + ?. ?=(%2 -.q.dog) dog + dog(p.q [p.kas p.q.dog]) + :: + %dune + ?~ q.kas [cof [%2 [%leaf "no data"]~]] + $(kas [%done p.kas u.q.kas]) :: %mute (kale cof p.kas q.kas) %pass diff --git a/arvo/gall.hoon b/arvo/gall.hoon index f26f7f3a9d..fa4a9b8154 100644 --- a/arvo/gall.hoon +++ b/arvo/gall.hoon @@ -8,17 +8,17 @@ $: %0 :: state version pol=(map ship mast) :: apps by ship == :: +++ bead ,[p=(set beam) q=cage] :: computed result ++ bone ,@ud :: opaque duct ++ chop ,[p=@ud q=@da] :: revision/date ++ gift :: out result <-$ $% [%back p=?] :: %mess ack good/bad - [%crud p=@tas q=(list tank)] :: error - [%rasp p=cage] :: reaction message - [%rump p=chop] :: updates stop + [%crud p=@tas q=(list tank)] :: physical error + [%dumb p=chop] :: close duct + [%rasp p=chop q=(unit cage)] :: reaction message [%rush p=chop q=cage] :: difference [%rust p=chop q=cage] :: full update [%meta p=vase] :: meta-gift - == :: ++ hasp ,[p=ship q=term] :: app identity ++ kiss :: in request ->$ @@ -29,8 +29,9 @@ [%nuke p=hasp] :: clear duct == :: ++ knob :: pending action - $% [%boot ~] :: boot/reboot + $% [%boot ~] :: begin boot [%crud p=@tas q=(list tank)] :: error + [%load p=cage] :: continue boot [%mess p=ship q=cage] :: message [%show p=ship q=path] :: subscribe [%nuke ~] :: clear duct @@ -60,12 +61,15 @@ ++ seat :: the living app $: huv=(unit vase) :: application vase qic=(unit toil) :: current project - oot=(map duct (set path)) :: live fords + onz=(unit (pair duct path)) :: live fords vey=(qeu toil) :: pending projects nuc=(set duct) :: nuked ducts tik=@ud :: build number + act=@ud :: action number + lat=@da :: last change orm=(unit ,@da) :: build date sup=(map bone (pair ship path)) :: subscribers + peq=(map (pair ship path) ,@uvI) :: peeks ped=(set (pair ship desk)) :: active depends zam=scar :: opaque ducts == :: @@ -345,7 +349,7 @@ ^- silk [%done ~ cay] :: - ++ deal :: advance tick + ++ deal :: reboot ^+ . =. tik.sat +(tik.sat) =+ pys=(~(tap by sup.sat) ~) @@ -371,7 +375,7 @@ |=(a=(pair ship desk) (~(has in ped.sat) a)) |= a=(pair ship desk) :- hun.mat - :^ %toss %c (away %s %drug (scot %p p.a) q.a ~) + :^ %toss %c (away %w %drug (scot %p p.a) q.a ~) [%warp [our p.a] q.a ~ %| [%da now] [%da (add now ~d1000)]] =+ ^= old ^- (list move) %+ turn @@ -379,7 +383,7 @@ |=(a=(pair ship desk) (~(has in pen) a)) |= a=(pair ship desk) :- hun.mat - :^ %toss %c (away %s %drug (scot %p p.a) q.a ~) + :^ %toss %c (away %w %drug (scot %p p.a) q.a ~) [%warp [our p.a] q.a ~] %_(+>.$ ped.sat pen, mow :(weld new old mow)) :: @@ -398,29 +402,16 @@ :: ++ ford :: exec to ford |= [pax=path kas=silk] - (gawk %f [%s pax] [%exec our `kas]) - :: - ++ gawk :: toss a note - |= [lal=term pax=path noy=note] ^+ +> %_ +> - mow [[hen %toss lal (away pax) noy] mow] - oot.sat =+ vut=(~(get by oot.sat) hen) - =+ vit=?^(vut u.vut *(set path)) - ?< (~(has in vit) pax) - (~(put by oot.sat) hen (~(put in vit) pax)) + mow :_(mow [hen %toss %f (away pax) [%exec our `kas]]) + onz.sat `[hen pax] == :: ++ give :: give a gift |= gip=gift %_(+> mow [[hen %give gip] mow]) :: - ++ gone %_(. qic.sat ~) :: done work - ++ game :: invoke core - |= [[arm=term pax=path] vax=vase sam=vase] - %+ ford pax - [%call (harm arm (conf (core vax))) (cove %$ sam)] - :: ++ harm :: arm as silk |= [arm=term kas=silk] ^- silk @@ -431,23 +422,103 @@ :+ %boil %core [[our %main [%da now]] app %app ~] :: + ++ mack :: unpack stateful + |= qin=sign + ?> ?=(%made -.qin) + ^- [(unit (list tank)) _+>] + ?- -.p.qin + & :- ~ + %- obey:(morn (slot 3 q.q.p.p.qin)) + (slot 2 q.q.p.p.qin) + | [`p.p.qin (give %crud %made p.p.qin)] + == + :: + ++ mick :: unpack depends + |= qin=sign + ?> ?=(%made -.qin) + ^- [(unit (set beam)) _+>] + ?- -.p.qin + & :- `p.p.p.qin + %- obey:(morn (slot 3 q.q.p.p.qin)) + (slot 2 q.q.p.p.qin) + | [~ (give %crud %made p.p.qin)] + == + :: + ++ mike :: unpack simple + |= qin=sign + ^- [(unit cage) _+>] + ?> ?=(%made -.qin) + ?- -.p.qin + & =+ vax=`vase`q.q.p.p.qin + ?. &(?=(^ q.vax) ?=(@ -.q.vax)) + [~ (give %crud %mike *(list tank))] + :- `[((hard logo) -.q.vax) (slot 3 vax)] + +>.$ + | [~ (give %crud %made p.p.qin)] + == + :: ++ more :: accept result |= $: pax=path :: internal position hin=(hypo sign) :: typed event == ^+ +> - :: ~& [%more pax -.q.hin] - =. oot.sat - ?: ?=([%s %drug *] pax) oot.sat - =+ vut=(~(get by oot.sat) hen) - ?~ vut - ~& [%more-lost-a our app hen] !! - ?. (~(has in u.vut) pax) - ~& [%more-lost our app hen pax] !! - ?: =(~ u.vut) - (~(del by oot.sat) hen) - (~(put by oot.sat) hen (~(del in u.vut) pax)) - ?: ?=([%u *] pax) + ~& [%more-pax pax] + ?+ -.pax !! + %s :: core operation + ?> ?& ?=([@ @ *] t.pax) + !=(~ qic.sat) + =(`[hen pax] onz.sat) + == + =+ you=(need (slaw %p i.t.t.pax)) + =: onz.sat ~ + qic.sat ~ + == + ?+ i.t.pax !! + %park + =^ gyd +>.$ (mike q.hin) + ?~ gyd + ~& %park-lost + +>.$ + ~& %park-load + (quem %load u.gyd) + :: + %peek + =^ gyd +>.$ (mike q.hin) + ?~ gyd + (give [%dumb [tik.sat lat.sat]]) + =+ kee=[you t.t.t.pax] + =+ ash=(sham q.q.u.gyd) + ?: =(`ash (~(get by peq.sat) kee)) + +>.$ + %- %= give + peq.sat (~(put by peq.sat) kee ash) + sup.sat (~(put by sup.sat) ost kee) + == + [%rust [tik.sat lat.sat] u.gyd] + :: + %peer + =^ gud +>.$ (mack q.hin) + ?^ gud + (give [%dumb [tik.sat lat.sat]]) + +>.$(sup.sat (~(put by sup.sat) ost [you t.t.t.pax])) + :: + %poke + =^ gud +>.$ (mack q.hin) + ?^ gud (give %rasp [tik.sat lat.sat] ~) + +>.$ + :: + %prep + =^ gad +>.$ (mick q.hin) + ?~ gad (drum ~) + deal:(drum u.gad) + :: + %pull + =^ gud +>.$ (mack q.hin) + ?^ gud +>.$ + +>.$(sup.sat (~(del by sup.sat) ost)) + == + :: + %u :: user request ?. ?=(%ruse -.q.hin) ~& [%more-card -.q.hin pax] !! %_ +>.$ @@ -455,21 +526,11 @@ %- ~(put to vey.sat) [hen [%take t.pax (spec (slot 3 hin))]] == - ?> ?=([%s @ *] pax) - ?+ i.t.pax !! - %boot - ?> ?=([~ * %boot ~] qic.sat) - ?> ?=(%made -.q.hin) - ?- -.p.q.hin - & ~& [%boot-good our app tik.sat] - deal:(drum:(morn:gone q.q.p.p.q.hin) p.p.p.q.hin) - | ~& [%boot-lost our app tik.sat] - (drum:(mort:gone p.p.q.hin) ~) - == :: - %drug - ?> ?=(%writ -.q.hin) - ?> ?=([@ @ ~] t.t.pax) + %w :: autoboot + ?> ?& ?=([%drug @ @ ~] t.pax) + ?=(%writ -.q.hin) + == =+ :* our=(need (slaw %p i.t.t.pax)) syd=(need ((sand %tas) i.t.t.t.pax)) == @@ -477,66 +538,43 @@ ?~ p.q.hin +>.$ +>.$(vey.sat (~(put to vey.sat) hen %boot ~)) - :: - %step - ?> ?=(%made -.q.hin) - ?- -.p.q.hin - & :: ~& %step-good - %- obey:(morn:gone (slot 3 q.q.p.p.q.hin)) - (slot 2 q.q.p.p.q.hin) - | :: ~& %step-fail - (give %crud %made p.p.q.hin) - == - :: - %show - ?> ?=(%made -.q.hin) - ?> ?=([@ *] t.t.pax) - =+ you=(need (slaw %p i.t.t.pax)) - ?- -.p.q.hin - & =. sup.sat (~(put by sup.sat) ost you t.t.t.pax) - %- obey:(morn:gone (slot 3 q.q.p.p.q.hin)) - (slot 2 q.q.p.p.q.hin) - | :: ~& %step-fail - (give %crud %made p.p.q.hin) - == == :: - ++ morn :: successful boot + ++ morn :: install core |= vax=vase ^+ +> - %_(+> huv.sat `vax) + =+ new=?~(huv.sat & !=(+>+.q.vax +>+.q.u.huv.sat)) + =. huv.sat `vax + ?. new +>.$ + =: act.sat +(act.sat) + lat.sat now + == + =+ pex=(~(tap by peq.sat) ~) + |- ^+ +>.^$ + ?~ pex +>.^$ + ~& [%morn-peek p.i.pex] + $(pex t.pex, +>.^$ (quem [%show p.i.pex])) :: ++ mort :: failed boot |= tan=(list tank) (give %crud %boot-lost tan) :: ++ nile [%done ~ [%$ [%cube 0 [%atom %n]] ~]] :: null silk - ++ obey :: process result + ++ obey :: process app moves |= vax=vase %_(+> mow (weld (flop (said vax)) mow)) :: ++ quem :: queue action |= kon=knob :: content ^+ +> - ?. ?=(%nuke -.kon) - +>.$(vey.sat (~(put to vey.sat) hen kon)) - ?: (~(has in nuc.sat) hen) - ~& [%quem-renuke hen] - +>.$ - =+ vut=(~(get by oot.sat) hen) - =+ ^= ded ^- (list path) - ?~(vut ~ (~(tap by u.vut) ~)) - |- ^+ +>.^$ - ?~ ded - %= +>.^$ - qic.sat ?.(&(?=(^ qic.sat) =(hen p.u.qic.sat)) qic.sat ~) - nuc.sat (~(put in nuc.sat) hen) - vey.sat (~(put to vey.sat) hen kon) - == - %= $ - ded t.ded - mow [[hen [%toss %f (away i.ded) [%exec our ~]]] mow] - == + =. +> ?. ?=(%nuke -.kon) +> + ?. &(?=(^ onz.sat) =(hen p.u.onz.sat)) +> + %= +> + onz.sat ~ + mow + :_(mow [hen %toss %f (away q.u.onz.sat) [%exec our ~]]) + == + +>.$(vey.sat (~(put to vey.sat) hen kon)) :: ++ said |= vud=vase @@ -555,8 +593,11 @@ |= vig=vase ^- gift ?+ q.vig [%meta vig] + [%dumb *] [%dumb [tik.sat lat.sat]] [%rasp *] :+ %rasp + [tik.sat lat.sat] + :+ ~ ((hard lode) +<.q.vig) (slot 7 vig) :: @@ -587,13 +628,14 @@ :: [%give p=[p=@tas q=*]] [%give (sumo (spec (slot 3 caq)))] - :: - [%slip p=@tas q=[p=@tas q=*]] - :+ %slip - (need ((sand %tas) ((hard ,@) p.q.caq))) - [%meta (spec (slot 7 caq))] == :: + ++ warm :: vase has arm + |= cog=@tas + ^- ? + ?~ huv.sat | + !=(~ q:(~(fino ut p.u.huv.sat) 0 %free cog)) + :: ++ work :: eat queue |- ^+ + ?: |(?=(^ qic.sat) =(~ vey.sat)) +.$ :: nothing to do @@ -601,51 +643,69 @@ ?: (~(has in nuc.sat) p.yev) $ work:(yawn:(bing p.yev) q.yev) :: + ++ yawl :: invoke core + |= [[arm=term pax=path] vax=vase sam=vase] + ^+ +> + %+ ford [%s arm pax] + [%call (harm arm (conf (core vax))) (cove %$ sam)] + :: ++ yawn :: start event |= kon=knob ^+ +> - :: ~& [%gall-yawn ost -.kon] + ~& [%gall-yawn ost -.kon] =. qic.sat `[hen kon] ?- -.kon %boot =. orm.sat `now - %+ ford /boot + %+ ford /s/park ^- silk - :+ %call - (harm %prep (conf home)) - ?~ huv.sat - nile - [nile (harm %save (conf (core u.huv.sat)))] + :- home + ?~ huv.sat nile + ?: =(~ q.u.huv.sat) nile + :- nile + ?. (warm %park) + [%done ~ %$ (slot 13 u.huv.sat)] + (harm %park (conf (core u.huv.sat))) + :: + %load + =+ [hom=(slot 2 q.p.kon) old=(slot 3 q.p.kon)] + %+ ford /s/prep + ?. (warm(huv.sat `hom) %prep) + :- nile + :+ %mute `silk`(core hom) + :~ [[%$ 12]~ (cove p.kon)] + == + [%call (harm %prep (conf (core hom))) [nile (cave old)]] :: %crud - ?~ huv.sat - ~& [%crud-none our app] - gone:(give %crud p.kon q.kon) - %^ game [%pain /step] u.huv.sat - !>([ost use p.kon]) + (give(qic.sat ~) %crud p.kon q.kon) :: %nuke - :: ~& %yawn-nuke - gone :: send unsubscribe + ?. (warm %pull) + +>.$(qic.sat ~) + ?> ?=(^ huv.sat) + (yawl [%pull ~] u.huv.sat [[%atom %ud] ost]) :: %mess - ?~ huv.sat - ~& [%mess-none our app] - gone:(give %back |) - %^ game [%poke /step] u.huv.sat + ?. (warm %poke) + (give(qic.sat ~) %rasp [tik.sat lat.sat] ~) + ?> ?=(^ huv.sat) + %^ yawl [%poke ~] u.huv.sat :(slop [[%atom %ud] ost] [[%atom %p] p.kon] q.q.kon) :: %show - ?~ huv.sat - ~& [%show-none our app] - gone - %^ game [%peer [%show (scot %p p.kon) q.kon]] u.huv.sat - !>([ost p.kon q.kon]) + =+ sam=!>([ost p.kon q.kon]) + ?: (warm %peer) + ?> ?=(^ huv.sat) + =. peq.sat (~(del by peq.sat) p.kon q.kon) + (yawl [%peer (scot %p p.kon) q.kon] u.huv.sat sam) + ?: (warm %peek) + ?> ?=(^ huv.sat) + (yawl [%peek (scot %p p.kon) q.kon] u.huv.sat sam) + (give(qic.sat ~) %dumb [tik.sat lat.sat]) :: %take - ?> ?=(^ huv.sat) - %^ game [%peck /step] u.huv.sat - :(slop [[%atom %ud] ost] !>((ride use say)) !>(p.kon) q.kon) + !! == -- -- diff --git a/arvo/hoon.hoon b/arvo/hoon.hoon index e156a0123b..0c05372052 100644 --- a/arvo/hoon.hoon +++ b/arvo/hoon.hoon @@ -100,6 +100,7 @@ ++ mart (list ,[n=mane v=tape]) :: XML attributes ++ marx $|(@tas [n=mane a=mart]) :: XML tag ++ metl ?(%gold %iron %zinc %lead) :: core variance +++ noun ,* ++ null ,~ :: null, nil, etc ++ odor ,@ta :: atom format ++ tarp ,[d=@ud h=@ud m=@ud s=@ud f=(list ,@ux)] :: parsed time @@ -9202,12 +9203,13 @@ ++ glob ,[p=logo q=ship r=mark] :: global brand ++ herd (hypo curd) :: typed card ++ hide :: standard app state - $: own=[p=ship q=@tas] :: static identity + $: $: our=ship :: owner/operator + app=@tas :: app identity + == :: sup=(map bone (pair ship path)) :: subscription set - $= seq :: dynamic sequence $: tik=@ud :: boot number - num=@ud :: action number - eny=@ :: entropy + act=@ud :: action number + eny=@uvI :: entropy lat=@da :: date of last tick == == :: ++ hilt ?(0 1 2) :: lead iron gold diff --git a/arvo/zuse.hoon b/arvo/zuse.hoon index 654fc9c1e7..bdeb39b42c 100644 --- a/arvo/zuse.hoon +++ b/arvo/zuse.hoon @@ -2023,7 +2023,6 @@ raz=(map path race) :: statements inbound ryl=(map path rill) :: statements outbound == :: -++ bead ,[p=(set beam) q=cage] :: computed result ++ beam ,[[p=ship q=desk r=case] s=path] :: global name ++ beak ,[p=ship q=desk r=case] :: garnish with beak ++ bird :: packet in travel @@ -2410,6 +2409,7 @@ [%call p=silk q=silk] :: slam [%cast p=logo q=beak r=silk] :: translate [%done p=(set beam) q=cage] :: literal + [%dude p=tank q=silk] :: error wrap [%dune p=(set beam) q=(unit cage)] :: unit literal [%mute p=silk q=(list (pair wing silk))] :: mutant [%pass p=silk q=sill] :: twig construction