diff --git a/ape/dojo.hoon b/ape/dojo.hoon index 54acf9a8e..ea7ff10b2 100644 --- a/ape/dojo.hoon +++ b/ape/dojo.hoon @@ -10,7 +10,7 @@ !: :: :: => |% :: external structures ++ house :: all state - $: %2 + $: %3 hoc=(map bone session) :: conversations == :: ++ session :: per conversation @@ -23,14 +23,17 @@ buf=tape :: multiline buffer == :: ++ dojo-command :: - $% [%flat p=path q=dojo-source] :: noun to unix atom - [%pill p=path q=dojo-source] :: noun to unix pill - :: [%tree p=path q=dojo-source] :: noun to unix tree - [%file p=beam q=dojo-source] :: save to clay - [%http p=?(%post %put) q=purl r=dojo-source] :: http outbound - [%poke p=goal q=dojo-source] :: make and poke - [%show p=dojo-source] :: print - [%verb p=term q=(unit dojo-source)] :: store variable + $& (pair dojo-sink dojo-source) :: route value + [%brev p=term] :: unbind variable + ++ dojo-sink :: + $% [%flat p=path] :: atom to unix + [%pill p=path] :: noun to unix pill + :: [%tree p=path] :: noun to unix tree + [%file p=beam] :: save to clay + [%http p=?(%post %put) q=purl] :: http outbound + [%poke p=goal] :: poke app + [%show p=?(0 1 2 3)] :: print val/type/twig + [%verb p=term] :: store variable == :: ++ dojo-source :: construction node $: p=@ud :: assembly index @@ -104,26 +107,30 @@ ++ dp :: dojo parser |% ++ dp-default-app %hood - ++ dp-specify - |= [gol=goal mod=dojo-model] - ^- (pair goal dojo-source) - [gol [0 [%ge mod(q.p [q.gol q.p.mod])]]] + ++ dp-message :: %poke + |= [gol=goal mod=dojo-model] ^- dojo-command + [[%poke gol] [0 [%ge mod(q.p [q.gol q.p.mod])]]] :: ++ dp-command-line ;~(sfix dp-command (just '\0a')) + ++ dp-variable :: %verb or %brev + |* [sym=_rule src=_rule] + %- cook :_ ;~(plug sym (punt src)) + |= [a=term b=(unit dojo-source)] ^- dojo-command + ?~(b [%brev a] [[%verb a] u.b]) + :: ++ dp-command :: ++dojo-command %+ knee *dojo-command |. ~+ - ;~ pose - ;~ plug (cold %poke bar) - %+ cook dp-specify + ;~ pose + ;~ pfix bar + %+ cook dp-message (stag [our.hid dp-default-app] dp-model) == :: - ;~ plug (cold %poke col) + ;~ pfix col %+ cook |= [a=goal b=$&(dojo-model dojo-source)] - ^- (pair goal dojo-source) - ?@ -.b [a b] - (dp-specify a b) + ?@ -.b [[%poke a] b] + (dp-message a b) ;~ plug dp-goal ;~ pose @@ -133,21 +140,26 @@ == == :: - ;~(plug (cold %file tar) dp-beam ;~(pfix ace dp-source)) - ;~(plug (cold %flat pat) (most fas sym) ;~(pfix ace dp-source)) - ;~(plug (cold %pill dot) (most fas sym) ;~(pfix ace dp-source)) - ;~(plug (cold %http lus) (easy %post) auri:epur ;~(pfix ace dp-source)) - ;~(plug (cold %http hep) (easy %put) auri:epur ;~(pfix ace dp-source)) - ;~(plug (cold %verb tis) sym (punt ;~(pfix ace dp-source))) - ;~ plug (cold %verb fas) + ;~(pfix tis (dp-variable sym ;~(pfix ace dp-source))) + ;~ pfix fas ;~ pose - ;~(plug (cold %arc hep) (punt ;~(pfix gap dp-hooves))) - ;~(plug (cold %lib lus) (punt ;~(pfix gap dp-hooves))) - (stag %dir :(stag ~ 0 %ex %clsg dp-poor)) + (dp-variable (cold %arc hep) ;~(pfix gap dp-hooves)) + (dp-variable (cold %lib lus) ;~(pfix gap dp-hooves)) + :(stag [%verb %dir] 0 %ex %clsg dp-poor) == == :: - (stag %show dp-source) + ;~((glue ace) dp-sink dp-source) + (stag [%show %0] dp-source) + == + ++ dp-sink + ;~ pose + ;~(plug (cold %file tar) dp-beam) + ;~(plug (cold %flat pat) (most fas sym)) + ;~(plug (cold %pill dot) (most fas sym)) + ;~(plug (cold %http lus) (easy %post) auri:epur) + ;~(plug (cold %http hep) (easy %put) auri:epur) + (stag %show (cook ?(1 2 3) (cook lent (stun [1 3] wut)))) == ++ dp-hooves :: hoof list :(stag 0 %ex %clsg (cook |=(a=tusk a) (most ;~(plug com gaw) dp-hoof))) @@ -196,17 +208,17 @@ == ++ dp-beam :: ++beam %+ cook |=(a=path =+((tome a) ?^(- u [he-beak (flop a)]))) - =+ vez=(vang & dp-path) + =+ vez=(vang | dp-path) (sear plex:vez (stag %clsg poor:vez)) :: ++ dp-model ;~(plug dp-server dp-config) :: ++dojo-model ++ dp-path (tope he-beam) :: ++path ++ dp-server (stag 0 (most fas sym)) :: ++dojo-server - ++ dp-twig tall:(vang & dp-path) :: ++twig - ++ dp-poor poor:(vang & (tope dir)) :: (list ++twig) + ++ dp-twig tall:(vang | dp-path) :: ++twig + ++ dp-poor poor:(vang | (tope dir)) :: (list ++twig) ++ dp-value :: ++dojo-source ;~ pose - (stag %tu (ifix [kel ker] (most ace dp-source))) + (stag %tu (ifix [sel ser] (most ace dp-source))) (stag %ex dp-twig) == :: @@ -262,25 +274,11 @@ ++ dy-init-command :: ++dojo-command |= mad=dojo-command ^+ [mad +>] - ?- -.mad - %file =^(src +>.$ (dy-init-source q.mad) [mad(q src) +>.$]) - %flat =^(src +>.$ (dy-init-source q.mad) [mad(q src) +>.$]) - %pill =^(src +>.$ (dy-init-source q.mad) [mad(q src) +>.$]) - %poke =^(src +>.$ (dy-init-source q.mad) [mad(q src) +>.$]) - %show =^(src +>.$ (dy-init-source p.mad) [mad(p src) +>.$]) - %verb =^(src +>.$ (dy-init-source-unit q.mad) [mad(q src) +>.$]) - %http - =. r.mad [0 %as %mime r.mad] - =^ src +>.$ (dy-init-source r.mad) - [mad(r src) +>.$] - == - :: - ++ dy-init-source-unit :: (unit dojo-source) - |= urc=(unit dojo-source) - ^+ [urc +>] - ?~ urc [~ +>] - =^ src +> (dy-init-source u.urc) - [`src +>.$] + ?@ -.mad [mad +>.$] + =. q.mad + ?+(-.p.mad q.mad %http [0 %as %mime q.mad]) + =^ src +>.$ (dy-init-source q.mad) + [mad(q src) +>.$] :: ++ dy-init-source :: ++dojo-source |= src=dojo-source @@ -291,6 +289,13 @@ == [src +>.$(num +(num), job (~(put by job) src))] :: + ++ dy-init-source-unit :: (unit dojo-source) + |= urc=(unit dojo-source) + ^+ [urc +>] + ?~ urc [~ +>] + =^ src +> (dy-init-source u.urc) + [`src +>.$] + :: ++ dy-init-build :: ++dojo-build |= bul=dojo-build ^+ [bul +>] @@ -390,49 +395,24 @@ :: ++ dy-over :: finish construction ^+ +> - ?- -.mad - %poke - %- he-card(poy ~) - :* %deal - /poke - [our.hid p.p.mad] - q.p.mad - %poke - (~(got by rez) p.q.mad) - == - :: - %file - %- he-card(poy ~) :* - %info - /file - our.hid - (foal (tope p.mad) (~(got by rez) p.q.mad)) - == - :: - %flat - =+ out=q.q:(~(got by rez) p.q.mad) - ?^ out - (dy-rash %tan [%leaf "not an atom"]~) - (dy-rash %sav p.mad out) - :: - %pill - (dy-rash %sag p.mad q.q:(~(got by rez) p.q.mad)) - :: - %verb - ?~ q.mad - =. var (~(del by var) p.mad) - =< dy-amok - ?+ p.mad . - ?(%eny %now %our) !! - %lib .(lib ~) - %arc .(arc ~) - %dir .(dir [[our.hid %home ud/0] /]) - == - =+ cay=(~(got by rez) p.u.q.mad) - =. var (~(put by var) p.mad cay) - ~| bad-set/[p.mad p.q.cay] + ?: ?=([%show 3] -.mad) + (dy-rash %tan (dy-show-source q.mad) ~) :: XX separate command + ?: ?=(%brev -.mad) + =. var (~(del by var) p.mad) =< dy-amok - ?+ p.mad . + ?+ p.mad . + ?(%eny %now %our) !! + %lib .(lib ~) + %arc .(arc ~) + %dir .(dir [[our.hid %home ud/0] /]) + == + =+ cay=(~(got by rez) p.q.mad) + ?- -.p.mad + %verb + =. var (~(put by var) p.p.mad cay) + ~| bad-set/[p.p.mad p.q.cay] + =< dy-amok + ?+ p.p.mad . %eny ~|(%entropy-is-eternal !!) %now ~|(%time-is-immutable !!) %our ~|(%self-is-immutable !!) @@ -442,21 +422,53 @@ =- +(..dy (he-diff %tan - ~)) rose/[" " `~]^~[leaf/"=%" (smyt (tope he-beak s.dir))] == + :: + %poke + %- he-card(poy ~) + :* %deal + /poke + [our.hid p.p.p.mad] + q.p.p.mad + %poke + cay + == + :: + %file + %- he-card(poy ~) :* + %info + /file + our.hid + (foal (tope p.p.mad) cay) + == + :: + %flat + ?^ q.q.cay + (dy-rash %tan [%leaf "not an atom"]~) + (dy-rash %sav p.p.mad q.q.cay) + :: + %pill + (dy-rash %sag p.p.mad q.q.cay) :: %http - =+ cay=(~(got by rez) p.r.mad) ?> ?=(%mime p.cay) =+ mim=;;(mime q.q.cay) =+ maf=(~(add ja *math) content-type/(moon p.mim)) - (dy-eyre /show [q.mad p.mad maf ~ q.mim]) + (dy-eyre /show [q.p.mad p.p.mad maf ~ q.mim]) :: %show - (dy-show (~(got by rez) p.p.mad)) + %+ dy-print cay + ?- p.p.mad + 0 ~ + 1 ~[[%rose [~ " " ~] (skol p.q.cay) ~] [%rose [~ " " ~] >p.cay< ~]] + 2 [%rose [~ " " ~] (dy-show-type-noun p.q.cay) ~]~ + == == :: - ++ dy-show - |= cay=cage + ++ dy-show |=(cay=cage (dy-print cay ~)) + ++ dy-print + |= [cay=cage tan=tang] %+ dy-rash %tan + %- welp :_ tan ?+ p.cay [(sell q.cay)]~ %tang ;;(tang q.q.cay) %httr @@ -468,6 +480,53 @@ (turn `wain`?~(r.hit ~ (lore q.u.r.hit)) trip) == :: + ++ dy-show-type-noun + |= a=type ^- tank + =- >[-]< + |- ^- $? $% [%atom @tas] + [%cell _$ _$] + [%cube * _$] + [%face @tas _$] + [%fork _$ _$] + [%hold (list ,[_$ twig])] + == + wain :: "<|core|>" + ?(%noun %void) + == + ?+ a a + [?(%cube %face) ^] a(q $(a q.a)) + [?(%cell %fork) ^] a(p $(a p.a), q $(a q.a)) + [%bull ^] $(a q.a) + [%core ^] `wain`/core + [%hold *] a(p (turn p.a |=([b=type c=twig] [^$(a b) c]))) + == + :: + ++ dy-show-source + |= a=dojo-source ^- tank + =- >[-]< + =+ `[@ bil=dojo-build]`a + |- ^- $& [_$ _$] + $? twig + $% [%ur purl] + [%dv path] + [%as mark _$] + [%do twig _$] + [%ge path (list ,_$) (map term (unit ,_$))] + == + == + ?- -.bil + ?(%ur %dv) bil + %ex p.bil + %tu ?~ p.bil !! + |- + ?~ t.p.bil ^$(bil q.i.p.bil) + [^$(bil q.i.p.bil) $(p.bil t.p.bil)] + %as bil(q $(bil q.q.bil)) + %do bil(q $(bil q.q.bil)) + %ge :+ %ge q.p.p.bil + [(turn p.q.p.bil ..$) (~(run by q.q.p.bil) (lift ..$))] + == + :: ++ dy-edit :: handle edit |= cal=sole-change ^+ +>+> @@ -643,6 +702,8 @@ |= nex=@ud ^+ +>+> ?> ?=(~ cud) + ?: ?=([%show 3] -.mad) + dy-over ?: =(nex num) dy-over dy-make(cud `[nex (~(got by job) nex)]) @@ -836,12 +897,17 @@ =+ session-1==+(*session ,_-(poy *(unit))) =+ session-0==+(*session-1 ,[_say syd=desk * _|2.-]) :: ,_`..prep - =+ hoze=$%([%0 p=(map bone session-0)] [%1 p=(map bone session-1)]) + =+ ^= hoze + $% [%0 p=(map bone session-0)] + [%1 p=(map bone session-1)] + [%2 p=(map bone session-1)] + == |= old=(unit ?(house hoze)) ^+ [~ ..prep] ?~ old `..prep ?- -.u.old - %2 `..prep(+<+ u.old) - %1 `..prep(+<+ [%2 (~(run by p.u.old) |=(session-1 +<(poy ~)))]) + %3 `..prep(+<+ u.old) + %2 `..prep(+<+ [%3 (~(run by p.u.old) |=(session-1 +<(poy ~)))]) + %1 `..prep(+<+ [%3 (~(run by p.u.old) |=(session-1 +<(poy ~)))]) %0 =< ^$(u.old [%1 (~(run by p.u.old) .)]) |= sos=session-0 ^- session-1 [-.sos [[our.hid syd.sos ud/0] /] |3.sos] diff --git a/ape/hood.hoon b/ape/hood.hoon index 89e218f94..a14cf7d4e 100644 --- a/ape/hood.hoon +++ b/ape/hood.hoon @@ -56,6 +56,11 @@ ~? ?=(^ saw) [%kiln-spam-lame u.saw] [~ +>] :: +++ coup-kiln-reload :: + |= [way=wire saw=(unit tang)] + ~? ?=(^ saw) [%kiln-reload-lame u.saw] + [~ +>] +:: ++ coup-drum-phat (wrap take-coup-phat):from-drum ++ coup-helm-hi (wrap coup-hi):from-helm ++ diff-sole-effect-drum-phat (wrap diff-sole-effect-phat):from-drum @@ -72,41 +77,45 @@ ++ from-helm (from-lib %helm [..$ ,_abet]:(helm)) ++ from-kiln (from-lib %kiln [..$ ,_abet]:(kiln)) :: -++ init-helm |=([way=wire *] [~ +>]) -++ made-kiln (wrap take-made):from-kiln -++ mere-kiln (wrap take-mere):from-kiln -++ mere-kiln-sync (wrap take-mere-sync):from-kiln -++ note-helm (wrap take-note):from-helm -++ onto-drum (wrap take-onto):from-drum -++ peer-drum (wrap peer):from-drum -++ poke-dill-belt (wrap poke-dill-belt):from-drum -++ poke-drum-link (wrap poke-link):from-drum -::++ poke-drum-exit (wrap poke-exit):from-drum -++ poke-drum-start (wrap poke-start):from-drum -++ poke-helm-hi (wrap poke-hi):from-helm -++ poke-helm-init (wrap poke-init):from-helm -++ poke-helm-invite (wrap poke-invite):from-helm -++ poke-helm-mass (wrap poke-mass):from-helm -++ poke-helm-reload (wrap poke-reload):from-helm -++ poke-helm-reload-desk (wrap poke-reload-desk):from-helm -++ poke-helm-reset (wrap poke-reset):from-helm -++ poke-helm-send-hi (wrap poke-send-hi):from-helm -++ poke-helm-verb (wrap poke-verb):from-helm -++ poke-helm-begin (wrap poke-begin):from-helm -++ poke-hood-sync (wrap poke-sync):from-kiln -++ poke-kiln-cp (wrap poke-cp):from-kiln -++ poke-kiln-label (wrap poke-label):from-kiln -++ poke-kiln-merge (wrap poke-merge):from-kiln -++ poke-kiln-mount (wrap poke-mount):from-kiln -++ poke-kiln-mv (wrap poke-mv):from-kiln -++ poke-kiln-rm (wrap poke-rm):from-kiln -++ poke-kiln-schedule (wrap poke-schedule):from-kiln -++ poke-kiln-sync (wrap poke-sync):from-kiln -++ poke-kiln-unmount (wrap poke-unmount):from-kiln -++ poke-kiln-unsync (wrap poke-unsync):from-kiln -++ poke-will (wrap poke-will):from-helm -++ quit-drum-phat (wrap quit-phat):from-drum -++ reap-drum-phat (wrap reap-phat):from-drum -++ woot-helm (wrap take-woot):from-helm -++ writ-kiln-sync (wrap take-writ):from-kiln +++ init-helm |=([way=wire *] [~ +>]) +++ made-kiln (wrap take-made):from-kiln +++ mere-kiln (wrap take-mere):from-kiln +++ mere-kiln-sync (wrap take-mere-sync):from-kiln +++ note-helm (wrap take-note):from-helm +++ onto-drum (wrap take-onto):from-drum +++ peer-drum (wrap peer):from-drum +++ poke-dill-belt (wrap poke-dill-belt):from-drum +++ poke-drum-link (wrap poke-link):from-drum +::++ poke-drum-exit (wrap poke-exit):from-drum +++ poke-drum-start (wrap poke-start):from-drum +++ poke-helm-hi (wrap poke-hi):from-helm +++ poke-helm-init (wrap poke-init):from-helm +++ poke-helm-invite (wrap poke-invite):from-helm +++ poke-helm-mass (wrap poke-mass):from-helm +++ poke-helm-reload (wrap poke-reload):from-helm +++ poke-helm-reload-desk (wrap poke-reload-desk):from-helm +++ poke-helm-reset (wrap poke-reset):from-helm +++ poke-helm-send-hi (wrap poke-send-hi):from-helm +++ poke-helm-verb (wrap poke-verb):from-helm +++ poke-helm-begin (wrap poke-begin):from-helm +++ poke-hood-sync (wrap poke-sync):from-kiln +++ poke-kiln-cp (wrap poke-cp):from-kiln +++ poke-kiln-label (wrap poke-label):from-kiln +++ poke-kiln-merge (wrap poke-merge):from-kiln +++ poke-kiln-cancel (wrap poke-cancel):from-kiln +++ poke-kiln-mount (wrap poke-mount):from-kiln +++ poke-kiln-mv (wrap poke-mv):from-kiln +++ poke-kiln-rm (wrap poke-rm):from-kiln +++ poke-kiln-schedule (wrap poke-schedule):from-kiln +++ poke-kiln-sync (wrap poke-sync):from-kiln +++ poke-kiln-start-autoload (wrap poke-start-autoload):from-kiln +++ poke-kiln-autoload (wrap poke-autoload):from-kiln +++ poke-kiln-unmount (wrap poke-unmount):from-kiln +++ poke-kiln-unsync (wrap poke-unsync):from-kiln +++ poke-will (wrap poke-will):from-helm +++ quit-drum-phat (wrap quit-phat):from-drum +++ reap-drum-phat (wrap reap-phat):from-drum +++ woot-helm (wrap take-woot):from-helm +++ writ-kiln-autoload (wrap take-writ-autoload):from-kiln +++ writ-kiln-sync (wrap take-writ-sync):from-kiln -- diff --git a/ape/work.hoon b/ape/work.hoon index 7cf0b4495..b4cf03158 100644 --- a/ape/work.hoon +++ b/ape/work.hoon @@ -24,7 +24,8 @@ :: |_ $: bowl client - connected=_| + connected=_| :: subscribed to talk + count=@ud :: # messages from talk unordered=(map ,[@uvH @u] (pair ship flesh:work-stuff:talk)) == ++ at @@ -82,7 +83,7 @@ |= up=update ^+ +> ?- -.up - %add ?>(?=(%comment +<.up) (send-change %add-comment +>.up)) + %add ?>(?=(%comment +<.up) (send-change %add-comment our +>.up)) %doer ?- +<.up %release (send-change %set-doer ~) @@ -114,6 +115,7 @@ %- unit $: client _| + @ud (map ,[@uvH @u] (pair ship flesh:work-stuff:talk)) == ^- [(list move) _+>.$] @@ -124,7 +126,7 @@ ?: connected [~ .] :_ .(connected %&) :_ ~ - [ost %peer /peering [our %talk] /f/(main:talk our)/0] + [ost %peer /peering [our %talk] /f/(main:talk our)/(scot %ud count)] :: ++ process-duty |= [when=@da her=ship from=(set station:talk) action=duty:work-stuff:talk] @@ -256,7 +258,7 @@ %set-done tax.u.tax(done ?.(don.meat.action ~ `when)) %add-comment %= tax.u.tax - discussion [[when her com.meat.action] discussion.tax.u.tax] + discussion [[when [who com]:meat.action] discussion.tax.u.tax] == == =+ ooo=(~(get by unordered) id.action +(version.action)) @@ -309,28 +311,25 @@ abut:send-create:(at | +.cod) == :: -:: XX maybe need to check that we haven't received this message before -:: by keeping a counter of last message received -:: XX definitely do this! -:: XX handle and test the disconnection case -:: +:: XX test the disconnection case ++ diff-talk-report |= [way=wire rep=report:talk] ^- [(list move) _+>.$] ?> ?=(%grams -.rep) |- ^- [(list move) _+>.^$] ?~ q.rep [~ +>.^$] + =. count +(count) =* her p.i.q.rep =* when p.r.q.i.q.rep =* said r.r.q.i.q.rep + ?. ?=(%tax -.said) + $(p.rep +(p.rep), q.rep t.q.rep) =+ ^- from=(set station:talk) %- sa ^- (list station:talk) %+ murn (~(tap by q.q.i.q.rep)) => talk |= [par=partner *] `(unit station)`?.(?=(%& -.par) ~ `p.par) - ?. ?=(%tax -.said) - $(p.rep +(p.rep), q.rep t.q.rep) =^ mos +>.^$ (process-duty when her from +.said) =^ mof +>.^$ $(p.rep +(p.rep), q.rep t.q.rep) [(weld mos mof) +>.^$] diff --git a/arvo/ames.hoon b/arvo/ames.hoon index 908d592e5..20346d17d 100644 --- a/arvo/ames.hoon +++ b/arvo/ames.hoon @@ -413,7 +413,7 @@ vix=(bex +((cut 0 [25 2] mag))) :: width of sender tay=(cut 0 [27 5] mag) :: message type == - ?> =(4 vez) + ?> =(5 vez) ?> =(chk (end 0 20 (mug bod))) :+ [(end 3 wix bod) (cut 3 [wix vix] bod)] (kins tay) @@ -433,7 +433,7 @@ =+ tay=(ksin q.kec) %+ mix %+ can 0 - :~ [3 4] + :~ [3 5] [20 (mug bod)] [2 yax] [2 qax] @@ -1018,7 +1018,7 @@ ++ gnaw :: gnaw:am |= [kay=cape ryn=lane pac=rock] :: process packet ^- [p=(list boon) q=fort] - ?. =(4 (end 0 3 pac)) [~ fox] + ?. =(5 (end 0 3 pac)) [~ fox] =+ kec=(bite pac) ?: (goop p.p.kec) [~ fox] ?. (~(has by urb.ton.fox) q.p.kec) diff --git a/arvo/clay.hoon b/arvo/clay.hoon index f6c8f9bf3..e43c090fe 100644 --- a/arvo/clay.hoon +++ b/arvo/clay.hoon @@ -162,11 +162,7 @@ mer=mer.jod == =* red -> - =| yel=(list ,[p=duct q=gift]) - =| byn=(list ,[p=duct q=riot]) - =| reg=(list ,[p=duct q=gift]) - =| say=(list ,[p=duct q=path r=ship s=[p=@ud q=riff]]) - =| tag=(list move) + =| mow=(list move) |% ++ abet ^- [(list move) raft] @@ -176,23 +172,7 @@ ruf(hoy (~(put by hoy.ruf) her rug)) =+ dos=(~(put by dos.u.rom) syd [qyx dom dok mer]) ruf(fat (~(put by fat.ruf) her [(need hun) dos])) - ;: weld - %+ turn (flop yel) - |=([a=duct b=gift] [(need hun) %give b]) - :: - %+ turn (flop reg) - |=([a=duct b=gift] [a %give b]) - :: - %+ turn (flop byn) - |=([a=duct b=riot] [a %give [%writ b]]) - :: - %+ turn (flop say) - |= [a=duct b=path c=ship d=[p=@ud q=riff]] - :- a - [%pass b %a %wont [our c] [%c %question p.q.d (scot %ud p.d) ~] q.d] - :: - tag - == + (flop mow) :: ++ aver :: read |= mun=mood @@ -260,6 +240,14 @@ (mule |.(`~`~|([%expected-path got=p.pax] !!))) $(tay t.tay, can (~(put by can) ((hard path) q.q.pax) q.i.tay)) :: + ++ emit + |= mof=move + %_(+> mow [mof mow]) + :: + ++ emil + |= mof=(list move) + %_(+> mow (welp mof mow)) + :: ++ balk :: read and send |= [hen=duct cay=(unit (each cage lobe)) mun=mood] ^+ +> @@ -268,18 +256,18 @@ :: ++ bait |= [hen=duct tym=@da] - %_(+> tag :_(tag [hen %pass /tyme %t %wait tym])) + (emit hen %pass /tyme %t %wait tym) :: ++ best |= [hen=duct tym=@da] - %_(+> tag :_(tag [hen %pass /tyme %t %rest tym])) + (emit hen %pass /tyme %t %rest tym) :: ++ blab :: ship result |= [hen=duct mun=mood dat=(each cage lobe)] ^+ +> ?: ?=(%& -.dat) - +>.$(byn [[hen ~ [p.mun q.mun syd] r.mun p.dat] byn]) - =- +>.$(tag [- tag]) + (emit hen %give %writ ~ [p.mun q.mun syd] r.mun p.dat) + %- emit :* hen %pass [%blab p.mun (scot q.mun) syd r.mun] %f %exec our ~ [her syd q.mun] (lobe-to-silk:ze r.mun p.dat) == @@ -295,7 +283,15 @@ :: ++ blub :: ship stop |= hen=duct - %_(+> byn [[hen ~] byn]) + (emit hen %give %writ ~) + :: + ++ print-to-dill + |= [car=@tD tan=tank] + (emit (need hun) %give %note car tan) + :: + ++ send-over-ames + |= [a=duct b=path c=ship d=[p=@ud q=riff]] + (emit a %pass b %a %wont [our c] [%c %question p.q.d (scot %ud p.d) ~] q.d) :: ++ duce :: produce request |= rov=rove @@ -309,8 +305,10 @@ ?. ?=([%sing %v *] rav) rav [%many %| [%ud let.dom] `case`q.p.rav r.p.rav] =+ inx=nix.u.ref + =. +>+.$ + =< ?>(?=(^ ref) .) + (send-over-ames hen [(scot %ud inx) ~] her inx syd ~ vaw) %= +>+.$ - say [[hen [(scot %ud inx) ~] her [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) @@ -335,22 +333,19 @@ =+ mus=(skim can |=(paf=path =(pax (scag (lent pax) paf)))) ?~ mus +>.$ - %_ +>.$ - tag - :_ tag - :* hen %pass [%ergoing (scot %p her) syd ~] %f - %exec our ~ [her syd %da now] %tabl - ^- (list (pair silk silk)) - %+ turn `(list path)`mus - |= a=path - ^- (pair silk silk) - :- [%$ %path !>(a)] - :+ %cast %mime - =+ (need (need (read-x:ze let.dom a))) - ?: ?=(%& -<) - [%$ p.-] - (lobe-to-silk:ze a p.-) - == + %- emit + :* hen %pass [%ergoing (scot %p her) syd ~] %f + %exec our ~ [her syd %da now] %tabl + ^- (list (pair silk silk)) + %+ turn `(list path)`mus + |= a=path + ^- (pair silk silk) + :- [%$ %path !>(a)] + :+ %cast %mime + =+ (need (need (read-x:ze let.dom a))) + ?: ?=(%& -<) + [%$ p.-] + (lobe-to-silk:ze a p.-) == :: ++ ease :: release request @@ -364,8 +359,10 @@ |- ^+ +.$ =+ nux=(~(get by fod.u.ref) hen) ?~ nux +.$ + =. +.$ + =< ?>(?=(^ ref) .) + (send-over-ames hen [(scot %ud u.nux) ~] her u.nux syd ~) %= +.$ - say [[hen [(scot %ud u.nux) ~] her [u.nux syd ~]] say] fod.u.ref (~(del by fod.u.ref) hen) bom.u.ref (~(del by bom.u.ref) u.nux) == @@ -422,31 +419,19 @@ (duce `rove`[%many p.rav ptr q.q.rav r.q.rav ear]) == :: - ++ echa :: announce raw - |= [wen=@da mer=mizu] - ^+ +> - %= +> - reg ~& %merge-announce reg - :: yel [[hen %note '=' %leaf ~] yel] :: XX do better - == - :: ++ echo :: announce changes |= [wen=@da lem=nuri] ^+ +> - %_ +>.$ - yel - =+ pre=`path`~[(scot %p her) syd (scot %ud let.dom)] - ?- -.lem - | :_ yel - [hen %note '=' %leaf :(weld (trip p.lem) " " (spud pre))] - & |- ^+ yel - ?~ p.lem yel - :_ $(p.lem t.p.lem) - :- hen - :+ %note - ?-(-.q.i.p.lem %del '-', %ins '+', %dif ':') - [%leaf (spud (weld pre p.i.p.lem))] - == + =+ pre=`path`~[(scot %p her) syd (scot %ud let.dom)] + ?- -.lem + | (print-to-dill '=' %leaf :(weld (trip p.lem) " " (spud pre))) + & |- ^+ +>.^$ + ?~ p.lem +>.^$ + =. +>.^$ + %+ print-to-dill + ?-(-.q.i.p.lem %del '-', %ins '+', %dif ':') + [%leaf (spud (weld pre p.i.p.lem))] + $(p.lem t.p.lem) == :: ++ edit :: apply changes @@ -472,107 +457,97 @@ ?& ?=([?(%hoon %hook) *] (flop pax)) ?=(%mime p.p.mis) == - =- %_ +>.$ - tag (welp - tag) - dok - :- ~ - :* %+ turn del + =. +>.$ + %- emil + ^- (list move) + :~ :* hen %pass + [%inserting (scot %p her) syd (scot %da wen) ~] + %f %exec our ~ [her syd %da wen] %tabl + ^- (list (pair silk silk)) + %+ turn ins |= [pax=path mis=miso] - ?> ?=(%del -.mis) - pax - :: - %+ turn ink - |= [pax=path mis=miso] - ^- (pair path cage) ?> ?=(%ins -.mis) + :- [%$ %path -:!>(*path) pax] =+ =>((flop pax) ?~(. %$ i)) - [pax - [%atom %t] ((hard ,@t) +>.q.q.p.mis)] - :: - ~ - :: - %- mo + [%cast - [%$ p.mis]] + == + :* hen %pass + [%diffing (scot %p her) syd (scot %da wen) ~] + %f %exec our ~ [her syd %da wen] %tabl + ^- (list (pair silk silk)) %+ turn dif |= [pax=path mis=miso] ?> ?=(%dif -.mis) - [pax p.mis] - :: - ~ - :: - %- mo + =+ (need (need (read-x:ze let.dom pax))) + ?> ?=(%& -<) + :- [%$ %path -:!>(*path) pax] + [%pact [%$ p.-] [%$ p.mis]] + == + :* hen %pass + [%castifying (scot %p her) syd (scot %da wen) ~] + %f %exec our ~ [her syd %da wen] %tabl + ^- (list (pair silk silk)) %+ turn mut |= [pax=path mis=miso] ?> ?=(%mut -.mis) - [pax p.mis] - :: - ~ - :: - ~ - :: - %- mo ^- (list (pair path mime)) - ;: welp - ^- (list (pair path mime)) - %+ murn ins - |= [pax=path mis=miso] - ^- (unit (pair path mime)) - ?> ?=(%ins -.mis) - ?. ?=(%mime p.p.mis) - ~ - `[pax ((hard mime) q.q.p.mis)] - :: - ^- (list (pair path mime)) - %+ murn ink - |= [pax=path mis=miso] - ^- (unit (pair path mime)) - ?> ?=(%ins -.mis) - ?> ?=(%mime p.p.mis) - `[pax ((hard mime) q.q.p.mis)] - :: - ^- (list (pair path mime)) - %+ murn mut - |= [pax=path mis=miso] - ^- (unit (pair path mime)) - ?> ?=(%mut -.mis) - ?. ?=(%mime p.p.mis) - ~ - `[pax ((hard mime) q.q.p.mis)] - == + :- [%$ %path -:!>(*path) pax] + =+ (lobe-to-mark:ze (~(got by q:(aeon-to-yaki:ze let.dom)) pax)) + [%cast - [%$ p.mis]] == - == - ^- (list move) - :~ :* hen %pass - [%inserting (scot %p her) syd (scot %da wen) ~] - %f %exec our ~ [her syd %da wen] %tabl - ^- (list (pair silk silk)) - %+ turn ins + == + %_ +>.$ + dok + :- ~ + :* (turn del |=([pax=path mis=miso] ?>(?=(%del -.mis) pax))) + :: + %+ turn ink + |= [pax=path mis=miso] + ^- (pair path cage) + ?> ?=(%ins -.mis) + =+ =>((flop pax) ?~(. %$ i)) + [pax - [%atom %t] ((hard ,@t) +>.q.q.p.mis)] + :: + ~ + :: + (mo (turn dif |=([pax=path mis=miso] ?>(?=(%dif -.mis) [pax p.mis])))) + :: + ~ + :: + (mo (turn mut |=([pax=path mis=miso] ?>(?=(%mut -.mis) [pax p.mis])))) + :: + ~ + :: + ~ + :: + %- mo ^- (list (pair path mime)) + ;: welp + ^- (list (pair path mime)) + %+ murn ins |= [pax=path mis=miso] + ^- (unit (pair path mime)) ?> ?=(%ins -.mis) - :- [%$ %path -:!>(*path) pax] - =+ =>((flop pax) ?~(. %$ i)) - [%cast - [%$ p.mis]] - == - :* hen %pass - [%diffing (scot %p her) syd (scot %da wen) ~] - %f %exec our ~ [her syd %da wen] %tabl - ^- (list (pair silk silk)) - %+ turn dif + ?. ?=(%mime p.p.mis) + ~ + `[pax ((hard mime) q.q.p.mis)] + :: + ^- (list (pair path mime)) + %+ murn ink |= [pax=path mis=miso] - ?> ?=(%dif -.mis) - =+ (need (need (read-x:ze let.dom pax))) - ?> ?=(%& -<) - :- [%$ %path -:!>(*path) pax] - [%pact [%$ p.-] [%$ p.mis]] - == - :* hen %pass - [%castifying (scot %p her) syd (scot %da wen) ~] - %f %exec our ~ [her syd %da wen] %tabl - ^- (list (pair silk silk)) - %+ turn mut + ^- (unit (pair path mime)) + ?> ?=(%ins -.mis) + ?> ?=(%mime p.p.mis) + `[pax ((hard mime) q.q.p.mis)] + :: + ^- (list (pair path mime)) + %+ murn mut |= [pax=path mis=miso] + ^- (unit (pair path mime)) ?> ?=(%mut -.mis) - :- [%$ %path -:!>(*path) pax] - =+ (lobe-to-mark:ze (~(got by q:(aeon-to-yaki:ze let.dom)) pax)) - [%cast - [%$ p.mis]] - == + ?. ?=(%mime p.p.mis) + ~ + `[pax ((hard mime) q.q.p.mis)] + == + == == :: ++ silkify @@ -691,8 +666,7 @@ %+ turn cat |= [pax=path cay=cage] [pax (page-to-lobe:ze [p q.q]:cay)] - =- %_(+>.$ tag [- tag]) - ^- move + %- emit :* hen %pass [%mutating (scot %p her) syd (scot %da wen) ~] %f %exec our ~ [her syd %da wen] %tabl @@ -733,11 +707,8 @@ ^+ +> :: ~& %taking-patch ?: ?=(%| -.res) - %_ +>.$ - dok ~ - yel - [[hen %note '!' %rose [" " "" ""] leaf/"clay patch failed" p.res] yel] - == + =. dok ~ + (print-to-dill '!' %rose [" " "" ""] leaf/"clay patch failed" p.res) :: ~& %editing =+ ^- sim=(list (pair path misu)) ?~ dok @@ -795,38 +766,31 @@ =+ can=(mo sim) :: ~& %forming-ergo :: =- ~& %formed-ergo - - %_ +>.$ - dok ~ - tag - :_ tag - :* hen %pass [%ergoing (scot %p her) syd ~] %f - %exec our ~ [her syd %da now] %tabl - ^- (list (pair silk silk)) - %+ turn (~(tap in sum)) - |= a=path - ^- (pair silk silk) - :- [%$ %path !>(a)] - =+ b=(~(got by can) a) - ?: ?=(%del -.b) - [%$ %null !>(~)] - =+ (~(get by mim.u.dok) a) - ?^ - [%$ %mime !>(u.-)] - :+ %cast %mime - =+ (need (need (read-x:ze let.dom a))) - ?: ?=(%& -<) - [%$ p.-] - (lobe-to-silk:ze a p.-) - == + %- emit(dok ~) + :* hen %pass [%ergoing (scot %p her) syd ~] %f + %exec our ~ [her syd %da now] %tabl + ^- (list (pair silk silk)) + %+ turn (~(tap in sum)) + |= a=path + ^- (pair silk silk) + :- [%$ %path !>(a)] + =+ b=(~(got by can) a) + ?: ?=(%del -.b) + [%$ %null !>(~)] + =+ (~(get by mim.u.dok) a) + ?^ - [%$ %mime !>(u.-)] + :+ %cast %mime + =+ (need (need (read-x:ze let.dom a))) + ?: ?=(%& -<) + [%$ p.-] + (lobe-to-silk:ze a p.-) == :: ++ take-ergo |= res=gage ^+ +> ?: ?=(%| -.res) - %_ +>.$ - yel - [[hen %note '!' %rose [" " "" ""] leaf/"clay ergo failed" p.res] yel] - == + (print-to-dill '!' %rose [" " "" ""] leaf/"clay ergo failed" p.res) ?~ hez ~|(%no-sync-duct !!) =+ ^- can=(map path (unit mime)) %- mo ^- mode @@ -839,33 +803,27 @@ ~ `((hard mime) q.q.mim) =+ mus=(must-ergo (turn (~(tap by can)) head)) - %= +>.$ - reg - %- welp :_ reg - %+ turn (~(tap by mus)) - |= [pot=term len=@ud pak=(set path)] - :* u.hez %ergo pot - %+ turn (~(tap in pak)) - |= pax=path - [(slag len pax) (~(got by can) pax)] - == + %- emil + %+ turn (~(tap by mus)) + |= [pot=term len=@ud pak=(set path)] + :* u.hez %give %ergo pot + %+ turn (~(tap in pak)) + |= pax=path + [(slag len pax) (~(got by can) pax)] == :: ++ checkout-ankh |= hat=(map path lobe) ^+ +> - %_ +>.$ - tag - :_ tag - :* hen %pass [%patching (scot %p her) syd ~] %f - %exec our :^ ~ [her syd %da now] %tabl - ^- (list (pair silk silk)) - %+ turn (~(tap by hat)) - |= [a=path b=lobe] - ^- (pair silk silk) - :- [%$ %path-hash !>([a b])] - (lobe-to-silk:ze a b) - == + %- emit + :* hen %pass [%patching (scot %p her) syd ~] %f + %exec our :^ ~ [her syd %da now] %tabl + ^- (list (pair silk silk)) + %+ turn (~(tap by hat)) + |= [a=path b=lobe] + ^- (pair silk silk) + :- [%$ %path-hash !>([a b])] + (lobe-to-silk:ze a b) == :: ++ apply-foreign-update :: apply subscription @@ -1016,34 +974,10 @@ !! == :: - ++ rand-to-rant - |= rut=rand - ^+ +> - ~| [%x-over-network-not-implemented [p q -.r]:rut hen] !! - :: =- %_(+>.$ tag [- tag]) - :: :* hen - :: [%foreign-plops (scot %p our) (scot %p her) syd ~] - :: %f %exec our ~ %tabl - :: ^- (list (pair silk silk)) - :: %+ turn (~(tap in pop)) - :: |= a=plop - :: ?- -.a - :: %delta - :: :- [%$ %blob !>([%delta p.a q.a *cage])] - :: [%vale p.r.a q.r.a] - :: :: - :: %direct - :: :- [%$ %blob !>([%direct p.a *cage])] - :: [%vale p.q.a q.q.a] - :: :: - :: %indirect ~| %foreign-indirect-not-implemented !! - :: == - :: == - :: ++ validate-x |= [car=care cas=case pax=path peg=page] ^+ +> - =- %_(+>.$ tag [- tag]) + %- emit :* hen %pass [%foreign-x (scot %p our) (scot %p her) syd car (scot cas) pax] %f %exec our ~ [her syd cas] @@ -1065,8 +999,8 @@ ++ validate-plops |= [cas=case lem=(unit ,@da) pop=(set plop)] ^+ +> - =- %_(+>.$ tag [- tag]) =+ lum=(scot %da (fall lem *@da)) + %- emit :* hen %pass [%foreign-plops (scot %p our) (scot %p her) syd lum ~] %f %exec our ~ [her syd cas] %tabl @@ -1074,15 +1008,8 @@ %+ turn (~(tap in pop)) |= a=plop ?- -.a - %delta - :- [%$ %blob !>([%delta p.a q.a *page])] - [%vale p.r.a q.r.a] - :: - %direct - :- [%$ %blob !>([%direct p.a *page])] - [%vale p.q.a q.q.a] - :: - %indirect ~| %foreign-indirect-not-implemented !! + %delta [[%$ %blob !>([%delta p.a q.a *page])] [%vale p.r.a q.r.a]] + %direct [[%$ %blob !>([%direct p.a *page])] [%vale p.q.a q.q.a]] == == :: @@ -1101,7 +1028,6 @@ ?- -.bol %delta [-.bol p.bol q.bol p.cay q.q.cay] %direct [-.bol p.bol p.cay q.q.cay] - %indirect ~| %plop-indirect-not-implemented !! == %^ apply-foreign-update lem @@ -1219,6 +1145,15 @@ (bleb p.i.xiq +(u.nab) ?:(p.q.i.xiq ~ `[u.nab u.huy])) == == + ++ drop-me + ^+ . + ?~ mer + . + %- emit(mer ~) ^- move :* + hen.u.mer %give %mere %| %user-interrupt + >sor.u.mer< >our< >cas.u.mer< >gem.u.mer< ~ + == + :: ++ ze |% ++ aeon-to-tako ~(got by hit.dom) @@ -1231,7 +1166,6 @@ ?- - %delta p.q %direct p.q - %indirect p.q == ++ lobe-to-silk :: XX maybe move hoo{n,k} stuff here |= [pax=path lob=lobe] @@ -1249,7 +1183,6 @@ =+ bol=(~(got by lat.ran) lob) ?- -.bol %direct [%volt q.bol] - %indirect [%volt q.bol] %delta ~| delta/q.q.bol [%pact $(lob q.q.bol) [%volt r.bol]] == @@ -1482,7 +1415,6 @@ ?- -.gar %direct (~(put in far) lob) %delta (~(put in $(lob q.q.gar)) lob) - %indirect (~(put in $(lob r.gar)) lob) == :: ++ data-twixt-takos @@ -1530,6 +1462,15 @@ ~ ```[%null [%atom %n] ~] :: + ++ read-v + |= [yon=aeon pax=path] + ^- (unit (unit ,[%dome (hypo dome)])) + ?: (lth yon let.dom) + ~ + ?: (gth yon let.dom) + `~ + ``[%dome -:!>(*dome) dom] + :: ++ read-x |= [yon=aeon pax=path] ^- (unit (unit (each cage lobe))) @@ -1556,8 +1497,6 @@ =+ bol=(lobe-to-blob u.lob) ?: ?=(%direct -.bol) ((hard ,@t) q.q.bol) - ?: ?=(%indirect -.bol) - ((hard ,@t) q.q.bol) ?> ?=(%delta -.bol) =+ txt=$(u.lob q.q.bol) ?> ?=(%txt-diff p.r.bol) @@ -1611,6 +1550,8 @@ ?^(r.mun [~ ~] [~ ~ %& %aeon !>(yon)]) ?: ?=(%u p.mun) (read-u yon r.mun) + ?: ?=(%v p.mun) + (bind (read-v yon r.mun) (curr bind (cury same %&))) ?: ?=(%x p.mun) (read-x yon r.mun) ?: ?=(%y p.mun) @@ -1645,7 +1586,7 @@ :: %- ~(run by hat) :: |= a=lobe :: =+ (lobe-to-blob a) - :: ?-(-.- %direct q.-, %indirect q.-, %delta !!) + :: ?-(-.- %direct q.-, %delta !!) ::`+>.$(ank.dom (checkout-ankh -), let.dom yon) :: ++ update-lat :: update-lat:ze @@ -1716,7 +1657,17 @@ ^+ ..me ?: don ..me(mer `dat) - ..me(mer ~, reg :_(reg [hen %mere gon.dat])) + =. mer ~ + => (emit hen.dat %give %mere gon.dat) + ..me + :: + ++ emit + |= move + %_(+> ..ze (^emit +<)) + :: + ++ emil + |= (list move) + %_(+> ..ze (^emil +<)) :: ++ route |= [sat=term res=(each riot gage)] @@ -1759,7 +1710,7 @@ :: ++ fetch-ali ^+ . - =- %_(+ tag [- tag], wat.dat %ali) + %- emit(wat.dat %ali) :* hen %pass [%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %ali ~] %c %warp [p.bob p.ali] q.ali @@ -1937,7 +1888,7 @@ ++ diff-bas |= [nam=term yak=yaki oth=(trel ship desk case) yuk=yaki] ^+ +> - =- %_(+>.$ tag [- tag]) + %- emit :* hen %pass =+ (cat 3 %diff- nam) [%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali - ~] @@ -1982,15 +1933,18 @@ |= [pax=path lob=lobe] (~(has by q.bas.dat) pax) =. cal.dal.dat - %- mo - %+ skim (~(tap by q.bas.dat)) + %- mo ^- (list (pair path lobe)) + %+ murn (~(tap by q.bas.dat)) |= [pax=path lob=lobe] + ^- (unit (pair path lobe)) =+ a=(~(get by q.ali.dat) pax) =+ b=(~(get by q.bob.dat) pax) - ?& ?=(^ a) - !=([~ lob] a) - =([~ lob] b) - == + ?. ?& ?=(^ a) + !=([~ lob] a) + =([~ lob] b) + == + ~ + `[pax +.a] =. can.dal.dat p.can =. old.dal.dat %- mo ^- (list ,[path ~]) @@ -2022,15 +1976,18 @@ |= [pax=path lob=lobe] (~(has by q.bas.dat) pax) =. cal.dob.dat - %- mo - %+ skim (~(tap by q.bas.dat)) + %- mo ^- (list (pair path lobe)) + %+ murn (~(tap by q.bas.dat)) |= [pax=path lob=lobe] + ^- (unit (pair path lobe)) =+ a=(~(get by q.ali.dat) pax) =+ b=(~(get by q.bob.dat) pax) - ?& ?=(^ b) - !=([~ lob] b) - =([~ lob] a) - == + ?. ?& ?=(^ b) + !=([~ lob] b) + =([~ lob] a) + == + ~ + `[pax +.b] =. can.dob.dat p.can =. old.dob.dat %- mo ^- (list ,[path ~]) @@ -2046,7 +2003,7 @@ |- ^+ +.$ ?+ gem.dat ~| [%merge-weird-gem gem.dat] !! ?(%mate %meld) - =- %_(+.$ tag [- tag], wat.dat %merge) + %- emit(wat.dat %merge) :* hen %pass [%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %merge ~] %f %exec p.bob ~ [p.bob q.bob da/now] %tabl @@ -2080,7 +2037,7 @@ :: ++ build ^+ . - =- %_(+ tag [- tag], wat.dat %build) + %- emit(wat.dat %build) :* hen %pass [%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %build ~] %f %exec p.bob ~ [p.bob q.bob da/now] %tabl @@ -2119,7 +2076,7 @@ %- ~(urn by con) |= [pax=path *] (~(got by q.bas.dat) pax) - =. con :: add/del conflict + =. con :: change/del conflict %- ~(uni by con) %- mo ^- (list ,[path *]) %+ skim (~(tap by old.dal.dat)) @@ -2128,7 +2085,7 @@ ~| %strange-add-and-del !! (~(has by can.dob.dat) pax) - =. con :: add/del conflict + =. con :: change/del conflict %- ~(uni by con) %- mo ^- (list ,[path *]) %+ skim (~(tap by old.dob.dat)) @@ -2175,6 +2132,13 @@ [(lobe-to-mark u.-) u.-] [p q.q]:cay [(~(put by hat) pax p.bol) (~(put by lat) p.bol bol)] + :: ~& old=(~(run by old) mug) + :: ~& newdal=(~(run by new.dal.dat) mug) + :: ~& newdob=(~(run by new.dob.dat) mug) + :: ~& caldal=(~(run by cal.dal.dat) mug) + :: ~& caldob=(~(run by cal.dob.dat) mug) + :: ~& hot=(~(run by hot) mug) + :: ~& cas=(~(run by cas) mug) =+ ^- hat=(map path lobe) :: all the content %- ~(uni by old) %- ~(uni by new.dal.dat) @@ -2183,6 +2147,7 @@ %- ~(uni by cal.dob.dat) %- ~(uni by hot) cas + :: ~& > hat=(~(run by hat) mug) =+ ^- del=(map path ,?) (~(run by (~(uni by old.dal.dat) old.dob.dat)) |=(~ %|)) =. gon.dat [%& (sa (turn (~(tap by con)) head))] @@ -2201,11 +2166,11 @@ :: ++ checkout ^+ . - =- %_(+ tag [- tag], wat.dat %checkout) =+ ^- val=beak ?: ?=(%init gem.dat) [p.ali q.ali cas.dat] [p.bob q.bob da/now] + %- emit(wat.dat %checkout) :* hen %pass [%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %checkout ~] %f %exec p.bob ~ val %tabl @@ -2244,7 +2209,6 @@ :: ++ ergo ^+ . - =- %_(+ tag [- tag], wat.dat %ergo) =+ ^- sum=(set path) =+ (must-ergo (turn (~(tap by erg.dat)) head)) =+ (turn (~(tap by -)) (corl tail tail)) @@ -2256,6 +2220,7 @@ ?: ?=(%init gem.dat) [p.ali q.ali cas.dat] [p.bob q.bob da/now] + %- emit(wat.dat %ergo) :* hen %pass [%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %ergo ~] %f %exec p.bob ~ val %tabl @@ -2292,17 +2257,15 @@ (error:he %ergo-no-hez ~) ?: ?=(%| -.gon.dat) +>.$ - %* done he - reg - =+ mus=(must-ergo (turn (~(tap by erg.dat)) head)) - %- welp :_ reg - %+ turn (~(tap by mus)) - |= [pot=term len=@ud pak=(set path)] - :* u.hez %ergo pot - %+ turn (~(tap in pak)) - |= pax=path - [(slag len pax) (~(got by can) pax)] - == + =+ mus=(must-ergo (turn (~(tap by erg.dat)) head)) + =< done:he + %- emil + %+ turn (~(tap by mus)) + |= [pot=term len=@ud pak=(set path)] + :* u.hez %give %ergo pot + %+ turn (~(tap in pak)) + |= pax=path + [(slag len pax) (~(got by can) pax)] == :: ++ he @@ -2350,7 +2313,6 @@ =+ bol=(~(got by lat.ran) lob) ?- -.bol %direct [%volt q.bol] - %indirect [%volt q.bol] %delta [%pact $(lob q.q.bol) [%volt r.bol]] == :: @@ -2408,6 +2370,20 @@ %boat :_ ..^$ [hen %give %hill (turn (~(tap by mon.ruf)) head)]~ + :: + %drop + =^ mos ruf + =+ den=((de now hen ruf) [. .]:p.q.hic q.q.hic) + abet:drop-me:den + [mos ..^$] + :: + %info + ?: =(%$ q.q.hic) + [~ ..^$] + =^ mos ruf + =+ den=((de now hen ruf) [. .]:p.q.hic q.q.hic) + abet:(exec:den now r.q.hic) + [mos ..^$] :: %init :_ %_ ..^$ @@ -2422,14 +2398,6 @@ :: ~ == - :: - %info - ?: =(%$ q.q.hic) - [~ ..^$] - =^ mos ruf - =+ den=((de now hen ruf) [. .]:p.q.hic q.q.hic) - abet:(exec:den now r.q.hic) - [mos ..^$] :: %into =. hez.ruf `hen diff --git a/arvo/dill.hoon b/arvo/dill.hoon index 42c21e764..e5ce33127 100644 --- a/arvo/dill.hoon +++ b/arvo/dill.hoon @@ -216,6 +216,7 @@ =. +> (sync %home our %base) =. +> ?. ?=(?(%king %czar) can) +> (sync %kids our %base) + =. +> autoload =. +> peer |- ^+ +>+ ?~ myt +>+ @@ -255,7 +256,18 @@ %_ +>.$ moz :_ moz - [hen %pass ~ %g %deal [our our] ram %poke %hood-sync -:!>(syn) syn] + :* hen %pass /sync %g %deal [our our] + ram %poke %hood-sync -:!>(syn) syn + == + == + :: + ++ autoload + %_ . + moz + :_ moz + :* hen %pass /autoload %g %deal [our our] + ram %poke %kiln-start-autoload [%cube ~ [%atom %n]] ~ + == == :: ++ pump :: send diff ack diff --git a/arvo/eyre.hoon b/arvo/eyre.hoon index 8d0b4f3c1..24451eff5 100644 --- a/arvo/eyre.hoon +++ b/arvo/eyre.hoon @@ -148,6 +148,7 @@ :: ++ fcgi :: credential caboose |= [quy=quay ced=cred] ^- coin + ~& fcgi/[`@uv`(mug ced) quy] :* %many [%$ %ta ~] [%blob ced] @@ -431,13 +432,14 @@ urb.waspFrom = function(sel,attr){ Array.prototype.map.call(document.querySelectorAll(sel), function(ele){ - if(!ele[attr] || (new URL(ele[attr])).host != document.location.host) return; + if(!ele[attr] || (new URL(ele[attr])).host != document.location.host) + return; var xhr = new XMLHttpRequest() xhr.open("HEAD", ele[attr]) xhr.send() xhr.onload = function(){ - var tag = JSON.parse(this.getResponseHeader("etag")) - if(tag) urb.wasp(tag) + var dep = this.getResponseHeader("etag") + if(dep) urb.wasp(JSON.parse(dep.substr(2))) }})} if(urb.wasp){urb.waspFrom('script','src'); urb.waspFrom('link','href')} ''' @@ -771,7 +773,7 @@ == ~| q.q.cay =+ ((hard ,[mit=mite rez=octs]) q.q.cay) - =+ dep=(crip (pojo %s (scot %uv p.sih))) + =+ dep=(crip "W/{(pojo %s (scot %uv p.sih))}") (give-thou 200 ~[etag/dep content-type/(moon mit)] ~ rez) == == diff --git a/arvo/ford.hoon b/arvo/ford.hoon index 75a622e5e..0ee549c9d 100644 --- a/arvo/ford.hoon +++ b/arvo/ford.hoon @@ -499,6 +499,19 @@ ++ dash :: process cache |= cof=cafe ^+ +> + ~? | + :+ %dash (lent (skim (~(tap in p.cof)) |=(a=calx ?=(%bake -.a)))) + =. q.cof (~(dif by q.cof) jav.bay) + =+ num=10 + %. |= a=(list calx) + =+ len=(lent a) + =- [len (scag num (turn a f)) ?:((gth len num) %etc ~)] + =+ dewe=|=(beam +<(s ?+(s s [@ %web *] t.t.s))) + f=|=(b=calx [-.b ?+(-.b ~ %bake [p.q.b (tope (dewe q.q.b))])]) + %~ run by + =< `(jar term calx)`(~(rep by q.cof) .) + |= [[* a=calx] b=(jar term calx)] + (~(add ja b) -.a a) %_(+> jav.bay q.cof) :: ++ diff :: diff @@ -1866,7 +1879,6 @@ :: ++ load :: highly forgiving |= old=axle - ::=. pol.old (~(run by pol.old) |=(baby +<(jav ~))) ..^$(+>- old) ::=. old :: ?. ?=([%0 *] old) old :: remove at 1 diff --git a/arvo/gall.hoon b/arvo/gall.hoon index 05664dd45..645ec68be 100644 --- a/arvo/gall.hoon +++ b/arvo/gall.hoon @@ -1122,6 +1122,7 @@ %deal `%g %exec `%f %flog `%d + %drop `%c %info `%c %merg `%c %mont `%c diff --git a/arvo/hoon.hoon b/arvo/hoon.hoon index daa11a05b..fbdaf7cda 100644 --- a/arvo/hoon.hoon +++ b/arvo/hoon.hoon @@ -696,6 +696,7 @@ $(a t.a) :: ++ murn :: maybe transform + ~/ %murn |* [a=(list) b=$+(* (unit))] |- ?~ a ~ @@ -705,6 +706,7 @@ [i=u.c t=$(a t.a)] :: ++ reap :: replicate + ~/ %reap |* [a=@ b=*] |- ^- (list ,_b) ?~ a ~ @@ -727,6 +729,7 @@ $(a t.a, b b(+<+ (b i.a +<+.b))) :: ++ skid :: separate + ~/ %skid |* [a=(list) b=$+(* ?)] |- ^+ [p=a q=a] ?~ a [~ ~] diff --git a/arvo/zuse.hoon b/arvo/zuse.hoon index f6d71674f..08b2e31ae 100644 --- a/arvo/zuse.hoon +++ b/arvo/zuse.hoon @@ -1836,7 +1836,6 @@ ++ blob :: fs blob $% [%delta p=lobe q=[p=mark q=lobe] r=page] :: delta on q [%direct p=lobe q=page] :: immediate - [%indirect p=lobe q=page r=lobe s=page] :: both == :: ++ boat (map (pair bone wire) (trel bean ship path)) :: outgoing subs ++ boon :: fort output @@ -2360,6 +2359,7 @@ == :: ++ kiss-clay :: in request ->$ $% [%boat ~] :: pier rebooted + [%drop p=@p q=@tas] :: cancel pending merge [%info p=@p q=@tas r=nori] :: internal edit [%init p=@p] :: report install [%into p=@tas q=? r=mode] :: external edit diff --git a/gen/hood/autoload.hoon b/gen/hood/autoload.hoon new file mode 100644 index 000000000..5476276a1 --- /dev/null +++ b/gen/hood/autoload.hoon @@ -0,0 +1,13 @@ +:: +:::: /hoon/autoload/hood/gen + :: +/? 314 +:: +:::: + !: +:- %say +|= $: [now=@da eny=@uvI bec=beak] + [arg=?(~ [? ~]) ~] + == +:- %kiln-autoload +`(unit ,?)`?~(arg ~ `-.arg) diff --git a/lib/base.css b/lib/base.css index bf2f4752e..6a5cd5955 100644 --- a/lib/base.css +++ b/lib/base.css @@ -70,113 +70,552 @@ font-weight: 500; font-style: normal; } -@font-face { - font-family: "scp"; - src: url("//storage.googleapis.com/urbit-extra/scp-bold.woff"); - font-weight: 600; - font-style: normal; +body, +html { + font-family: "bau", "Helvetica Neue", helvetica, arial, sans-serif; } -@font-face { - font-family: "scp"; - src: url("//storage.googleapis.com/urbit-extra/scp-black.woff"); - font-weight: 700; - font-style: normal; -} - -html, -body { - margin: 0; - padding: 0; -} - -html, -input, -button, -body { - font-family: "bau"; - font-size: 18px; -} - -pre, code, -.mono { - font-family:"scp"; +pre, +li:before, +.spin, +#bred a, +h3.time { + font-family: "scp", "Courier New", courier, monospace; } - -#c { - width: 32rem; - margin-left: -16rem; - position: absolute; - left: 50%; +body, +html { + font-size: 18px; + font-weight: 400; + line-height: 1.6rem; + -webkit-text-size-adjust: none; +} +a { + color: #000; + text-decoration: none; + border-bottom: 2px solid #000; + display: inline-block; + line-height: 0.8rem; +} +hr { + display: inline-block; + width: 6rem; + border: 0; + border-top: 2px solid #f4f4f4; } - h1 { - font-size: 1.6rem; - font-weight: 500; + margin-top: 4rem; } - -h1:after { - content: "\2014"; - margin-left: 1rem; -} - -#c pre { - font-size: .6rem; +h2, +h3 { + margin: 0; margin-top: 2rem; } - -#pass { - width: 32rem; -} - -button { - border: .3rem solid #000; - background-color: #fff; - font-size: 1rem; - padding: .3rem; +h1, +h2, +h3, +h4, +strong { font-weight: 500; } - -.sig { - font-weight: 400; - font-size: 2rem; - display: inline; - vertical-align: middle; +h4 { + margin-bottom: 0.3rem; } - -span#ship { - font-family: 'bau'; - font-weight: 400; - font-size: 1.2rem; - text-transform: uppercase; - letter-spacing: .1rem; +h5 { + font-style: italic; + font-weight: 200; + margin: 0; +} +h1 code, +h2 code, +h3 code { + font-size: inherit; + padding: 0.3rem; +} +pre, +code { + font-size: 0.8rem; +} +pre { + background-color: #f5f5f5; + padding: 0.3rem; + margin-left: -0.3rem; +} +code { + line-height: 1.2rem; + background-color: #f4f4f4; + margin-top: -0.05rem; + padding: 0.2rem; display: inline-block; - min-width: 1rem; } - -input { - font-family: 'scp'; +ul { + list-style: none; + padding: 0; +} +li:before { + content: "+"; + padding-right: 0.3rem; + font-size: 0.8rem; + font-weight: 600; +} +#nav, +#cont { + left: 50%; +} +#cont { + width: 42rem; + margin-left: -21rem; + background-color: #fff; + z-index: 1; +} +#nav { + position: fixed; + top: 0rem; + width: 57rem; + padding-top: 1rem; + z-index: 0; + margin-left: -32rem; + overflow: hidden; + opacity: 0; + transition: opacity 1s ease-in-out; +} +#nav.moving { + opacity: 1; + transition: opacity 0.3s ease-in-out; +} +#nav:hover { + opacity: 1; + transition: opacity 0.3s ease-in-out; +} +#cont { + position: absolute; + top: 0; + margin-bottom: 9rem; +} +.loading { + display: inline-block; +} +.spin { + color: #fff; + padding: 0.6rem; + font-size: 0.7rem; + font-weight: 600; + letter-spacing: 0.1rem; + z-index: 3; +} +.loading > .spin { + background-color: #555; +} +#body .loading > .spin { + background-color: #000; +} +.spin.state-0:before { + content: "\2599"; +} +.spin.state-1:before { + content: "\259B"; +} +.spin.state-2:before { + content: "\259C"; +} +.spin.state-3:before { + content: "\259F"; +} +#load.load { + display: inline-block; + font-weight: 500; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(10,10,10,0.4); + opacity: 1; + transition: opacity 1s ease-in-out; + z-index: 4; +} +img.logo { + height: 2rem; + width: 2rem; +} +h3.time { + margin-top: 0.3rem; + font-size: 0.7rem; + font-weight: 200; +} +#nav .links > div { + display: inline-block; + vertical-align: top; +} +#nav #sibs { + width: 8rem; + transition: margin-top 0.3s ease-in-out; + overflow: hidden; +} +#nav #sibs > div { + height: 20px; + margin-bottom: 4px; +} +.focus #sibs { + margin-top: 0 !important; + transition: margin-top 0.3s ease-in-out; +} +#nav a, +.list > li > a { + text-transform: uppercase; + font-size: 0.7rem; + font-weight: 200; + letter-spacing: 1px; + white-space: nowrap; +} +.list > li > a { + border-bottom: none; + margin-bottom: 0.3rem; +} +#nav a, +.list > li > a h1 { + border-bottom: 1px solid #000; + margin-right: 0.3rem; +} +#nav .active a { + font-weight: 500; + text-decoration: none; +} +#up { + padding-right: 1rem; + margin-top: -0.3rem; +} +#sides { + float: right; +} +#sides a { + margin-right: 0.6rem; +} +#nav .arow-up, +#nav .arow-next, +#nav .arow-prev { + width: 0; + height: 0; + border: 0.4rem solid transparent; +} +#nav .arow-up { + border-bottom: 0.6rem solid #000; +} +#nav .arow-next { + border-left: 0.6rem solid #000; +} +#nav .arow-prev { + border-right: 0.6rem solid #000; +} +#bred { + width: 5rem; + padding-right: 1rem; + text-align: right; + font-size: 0.6rem; + white-space: nowrap; + overflow: hidden; +} +#bred a { + text-transform: lowercase; + vertical-align: top; +} +#bred > div { + float: right; +} +#bred > div > div { + display: inline-block; + margin-top: -0.2rem; +} +#bred a, +#kids a { + margin-right: 0.3rem; +} +#bred a { + margin-left: 0.3rem; +} +.short { + width: 32rem; +} +.list h1, +.list li a > div p { + margin: 0; +} +.list li a > div, +.list li a > div p { display: inline; } - -span#ship, -input { - border: none; - padding: .3rem; - outline: none; - border-bottom: 3px solid #555; +.list li a > div p { + margin-left: 0.3rem; +} +.list li a > div p:first-child { + margin-left: 0; +} +.list li a > div p code { + font-size: 0.7rem; + font-weight: 400; + text-transform: none; +} +.list li a h1 code { + text-transform: lowercase; + border-bottom: 1px solid #000; +} +.list li a code { + padding: 0.2rem; +} +.list h1, +.list li a > div div { + display: inline; +} +.list li a > div div { + margin-left: 0.6rem; + overflow: hidden; +} +.list h1 { + font-size: 0.7rem; +} +.list.posts .post { + margin-bottom: 2rem; +} +.list.posts .post h1 { + text-transform: none; + font-size: 1.6rem; + line-height: 1.8rem; + margin-bottom: 1rem; + display: block; +} +.list.posts .post h2 { + font-size: 0.7rem; + font-weight: 400; + line-height: 1rem; + margin-top: 0; +} +.list.posts li.post:before { + content: ""; +} +div.root h1 { + margin-bottom: 2rem; +} +div.root .list .sub { + margin-left: 0; + margin-right: 0.6rem; +} +div.root > p { + width: 27rem; + margin-top: 2rem; +} +h2.sub { + font-size: 0.7rem; + font-weight: 400; + line-height: 1rem; + letter-spacing: 1px; + margin-top: 0; + text-transform: uppercase; +} +div.post h1 { + font-size: 2.8rem; + line-height: 4rem; + display: block; + margin-top: 1rem; + margin-bottom: 1rem; +} +div.post h2 { + line-height: 1rem; + letter-spacing: 1px; +} +div.post h2 { + margin-top: 4rem; +} +div.post h2 { + font-size: 1.2rem; + font-weight: 500; +} +div.post p { + font-size: 1.2rem; + line-height: 2.2rem; +} +div.post li p { + display: inline; +} +div.toc { + margin-top: 3rem; + margin-bottom: 3rem; +} +div.toc h1, +div.toc h2, +div.toc h3, +div.toc h4 { + font-weight: 400; + cursor: pointer; + text-decoration: underline; + font-size: 1.2rem; + margin-top: 0.3rem; + margin-bottom: 0.3rem; +} +div.toc h2 { + margin-left: 1rem; +} +div.toc h3 { + margin-left: 2rem; +} +div.toc h4 { + margin-left: 3rem; +} +div.toc h1.t { + font-weight: 500; + font-size: 2rem; + text-decoration: none; + margin-bottom: 2rem; +} +#body .CodeMirror { + font-size: 0.8rem; + line-height: 1rem; +} +#body .CodeMirror .cm-header { + font-weight: 200; +} +#body .CodeMirror-gutters { + background-color: #fff; + padding-right: 1rem; + margin-left: -1rem; +} +.error { + color: #f91733; +} +.warning { + background-color: #ff3537; + padding: 1rem; + width: 18rem; + margin: 2rem 0; + color: #fff; +} +.warning a { + color: inherit; + border-color: #fff; +} +.warning h1 { + font-size: 1rem; +} +.warning h1, +.warning p { + margin: 0 0.3rem; +} +.warning.w { + width: auto; +} +@media only screen and (max-width: 1170px) { + #nav, + #nav > div, + #nav.up, + #nav.top, + #nav > .focus { + transform: translate3d(0, 0, 0); + -webkit-transform: translate3d(0, 0, 0); + } + #nav { + position: fixed; + top: 0; + opacity: 1; + width: 42rem; + margin-left: -21rem; + background-color: #fff; + z-index: 2; + } + #nav.m-down, + #nav.m-up { + position: absolute; + } + #nav.m-down.m-fixed { + position: fixed; + top: 0; + } + #nav > div { + max-height: 1rem; + overflow: hidden; + transition: max-height 0.3s ease-in-out; + } + #nav > .focus { + max-height: 40rem; + transition: max-height 0.3s ease-in-out; + } + #cont { + top: 3rem; + } +} +@media only screen and (min-width: 320px) and (max-width: 1024px) { + body, + html { + font-size: 21px; + } + #nav, + #cont { + width: 94%; + padding-left: 3%; + margin-left: 0; + } + #nav { + position: fixed; + padding-top: 0; + opacity: 1; + left: 0; + background-color: #fff; + z-index: 2; + } + #nav > div { + max-height: 1.4rem; + } + #nav > div { + padding-top: 0.6rem; + } + #nav #sibs { + width: 18rem; + } + #nav #sibs > div { + height: 20px; + line-height: 20px; + } + #nav a { + display: inline-block; + font-size: 0.7rem; + } + #nav #sides { + float: right; + } + #nav .arow-up, + #nav .arow-next, + #nav .arow-prev { + margin-right: 0; + border: 0.4rem solid transparent; + } + #nav .arow-up { + border-bottom: 0.6rem solid #000; + } + #nav .arow-next { + border-left: 0.6rem solid #000; + } + #nav .arow-prev { + margin-right: 1rem; + border-right: 0.6rem solid #000; + } + #cont { + top: 3rem; + left: 0; + padding-bottom: 9rem; + } + #cont h1:first-child { + margin-top: 0; + } + .short { + width: 100%; + } } - @media only screen and (min-device-width: 320px) and (max-device-width: 480px) { - #c { - width: 16rem; - margin-left: -8rem; + #nav > div { + max-height: 1.6rem; } - #pass { - width: 16rem; + #nav a { + font-size: 0.7rem; } - input { - -webkit-appearance: none; - border-radius: 0; + #nav #sibs > div { + height: 20px; + line-height: 20px; } -} +} \ No newline at end of file diff --git a/lib/kiln.hoon b/lib/kiln.hoon index 44c022ded..54d21eda7 100644 --- a/lib/kiln.hoon +++ b/lib/kiln.hoon @@ -10,6 +10,7 @@ ++ kiln-pith :: $: rem=(map desk kiln-desk) :: syn=(map kiln-sync ,[let=@ud ust=bone]) :: + autoload=? :: == :: ++ kiln-desk :: per-desk state $: auto=? :: escalate on failure @@ -54,6 +55,7 @@ => |% :: arvo structures ++ card :: $% [%exec wire @p ~ [beak silk]] :: + [%drop wire @p @tas] :: [%info wire @p @tas nori] :: [%mont wire @tas @p @tas path] :: [%ogre wire $|(@tas beam)] :: @@ -64,6 +66,8 @@ ++ pear :: poke fruit $% [%talk-command command:talk] :: [%kiln-merge kiln-merge] :: + [%helm-reload (list term)] :: + [%helm-reset ~] :: == :: ++ move (pair bone card) :: user-level move -- @@ -118,6 +122,10 @@ |= kiln-merge abet:abet:(merge:(work syd) ali sud gim) :: +++ poke-cancel + |= syd=desk + abet:(emit %drop /cancel our syd) +:: ++ do-info |= [mez=tape tor=toro] abet:(emit:(spam leaf/mez ~) %info /kiln our tor) @@ -148,6 +156,25 @@ =+ old=;;((map ,@da cord) (fall (file where) ~)) (foal where %sched !>((~(put by old) tym eve))) :: +++ poke-autoload + |= lod=(unit ,?) + ?^ lod + abet(autoload u.lod) + =< abet(autoload !autoload) + (spam leaf/"turning autoload o{?:(autoload "ff" "n")}" ~) +:: +++ poke-start-autoload + |= ~ + =< abet + %- emil + %+ turn + `(list term)`~[%ames %behn %clay %dill %eyre %ford %gall %zuse %hoon] + |= syd=term + ^- card + :* %warp /kiln/autoload/[syd] [our our] %home ~ + %next %y da/now /arvo/[syd]/hoon + == +:: ++ take |=(way=wire ?>(?=([@ ~] way) (work i.way))) :: general handler ++ take-mere :: |= [way=wire are=(each (set path) (pair term tang))] @@ -171,7 +198,7 @@ == abet:abet:(mere:(auto hos) mes) :: -++ take-writ :: +++ take-writ-sync :: |= [way=wire rot=riot] ?> ?=([@ @ @ ~] way) =+ ^- hos=kiln-sync @@ -181,6 +208,24 @@ == abet:abet:(writ:(auto hos) rot) :: +++ take-writ-autoload + |= [way=wire rot=riot] + ?> ?=([@ ~] way) + ?> ?=(^ rot) + =+ syd=(slav %tas i.way) + =. +>.$ + ?. autoload + +>.$ + ?: ?=(%hoon syd) + (emit %poke /kiln/reload/[syd] [our %hood] %helm-reset ~) + (emit %poke /kiln/reload/[syd] [our %hood] %helm-reload ~[syd]) + =. +>.$ + %- emit :* + %warp /kiln/autoload/[syd] [our our] %home ~ + %next %y da/now /arvo/[syd]/hoon + == + abet +:: ++ spam |= mes=(list tank) ((slog mes) ..spam) @@ -244,7 +289,7 @@ ?+ p.p.mes :* (render "sync failed" sud her syd) leaf/"please manually merge the desks with" - leaf/":+merge %{(trip syd)} {(scow %p her)} %{(trip sud)}" + leaf/"|merge %{(trip syd)} {(scow %p her)} %{(trip sud)}" leaf/"" leaf/"error code: {