diff --git a/arvo/ames.hoon b/arvo/ames.hoon index 6bbf0cdad..1fdd4ffb3 100644 --- a/arvo/ames.hoon +++ b/arvo/ames.hoon @@ -1,4 +1,4 @@ -!: +:: :: ames (4a), networking :: |= pit=vase diff --git a/arvo/clay.hoon b/arvo/clay.hoon index 1db34dd15..1408b386c 100644 --- a/arvo/clay.hoon +++ b/arvo/clay.hoon @@ -1,4 +1,4 @@ -!: +:: :: clay (4c), revision control :: |= pit=vase diff --git a/arvo/eyre.hoon b/arvo/eyre.hoon index 10b34943a..1bffc94dd 100644 --- a/arvo/eyre.hoon +++ b/arvo/eyre.hoon @@ -1,13 +1,16 @@ -:: :: %eyre, http servant +!: :: %eyre, http servant !? 164 :::: |= pit=vase => =~ -|% :: metastructures +|% :: interfaces +++ chop ,[p=@ud q=@da] :: see ++ gift :: out result <-$ $% [%thou p=httr] :: raw http response [%thus p=@ud q=(unit hiss)] :: http request/cancel == :: +++ hasp ,[p=ship q=term] :: see %gall +++ hope (pair ,? path) :: see %gall ++ kiss :: in request ->$ $% [%born ~] :: new unix process [%crud p=@tas q=(list tank)] :: XX rethink @@ -25,18 +28,19 @@ [%flog p=[%crud p=@tas q=(list tank)]] :: to %dill [%line p=@t] :: to %batz [%ling ~] :: to %batz - [%shah p=hasp q=(unit hope)] :: to %gall + [%show p=hasp q=(unit hope)] :: to %gall [%this p=? q=clip r=httq] :: to %eyre [%thud ~] :: to %eyre + [%wait p=hasp q=@ud] :: to %gall [%want p=sock q=path r=*] :: to %ames [%warp p=sock q=riff] :: to %clay == :: ++ sign :: in result $-< - $% [%crud p=@tas q=(list tank)] :: by any + $% [%boot p=@ud] :: by %gall + [%crud p=@tas q=(list tank)] :: by any [%helo p=path q=prod] :: by %batz - [%made p=(each beet (list tank))] :: by %ford - :: [%rush p=@da q=json] :: by %gall - [%rust p=@da q=cage] :: by %gall + [%made p=(each bead (list tank))] :: by %ford + [%rust p=chop q=cage] :: by %gall [%talk p=tank] :: by %batz [%tell p=(list ,@t)] :: by %batz [%text p=tape] :: by %batz @@ -47,7 +51,7 @@ [%writ p=riot] :: by %clay == -- -|% :: structures +|% :: models ++ bolo :: eyre state $: %0 :: version gub=@t :: random identity @@ -83,7 +87,7 @@ == :: $% [%err p=@ud q=(list tank)] :: error report [%fin p=love] :: ready to send - [%fud p=(each beet (list tank))] :: function finished + [%fud p=(each bead (list tank))] :: function finished [%haz p=riot] :: clay responded [%raw p=hiss] :: wild url [%who p=@tas q=@ta] :: awaiting auth @@ -93,12 +97,28 @@ hen=duct :: event trace som=seam :: logical request pez=pest :: request state + sip=(list manx) :: scripts in result == :: ++ rote :: remote server $: cnt=@ud :: number served sor=@p :: home sponsor rem=[p=@ud q=(map ,@ud duct)] :: active requests == :: +++ seam :: logical request + $% [%ape p=term q=@ud] :: await update + [%apg p=term q=logo r=path] :: app get + [%apl p=term q=@ud r=term] :: app poll + [%apm p=term q=json] :: app message + [%aps p=term q=term r=(unit path)] :: app subscribe + [%apu p=term q=logo r=octs] :: app upload + [%cog p=@ud q=@ud] :: console get + [%con p=@ud] :: console face + [%cop p=@ud q=@ud r=json] :: console put + [%det p=desk q=moat] :: load changes + [%fun p=term q=tube r=(list manx)] :: functional + [%lon p=seal] :: authentication flow + [%red p=purl] :: redirect + == :: ++ serf :: local server $: pef=@t :: server prefix wup=(map hole cyst) :: secure sessions @@ -211,6 +231,11 @@ |= [tea=wire sin=sign] ^+ +> ?- -.sin + %boot + ?> ?=([%hova @ @ @ ~] tea) + %- goja + [(need (slaw %p i.t.tea)) i.t.t.tea (need (slaw %ud i.t.t.t.tea)) +.sin] + :: %crud +>.$(mow [[hen %slip %d %flog sin] mow]) :: @@ -344,7 +369,7 @@ [sas ~[content-type/'text/plain'] [~ (tact str)]] :: ++ galt - |= [our=ship ses=hole num=@ud mez=(each beet (list tank))] + |= [our=ship ses=hole num=@ud mez=(each bead (list tank))] ^+ +> =+ suf=(~(get by own) our) ?~ suf +>.$ @@ -360,13 +385,21 @@ ?~ cuz +>.$ abet:work:(~(dodo ya [our ses] u.suf u.cuz) num sin) :: - ++ gojo :: app result - |= [our=ship ses=hole num=@ud wen=@da cay=cage] + ++ goja :: app result + |= [our=ship ses=hole num=@ud tik=@ud] =+ suf=(~(get by own) our) ?~ suf +>.$ =+ cuz=(~(get by wup.u.suf) ses) ?~ cuz +>.$ - abet:work:(~(dojo ya [our ses] u.suf u.cuz) num wen cay) + abet:work:(~(doja ya [our ses] u.suf u.cuz) num tik) + :: + ++ gojo :: app result + |= [our=ship ses=hole num=@ud cup=chop cay=cage] + =+ suf=(~(get by own) our) + ?~ suf +>.$ + =+ cuz=(~(get by wup.u.suf) ses) + ?~ cuz +>.$ + abet:work:(~(dojo ya [our ses] u.suf u.cuz) num cup cay) :: ++ gosh :: receive %pr response |= [him=ship num=@ud har=httr] @@ -481,6 +514,16 @@ [%want [sor.rot him] [%q %pr %e %hork mun ~] ~] == :: + ++ hova :: app wait + |= [our=ship num=@ud ses=hole app=term tik=@ud] + %_ +> + mow + :_ mow + :^ hen %toss %g + :- [%hova (scot %p our) ses (scot %ud num) ~] + [%wait [our app] tik] + == + :: ++ hove :: app peek |= [our=ship num=@ud ses=hole app=term pax=path] %_ +> @@ -488,7 +531,7 @@ :_ mow :^ hen %toss %g :- [%hove (scot %p our) ses (scot %ud num) ~] - [%shah [our app] `[%| pax]] + [%show [our app] `[%| pax]] == :: ++ hork :: remote request @@ -879,18 +922,41 @@ ?~(yov +>.$ (dove ~[%a (jone ono.cal) (jone ino.cal) jon] yov)) :: ++ dojo :: app view - |= [num=@ud wen=@da cay=cage] + |= [num=@ud cup=chop cay=cage] ^+ +> =+ pup=(~(get by q.rey) num) ?~ pup ~&([%dojo-lost ses num] +>.$) - ~& [%dojo num wen] ?> ?=(%way pez.u.pup) ?> ?=(%apg -.som.u.pup) + =. q.rey + %+ ~(put by q.rey) + num + %= u.pup + sip + :_ sip.u.pup + %- dute + ^- path + :~ (rsh 3 1 (scot %p our)) + %gez + p.som.u.pup + (scot %ud +(p.cup)) + == + == =+ bek=`beak`[our %main [%da now]] =+ kas=`silk`[%cast %mime bek [%cast q.som.u.pup bek [%done ~ cay]]] +>.$(..ya (honk our num ses kas)) :: - ++ iota :: change response + ++ doja :: app reboot + |= [num=@ud tik=@ud] + ^+ +> + =+ pup=(~(get by q.rey) num) + ?~ pup + ~& [%doja-lost ses num tik] + +>.$ + ?> ?=(%way pez.u.pup) + +>.$(q.rey (~(put by q.rey) num u.pup(pez [%fin %mid /text/plain *octs]))) + :: + ++ iota :: fun change response |= [num=@ud rot=riot] ^+ +> =+ pup=(~(get by q.rey) num) @@ -911,6 +977,41 @@ ?> ?=(%way pez.u.pup) $(yov t.yov, q.rey (~(put by q.rey) i.yov u.pup(pez noz))) :: + ++ dute :: reload script + |= pax=path + =- =+ cal=:/("path=\"{}\"") + [-.sac [cal +.sac]] + ^= sac + ;script + ; + ; tries = 0; + ; call = function() { + ; xhr = new XMLHttpRequest(); + ; xhr.open('GET', path, true); + ; xhr.addEventListener('load', function() { + ; if(this.status !== 200) { + ; return keep(); + ; } + ; document.location.reload(); + ; }); + ; xhr.addEventListener('error', keep); + ; xhr.addEventListener('abort', keep); + ; xhr.send(); + ; } + ; keep = function() { + ; setTimeout(call,1000*tries); + ; tries++; + ; } + ; call(); + == + :: + ++ fape + |= [fur=(unit term) paw=path] + ^- (unit seam) + ?> ?=(~ fur) + ?> ?=([@ @ ~] paw) + `[%ape i.paw (need (slaw %ud i.t.paw))] + :: ++ fapp :: dispatch app |= [fur=(unit term) paw=path] ^- (unit seam) @@ -1126,10 +1227,11 @@ ?= $? %p :: application %c :: console %f :: functional - %v :: version + %v :: functional version %l :: local login %m :: remote login %n :: now + %z :: app version == tri :: @@ -1149,6 +1251,7 @@ %c (flub paw ~) %l (fool r.pul) %p (fapp p.q.pul paw) + %z (fape p.q.pul paw) == :: %p @@ -1176,9 +1279,8 @@ +>.$ :: ++ inch :: function built - |= [num=@ud mez=(each beet (list tank))] + |= [num=@ud mez=(each bead (list tank))] ^+ +> - ~& [%inch num -.mez] =+ pup=(~(get by q.rey) num) ?~ pup ~& [%inch-lost ses num mez] @@ -1200,6 +1302,7 @@ hen *seam `pest`[%raw pul moh] + ~ == == :: @@ -1238,9 +1341,11 @@ %way [[~ pip] +>.$] %new ?- -.som.pip - %ape !! + %ape + :- [~ pip(pez %way)] + +>.$(..ya (hova our num ses p.som.pip q.som.pip)) + :: %apg :: simple get - ~& [%wink-apg p.som.pip r.som.pip] :- [~ pip(pez %way)] +>.$(..ya (hove our num ses p.som.pip r.som.pip)) :: @@ -1517,7 +1622,7 @@ :: %fun :- [~ pip(pez %way)] - =+ bem=`bead`(need (tome q.som.pip)) + =+ bem=`beam`(need (tome q.som.pip)) =+ bek=`beak`[p.bem q.bem r.bem] =+ kas=`silk`[%cast %mime bek `silk`[%boil p.som.pip bem]] +>.$(..ya (honk our num ses kas)) @@ -1587,9 +1692,10 @@ [~ pip(pez [%fin %wan 'Hello, world' ~])] :: [%fud *] - =+ ^= mog - ?: ?=(%fun -.som.pip) r.som.pip - ~ + =+ ^= mog ^- (list manx) + ?: ?=(%fun -.som.pip) + (weld r.som.pip sip.pip) + sip.pip :_ +>.$ :- ~ %= pip diff --git a/arvo/ford.hoon b/arvo/ford.hoon index fbbd0ff19..1d8e010b2 100644 --- a/arvo/ford.hoon +++ b/arvo/ford.hoon @@ -6,7 +6,7 @@ :: structures |% ++ gift :: out result <-$ - $% [%made p=(each beet (list tank))] :: computed result + $% [%made p=(each bead (list tank))] :: computed result == :: ++ kiss :: in request ->$ $% [%exec p=@p q=(unit silk)] :: make / kill @@ -33,8 +33,8 @@ |* a=$+(* *) :: product clam $: p=cafe :: cache $= q :: - $% [%0 p=(set bead) q=a] :: depends/product - [%1 p=(set ,[p=bead q=(list tank)])] :: blocks + $% [%0 p=(set beam) q=a] :: depends/product + [%1 p=(set ,[p=beam q=(list tank)])] :: blocks [%2 p=(list tank)] :: error == :: == :: @@ -50,7 +50,7 @@ :: :: ++ calm :: cache metadata $: laz=@da :: last accessed - dep=(set bead) :: dependencies + dep=(set beam) :: dependencies == :: ++ calx :: concrete cache line $% [%comp p=calm q=cage r=twig] :: compile by text @@ -59,7 +59,7 @@ ++ task :: problem in progress $: nah=duct :: cause kas=silk :: problem - kig=[p=@ud q=(map ,@ud bead)] :: blocks + kig=[p=@ud q=(map ,@ud beam)] :: blocks == :: -- :: |% :: @@ -100,7 +100,7 @@ == :: ++ fine |* [a=cafe b=*] :: bolt from data - [p=`cafe`a q=[%0 p=*(set bead) q=b]] :: + [p=`cafe`a q=[%0 p=*(set beam) q=b]] :: ++ flaw |=([a=cafe b=(list tank)] [p=a q=[%2 p=b]]) :: bolt from error :: ++ grom :: merge sets @@ -167,7 +167,7 @@ == ++ camo :: stop requests ^+ . - =+ kiz=(~(tap by q.kig) *(list ,[p=@ud q=bead])) + =+ kiz=(~(tap by q.kig) *(list ,[p=@ud q=beam])) |- ^+ +> ?~ kiz +> %= $ @@ -180,7 +180,7 @@ == :: ++ camp :: request a file - |= [ren=care bem=bead] + |= [ren=care bem=beam] ^+ +> =+ tik=(scot %ud p.kig) =: p.kig +(p.kig) @@ -260,13 +260,13 @@ ^= q ?- -.ton %2 [%2 p=p.ton] - %0 [%0 p=*(set bead) q=(fun p.ton)] + %0 [%0 p=*(set beam) q=(fun p.ton)] %1 =- ?- faw - & [%1 p=(turn p.faw |=(a=bead [a *(list tank)]))] + & [%1 p=(turn p.faw |=(a=beam [a *(list tank)]))] | [%2 p=p.faw] == ^= faw - |- ^- (each (list bead) (list tank)) + |- ^- (each (list beam) (list tank)) ?~ p.ton [%& ~] =+ nex=$(p.ton t.p.ton) =+ pax=(path i.p.ton) @@ -297,13 +297,12 @@ =< abet |- ^+ ..exec ?~ zuk ..exec - =+ foo=`_..exec`(camp %x `bead`p.i.zuk) + =+ foo=`_..exec`(camp %x `beam`p.i.zuk) $(zuk t.zuk, ..exec foo) == :: ++ expo :: return gift |= gef=gift - ~& [%expo -.gef] %_(+> mow :_(mow [hen %give gef])) :: ++ fade :: compile @@ -363,7 +362,7 @@ (fine cof p.cay vax) :: ++ krab :: load to twig - |= [cof=cafe for=logo how=logo rem=spur bem=bead] + |= [cof=cafe for=logo how=logo rem=spur bem=beam] ^- (bolt vase) %+ cope (fade cof %bake how bem) |= [cof=cafe gen=twig] @@ -372,7 +371,7 @@ (maul cof gat !>([`beak`[p.bem q.bem r.bem] for +:s.bem rem])) :: ++ lace :: load and check - |= [cof=cafe for=logo rem=spur bem=bead] + |= [cof=cafe for=logo rem=spur bem=beam] ^- (bolt (unit vase)) =+ bek=`beak`[p.bem q.bem r.bem] %+ cope (lend cof bem) @@ -407,7 +406,7 @@ (fine cof ~ pro) :: ++ lair :: metaload - |= [for=logo bem=bead] + |= [for=logo bem=beam] |= [cof=cafe vax=vase] ^- (bolt vase) ?. (~(nest ut -:!>(*silk)) | p.vax) @@ -423,14 +422,14 @@ |=(ref=type ref) :: ++ lend :: load arch - |= [cof=cafe bem=bead] + |= [cof=cafe bem=beam] ^- (bolt arch) =+ von=(ska %cy (tope bem)) ?~ von [p=cof q=[%1 [bem ~] ~ ~]] (fine cof ((hard arch) (need u.von))) :: ++ liar :: load vase - |= [cof=cafe bem=bead] + |= [cof=cafe bem=beam] ^- (bolt vase) =+ von=(ska %cx (tope bem)) ?~ von @@ -450,7 +449,7 @@ (fine cof ?.(=(%hoon for) all [%hoot all])) :: ++ lima :: load at depth - |= [cof=cafe for=logo rem=spur bem=bead] + |= [cof=cafe for=logo rem=spur bem=beam] ^- (bolt (unit vase)) %+ cope (lend cof bem) |= [cof=cafe arc=arch] @@ -472,8 +471,8 @@ |= [cof=cafe vax=vase] (fine cof ~ vax) :: - ++ lime :: load bead - |= [cof=cafe for=logo bem=bead] + ++ lime :: load beam + |= [cof=cafe for=logo bem=beam] =+ [mob=bem rem=*path] |- ^- (bolt vase) %+ cope (lima cof for rem bem) @@ -537,7 +536,7 @@ ++ make :: reduce silk |= [cof=cafe kas=silk] ^- (bolt cage) - ~& [%ford-make -.kas] + :: ~& [%ford-make -.kas] ?- -.kas ^ %. [cof p.kas q.kas] diff --git a/arvo/gall.hoon b/arvo/gall.hoon index 3ede1873b..5bd919ca0 100644 --- a/arvo/gall.hoon +++ b/arvo/gall.hoon @@ -1,4 +1,4 @@ -:: :: %gall, user-level applications +!: :: %gall, user-level applications !? 164 :::: |= pit=vase @@ -9,40 +9,45 @@ pol=(map ship mast) :: apps by ship == :: ++ bone ,@ud :: opaque duct +++ chop ,[p=@ud q=@da] :: revision/date ++ gift :: out result <-$ $% [%back p=?] :: %mess ack good/bad - [%bust ~] :: reset duct + [%boot p=@ud] :: response to %wait [%crud p=@tas q=(list tank)] :: error - [%rash p=json] :: web reaction - [%rasp p=cage] :: urbit reaction - [%rush p=@da q=json] :: web result - [%rust p=@da q=cage] :: urbit result + [%done ~] :: reset duct + [%rasp p=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 +++ hope (pair ,? path) :: view/subscribe ++ kiss :: in request ->$ - $% [%cuff p=(unit cuff) q=kiss] :: controlled kiss - [%mesh p=hasp q=path r=json] :: web message (json) - [%mess p=hasp q=cage] :: urbit message - [%mush p=hasp q=path r=cage] :: web message (mime) + $% [%show p=hasp q=(unit hope)] :: urb subscribe/cancel + [%cuff p=(unit cuff) q=kiss] :: controlled kiss + [%mess p=hasp q=cage] :: message [%nuke p=hasp] :: reset this duct - :: [%puke p=(list tank) q=kiss] :: kiss will fail - [%shah p=hasp q=(unit hope)] :: web subscribe - [%show p=hasp q=(unit hope)] :: urbit subscribe - [%soft p=*] :: soft kiss + [%show p=hasp q=(unit hope)] :: web subscribe/cancel + [%wait p=hasp q=@ud] :: await tick == :: ++ knob :: pending action $% [%boot ~] :: boot/reboot [%crud p=@tas q=(list tank)] :: error [%mess p=cage] :: message - [%nuke ~] :: reboot - [%show p=(unit hope)] :: subscription + [%nuke ~] :: destroy duct + [%show p=(unit hope)] :: subscribe/cancel [%take p=path q=vase] :: user result + [%wait p=@ud] :: await tick == :: ++ mast :: apps by ship $: bum=(map ,@ta seat) :: apps by name == :: ++ move ,[p=duct q=(mold note gift)] :: typed move -++ note curd :: out request $-> +++ note :: out request $-> + $% [%exec p=@p q=(unit silk)] :: to %ford + [%meta p=vase] :: meta-note + [%warp p=sock q=riff] :: to %clay + == :: ++ rapt |*(a=$+(* *) (qual path path ,@da a)) :: versioned result ++ scar :: opaque duct system $: p=@ud :: bone sequence @@ -51,16 +56,18 @@ == :: ++ seat :: the living app $: huv=(unit vase) :: application vase - qic=(unit toil) :: project - vey=(qeu toil) :: pending calls - orm=(unit ,@da) :: last buildtime + qic=(unit toil) :: current project + vey=(qeu toil) :: pending projects + tik=@ud :: build number + orm=(unit ,@da) :: build date + med=(map ,@ud (list duct)) :: waiters ped=(set (pair ship desk)) :: dependencies zam=scar :: opaque ducts == :: ++ sign :: in result $-< - $% [%made p=(each beet (list tank))] :: computed result + $% [%made p=(each bead (list tank))] :: by %ford [%ruse p=curd] :: user wrapper - [%writ p=riot] :: version result + [%writ p=riot] :: by %clay == :: ++ toil (pair duct knob) :: work in progress -- :::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -126,10 +133,16 @@ =< ^? |% :: vane interface ++ call :: handle request - |= [hen=duct hic=(hypo kiss)] - ?. (~(nest ut -:!>(q.hic)) | p.hic) :: XX temporary - ~& [%gall-call-flub -.q.hic] - $(q.hic ((hard kiss) q.hic)) + |= [hen=duct hic=(hypo (hobo kiss))] + => %= . :: XX temporary + q.hic + ^- kiss + ?: ?=(%soft -.q.hic) + ((hard kiss) p.q.hic) + ?: (~(nest ut -:!>(*kiss)) | p.hic) q.hic + ~& [%gall-call-flub (,@tas `*`-.q.hic)] + ((hard kiss) q.hic) + == |- ^- [p=(list move) q=_..^^$] =+ =| law=(unit cuff) |- ^- $: law=(unit cuff) @@ -138,21 +151,22 @@ == ?- -.q.hic %cuff $(q.hic q.q.hic, law (limp p.q.hic law)) - %mesh !! %mess [law p.q.hic %mess q.q.hic] - %mush !! - %shah !! %show [law p.q.hic %show q.q.hic] - %soft $(q.hic ((hard kiss) p.q.hic)) %nuke [law p.q.hic %nuke ~] + %wait [law p.q.hic %wait q.q.hic] == abet:work:(quem:(boar:(goat hap) hen law) kon) :: ++ take :: accept response |= [pax=path hen=duct hin=(hypo sign)] :: - ?. (~(nest ut -:!>(q.hin)) | p.hin) :: XX temporary - ~& [%gall-take-flub -.q.hin] - $(q.hin ((hard sign) q.hin)) + => %= . :: XX temporary + q.hin + ^- sign + ?: (~(nest ut -:!>(*sign)) | p.hin) q.hin + ~& [%gall-take-flub (,@tas `*`-.q.hin)] + ((hard sign) q.hin) + == ^- [p=(list move) q=_..^$] =+ lum=(lump pax) =< abet =< work @@ -172,7 +186,7 @@ :- [who syd ((hard case) p.lot)] (flop tyl) |= $: use=(unit (set monk)) :: observers - bid=bead :: position + bid=beam :: position == :: (beef:(gaur p.bid q.bid) use r.bid s.bid) %+ bind @@ -331,8 +345,9 @@ ++ conf :: configured core |= vax=vase ^- silk + :: (core vax) :+ %mute (core vax) - :~ [[%$ 6]~ (cave !>([[our app] now eny]))] + :~ [[%$ 12]~ (cave !>([[our app] 0 0 eny now]))] == ++ core |=(vax=vase (cove %core vax)) :: core as silk ++ cove :: cage as silk @@ -340,6 +355,21 @@ ^- silk [%done ~ cay] :: + ++ deal :: advance tick + ^+ . + =. tik.sat +(tik.sat) + =+ dyq=(dear tik.sat) + |- ^+ +>.$ + ?~ dyq +>.$(med.sat (~(del by med.sat) tik.sat)) + =. +>.$ $(dyq t.dyq) + (give(hen i.dyq) %boot tik.sat) + :: + ++ dear :: waiters + |= tik=@ud + ^- (list duct) + =+ dyq=(~(get by med.sat) tik.sat) + ?~(dyq ~ u.dyq) + :: ++ drug :: set dependencies |= pen=(set (pair ship desk)) ^+ +> @@ -349,7 +379,7 @@ |=(a=(pair ship desk) (~(has in ped.sat) a)) |= a=(pair ship desk) :- hen - :^ %toss %c (away %s %drug (scot %p p.a) q.a ~) + :^ %toss %c (away %s %drug ~) [%warp [our p.a] q.a ~ %| [%da now] [%da (add now ~d1000)]] =+ ^= old ^- (list move) %+ turn @@ -357,12 +387,12 @@ |=(a=(pair ship desk) (~(has in pen) a)) |= a=(pair ship desk) :- hen - :^ %toss %c (away %s %drug (scot %p p.a) q.a ~) + :^ %toss %c (away %s %drug ~) [%warp [our p.a] q.a ~] %_(+>.$ ped.sat pen, mow :(weld new old mow)) :: ++ drum :: raw dependencies - |= dep=(set bead) + |= dep=(set beam) ^+ +> ?> ?=(^ orm.sat) %- drug @@ -381,11 +411,6 @@ :_(mow [hen [%toss %f (away [%s pan ~]) [%exec our `kas]]]) == :: - ++ gate :: gate as silk - |= [arm=term kas=silk] - ^- silk - [%pass kas [%1 [%cnzy arm]]] - :: ++ give :: return card |= gip=gift %_(+> mow [[hen %give gip] mow]) @@ -394,12 +419,17 @@ ++ game :: invoke core |= [[pan=term arm=term] vax=vase sam=vase] %+ ford pan - [%call (gate arm (conf vax)) (cove %$ sam)] + [%call (harm arm (conf vax)) (cove %$ sam)] + :: + ++ harm :: arm as silk + |= [arm=term kas=silk] + ^- silk + [%pass kas [%1 [%cnzy arm]]] :: ++ home :: load application ^- silk :+ %boil %core - [[our %main [%da now]] %app ~] + [[our %main [%da now]] app %app ~] :: ++ more :: accept result |= $: pax=path :: internal position @@ -415,36 +445,41 @@ %- ~(put to vey.sat) [hen [%take t.pax (spec (slot 3 hin))]] == + ?. ?=([%s @ ~] pax) + ~& [%more-pax pax] + !! ?> ?=([%s @ ~] pax) - ?> !=(~ qic.sat) ?+ i.t.pax !! %boot - ~& %more-boot ?> ?=([~ * %boot ~] qic.sat) ?> ?=(%made -.q.hin) ?- -.p.q.hin - & (drum:(morn:gone q.q.p.p.q.hin) p.p.p.q.hin) - | (mort p.p.q.hin) + & :: ~& %boot-good + deal:(drum:(morn:gone q.q.p.p.q.hin) p.p.p.q.hin) + | :: ~& %boot-lost + (mort p.p.q.hin) == :: %drug - ~& %more-drug ?> ?=(%writ -.q.hin) ?~ p.q.hin +>.$ +>.$(vey.sat (~(put to vey.sat) hen %boot ~)) :: %step - ~& %more-step ?> ?=(%made -.q.hin) ?- -.p.q.hin - & %- obey:(morn:gone (slot 3 q.q.p.p.q.hin)) + & :: ~& %step-good + %- obey:(morn:gone (slot 3 q.q.p.p.q.hin)) (slot 2 q.q.p.p.q.hin) - | (give %crud %made p.p.q.hin) + | :: ~& %step-fail + (give %crud %made p.p.q.hin) == == :: ++ morn :: successful boot |= vax=vase + ^+ +> + :: =. +> (give [%boot ~]) %_(+> huv.sat `vax) :: ++ mort :: failed boot @@ -458,7 +493,12 @@ :: ++ quem :: queue action |= kon=knob :: content - %_(+> vey.sat (~(put to vey.sat) hen kon)) + ^+ +> + ?. ?=(%wait -.kon) + %_(+> vey.sat (~(put to vey.sat) hen kon)) + ?: (lte p.kon tik.sat) + (give %boot p.kon) + %_(+>.$ med.sat (~(put by med.sat) p.kon [hen (dear p.kon)])) :: ++ said |= vud=vase @@ -471,10 +511,26 @@ ^+ +> %_(+> vey.sat (~(put to vey.sat) hen %show hup)) :: + ++ sumo :: standard gift + |= vig=vase + ^- gift + ?+ q.vig [%meta vig] + [%rasp *] + :+ %rasp + ((hard lode) +<.q.vig) + (slot 7 vig) + :: + [%rust *] + :^ %rust + [tik.sat now] + ((hard lode) +<.q.vig) + (slot 7 vig) + == + :: ++ sump |= wec=vase ^- move - :- ((hard duct) -.q.wec) + :- (need (~(get by r.zam.sat) ((hard bone) -.q.wec))) =+ caq=(spec (slot 3 wec)) ?+ q.caq ~&(%sump-bad !!) :: @@ -484,7 +540,7 @@ [%meta (spec (slot 15 caq))] :: [%give p=[p=@tas q=*]] - [%give [%meta (spec (slot 3 caq))]] + [%give (sumo (spec (slot 3 caq)))] :: [%slip p=@tas q=[p=@tas q=*]] :+ %slip @@ -494,7 +550,6 @@ :: ++ work :: eat queue ^+ . - ~& %gall-work ?: |(?=(^ qic.sat) =(~ vey.sat)) . :: nothing to do =^ yev vey.sat [p q]:~(get to vey.sat) work:(yawn:(bing p.yev) q.yev) @@ -502,20 +557,19 @@ ++ yawn :: start event |= kon=knob ^+ +> + :: ~& [%gall-yawn -.kon] =. qic.sat `[hen kon] ?- -.kon %boot - ~& %yawn-boot =. orm.sat `now %+ ford %boot ^- silk :+ %call - (gate %prep home) + (harm %prep home) ?~ huv.sat nile - [nile (gate %save (conf u.huv.sat))] + [nile (harm %save (conf u.huv.sat))] :: %crud - ~& %yawn-crud ?~ huv.sat ~& [%crud-none our app] gone:(give %crud p.kon q.kon) @@ -523,7 +577,6 @@ !>([ost use p.kon]) :: %mess - ~& %yawn-mess ?~ huv.sat ~& [%mess-none our app] gone:(give %back |) @@ -531,25 +584,24 @@ :(slop [[%atom %ud] ost] !>((ride use say)) q.p.kon) :: %nuke - ~& %yawn-mess ?~ huv.sat ~& [%nuke-none our app] gone (game [%step %punk] u.huv.sat !>([ost ~])) :: %show - ~& %yawn-show ?~ huv.sat ~& [%show-none our app] - gone:(give %bust ~) + gone:(give %done ~) %^ game [%step %peer] u.huv.sat - !>([ost use p.kon]) + !>([ost use | p.kon]) :: %take - ~& %yawn-take ?> ?=(^ huv.sat) %^ game [%step %peck] u.huv.sat :(slop [[%atom %ud] ost] !>((ride use say)) !>(p.kon) q.kon) + :: + %wait !! :: handled above == -- -- diff --git a/arvo/hoon.hoon b/arvo/hoon.hoon index b4b41c478..bba1e13c9 100644 --- a/arvo/hoon.hoon +++ b/arvo/hoon.hoon @@ -9089,8 +9089,9 @@ |% ++ arch ,[p=@uvI q=(unit ,@uvI) r=(map ,@ta ,~)] :: fundamental node ++ arvo (mold mill mill) :: arvo card -++ bead ,[[p=ship q=desk r=case] s=path] :: global name -++ bone ,@ud :: opaque +++ beam ,[[p=ship q=desk r=case] s=path] :: global name +++ beak ,[p=ship q=desk r=case] :: garnish with beak +++ bone ,@ud :: opaque ++ care ?(%$ %u %v %w %x %y %z) :: namespace mode ++ case :: version $% [%da p=@da] :: date @@ -9100,7 +9101,7 @@ ++ desk ,@tas :: ship desk case spur ++ cage ,[p=lode q=vase] :: structured data ++ cuff :: permissions - $: p=(unit (set monk)) :: readers + $: p=kirk :: readers q=(set monk) :: authors == :: ++ curd ,[p=@tas q=*] :: typeless card @@ -9167,11 +9168,13 @@ ++ pane (list ,[p=@tas q=vase]) :: kernel modules ++ pone (list ,[p=@tas q=vise]) :: kernel modules, old ++ ship ,@p :: network identity -++ sled $+ [(unit (set monk)) term bead] :: namespace function +++ sled $+ [(unit (set monk)) term beam] :: namespace function (unit (unit cage)) :: ++ slut $+(* (unit (unit))) :: old namespace ++ vile :: reflexive constants $: typ=type :: -:!>(*type) + duc=type :: -:!>(*duct) + pah=type :: -:!>(*path) mev=type :: -:!>([%meta *vase]) moh=type :: -:!>(*(list mosh)) == :: @@ -9204,7 +9207,7 @@ ++ slub !: |= sul=slut ^- sled - |= [fur=(unit (set monk)) ron=term bed=bead] + |= [fur=(unit (set monk)) ron=term bed=beam] ^- (unit (unit cage)) =+ ^= pax ^- path :* ron @@ -9221,7 +9224,7 @@ :: section 3bE, Arvo core :: :: ++ vent :: vane core - |= [vil=vile bud=vase ves=vase] + |= [lal=@tas vil=vile bud=vase ves=vase] |% ++ ruck :: update vase |= [pax=path txt=@ta] @@ -9255,6 +9258,14 @@ [%& (slop p.hed p.tal)] [%| [%cell p.p.hed p.p.tal] [q.p.hed q.p.tal]] :: + ++ slix + |= hil=mill + ^- mill + ?- -.hil + & [%& (slop [typ.vil p.p.hil] p.hil)] + | [%| [%cell typ.vil p.p.hil] p.hil] + == + :: ++ slur |= [gat=vase hil=mill] ^- (unit vase) @@ -9262,8 +9273,8 @@ ?. ?- -.hil & (souk p.sam p.p.hil) | (sike p.sam p.p.hil) - == ~ - `(slym gat sam) + == ~ + `(slym gat +>.hil) :: ++ souk :: check type |= [sub=type ref=type] @@ -9346,14 +9357,14 @@ ++ scry :: read namespace |= $: fur=(unit (set monk)) ren=care - bed=bead + bed=beam == ^- (unit (unit cage)) =+ ^= old :* fur ren p.bed - q.bed + q.bed `coin`[%$ r.bed] (flop s.bed) == @@ -9377,27 +9388,32 @@ hil=mill == ^- [p=(list move) q=vase] - =+ ^= pro - :: %- need + =+ ^= pru ?~ pux - (slym (slap rig [%cnzy %call]) [hen +.hil]) - (slym (slap rig [%cnzy %take]) [u.pux hen +.hil]) - :: (slur (slap rig [%cnzy %call]) (slid [%& !>(hen)] hil)) - :: (slur (slap rig [%cnzy %take]) (slid [%& !>([u.pux hen])] hil)) + %+ slur (slap rig [%cnzy %call]) + (slid [%& duc.vil hen] (slix hil)) + %+ slur (slap rig [%cnzy %take]) + :(slid [%& pah.vil u.pux] [%& duc.vil hen] (slix hil)) + ?~ pru + ~& [%swim-lost lal (,@tas +>-.hil)] + [~ ves] + =+ pro=(need pru) :- (said (slap pro [%cnzy %p])) (soar (slap pro [%cnzy %q])) -- -- :: ++ vint :: create vane - |= [vil=vile bud=vase pax=path txt=@ta] :: - (vent vil bud (slym (slap bud (rain pax txt)) bud)) + |= [lal=@tas vil=vile bud=vase pax=path txt=@ta] :: + (vent lal vil bud (slym (slap bud (rain pax txt)) bud)) :: ++ viol :: vane tools |= but=type ^- vile =+ pal=|=(a=@t ^-(type (~(play ut but) (vice a)))) :* typ=(pal '_type') + duc=(pal '_duct') + pah=(pal '_path') mev=(pal '_[%meta vase]') moh=(pal '_(list mosh)') == @@ -9407,15 +9423,15 @@ |_ now=@da ++ beck ^- sled - |= [fur=(unit (set monk)) ron=term bed=bead] + |= [fur=(unit (set monk)) ron=term bed=beam] ^- (unit (unit cage)) => .(fur ?^(fur fur `[[%& p.bed] ~ ~])) :: XX heinous - =+ dis=(end 3 1 ron) + =+ lal=(end 3 1 ron) =+ ren=(care (rsh 3 1 ron)) |- ^- (unit (unit cage)) ?~ fan ~ - ?. =(dis p.i.fan) $(fan t.fan) - %- scry:(wink:(vent vil bud q.i.fan) now (shax now) ..^$) + ?. =(lal p.i.fan) $(fan t.fan) + %- scry:(wink:(vent lal vil bud q.i.fan) now (shax now) ..^$) [fur ren bed] :: ++ dink :: vase by char @@ -9435,7 +9451,8 @@ :: ++ doos :: sleep until |= hap=path ^- (unit ,@da) - (doze:(wink:(vent vil bud (dink (dint hap))) now 0 beck) now [hap ~]) + =+ lal=(dint hap) + (doze:(wink:(vent lal vil bud (dink lal)) now 0 beck) now [hap ~]) :: ++ hurl :: start loop |= [lac=? ovo=ovum] @@ -9454,9 +9471,9 @@ == :: ++ race :: take - |= [pux=(unit wire) hen=duct hil=mill ves=vase] + |= [lal=@tas pux=(unit wire) hen=duct hil=mill ves=vase] ^- [p=(list move) q=vase] - =+ ven=(vent vil bud ves) + =+ ven=(vent lal vil bud ves) =+ win=(wink:ven now (shax now) beck) (swim:win pux hen hil) :: @@ -9470,7 +9487,7 @@ ?. =(lal p.i.naf) =+ tuh=$(naf t.naf) [-.tuh [i.naf +.tuh]] - =+ fiq=(race pux hen hil q.i.naf) + =+ fiq=(race lal pux hen hil q.i.naf) [[~ (turn p.fiq |=(a=move [lal a]))] [[p.i.naf q.fiq] t.naf]] :: ++ jack :: dispatch card @@ -9630,11 +9647,11 @@ |- ^+ fan ?~ fan ~& [%vane `@tas`lal.fav pax.fav `@p`(mug txt.fav)] - [[lal.fav ves:(vint vil bud pax.fav txt.fav)] fan] + [[lal.fav ves:(vint lal.fav vil bud pax.fav txt.fav)] fan] ?. =(lal.fav p.i.fan) [i.fan $(fan t.fan)] ~& [%vane `@tas`lal.fav pax.fav `@p`(mug txt.fav)] - [[p.i.fan ves:(ruck:(vent vil bud q.i.fan) pax.fav txt.fav)] t.fan] + [[p.i.fan ves:(ruck:(vent lal.fav vil bud q.i.fan) pax.fav txt.fav)] t.fan] == :: ++ wish :: external compute diff --git a/arvo/zuse.hoon b/arvo/zuse.hoon index ba0557677..61eb437de 100644 --- a/arvo/zuse.hoon +++ b/arvo/zuse.hoon @@ -1968,7 +1968,7 @@ :: ++ tome :: parse path |= pax=path - ^- (unit bead) + ^- (unit beam) ?. ?=([* * * *] pax) ~ %+ biff (slaw %p i.pax) |= who=ship @@ -1977,10 +1977,10 @@ %+ biff (slay i.t.t.pax) |= cis=coin ?. ?=([%$ case] cis) ~ - `(unit bead)`[~ [who dex `case`p.cis] (flop t.t.t.pax)] + `(unit beam)`[~ [who dex `case`p.cis] (flop t.t.t.pax)] :: -++ tope :: bead to path - |= bem=bead +++ tope :: beam to path + |= bem=beam ^- path [(scot %p p.bem) q.bem (scot r.bem) (flop s.bem)] :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -2039,8 +2039,9 @@ pot=tape :: prompt text == :: == :: +++ 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 -++ beet ,[p=(set bead) q=cage] :: computed result ++ bird :: packet in travel $: gom=soap :: message identity mup=@ud :: pktno in msg @@ -2237,17 +2238,14 @@ ++ gram ,@uw :: physical datagram ++ hand ,@uvH :: hash of code ++ hart ,[p=? q=(unit ,@ud) r=host] :: http sec/port/host -++ hasp ,[p=ship q=term] :: app identity ++ hate ,[p=purl q=@p r=moth] :: semi-cooked request ++ heir ,[p=@ud q=mess r=(unit love)] :: status/headers/data ++ hiss ,[p=purl q=moth] :: outbound request ++ hist ,[p=@ud q=(list ,@t)] :: depth texts ++ hole ,@t :: session identity -++ hope (pair ,? path) :: view/subscribe ++ hook path :: request origin ++ hoot ,[p=? q=? r=(unit ,@ud) s=host] :: secure/mapped/host ++ hort ,[p=(unit ,@ud) q=host] :: http port/host -++ hose ,[p=(list tank) q=(unit vase) r=seam s=heir] :: http environment ++ host $%([& p=(list ,@t)] [| p=@if]) :: http host ++ httq :: raw http request $: p=meth :: method @@ -2437,7 +2435,6 @@ ++ rump ,[p=care q=case r=@tas s=path] :: relative path ++ rung $: rus=(map desk rede) :: neighbor desks == :: -++ sash (pair term (unit hope)) :: web subscribe ++ saba ,[p=ship q=@tas r=moar s=(list nori)] :: patch/merge ++ sufi :: domestic host $: hoy=(list ship) :: hierarchy @@ -2454,21 +2451,6 @@ foy=(unit ,[p=ship q=hole]) :: partner to notify pus=(unit ,@ta) :: password == :: -++ seam :: logical request - $% [%ape p=term q=@ud] :: await update - [%apg p=term q=logo r=path] :: app get - [%apl p=term q=@ud r=term] :: app poll - [%apm p=term q=json] :: app message - [%aps p=term q=term r=(unit path)] :: app subscribe - [%apu p=term q=logo r=octs] :: app upload - [%cog p=@ud q=@ud] :: console get - [%con p=@ud] :: console face - [%cop p=@ud q=@ud r=json] :: console put - [%det p=desk q=moat] :: load changes - [%fun p=term q=tube r=(list manx)] :: functional - [%lon p=seal] :: authentication flow - [%red p=purl] :: redirect - == :: ++ sect ?(%black %blue %red %orange %white) :: banner ++ shed :: packet flow $: $: rtt=@dr :: smoothed rtt @@ -2489,11 +2471,11 @@ == :: ++ silk :: construction layer $& [p=silk q=silk] :: cons - $% [%bake p=logo q=bead] :: local synthesis - [%boil p=logo q=bead] :: general synthesis + $% [%bake p=logo q=beam] :: local synthesis + [%boil p=logo q=beam] :: general synthesis [%call p=silk q=silk] :: slam [%cast p=logo q=beak r=silk] :: translate - [%done p=(set bead) q=cage] :: literal + [%done p=(set beam) q=cage] :: literal [%mute p=silk q=(list (pair wing silk))] :: mutant [%pass p=silk q=sill] :: twig construction [%reef ~] :: kernel reef @@ -2501,7 +2483,7 @@ ++ sill :: code construction $% [%0 p=@] :: direct text [%1 p=twig] :: direct twig - [%2 p=bead] :: bead over %hoon + [%2 p=beam] :: beam over %hoon [%3 p=silk] :: build a %hoot == :: ++ skit ,[p=(unit ,@ta) q=(list ,@ta) r=(list ,@ta)] :: tracking path diff --git a/main/app/foobug/core.hoon b/main/app/foobug/core.hoon new file mode 100644 index 000000000..0dc732ab6 --- /dev/null +++ b/main/app/foobug/core.hoon @@ -0,0 +1,35 @@ +!: +=> |% + ++ foobug-state + $% [%0 bug=@ud] + == + -- +|= * +|_ [hide foo=foobug-state] +++ prep + |= old=foobug-state + +>(foo old) +++ save + ^- foobug-state + foo +:: +++ peer + |= [ost=bone aud=kirk web=? hup=(unit (pair ,? path))] + ~& [%peer lat.seq] + :_ +> :_ ~ + :+ ost %give + :- %rust + :- %html + %- crip + %+ xmlt | + :_ ~ + ^- manx + ;html + ;head + ;title: Hi, Pi! + == + ;body + ;p: Yo, world. + == + == +--