Development "branch" goes back to production.

This commit is contained in:
C. Guy Yarvin 2013-10-06 00:44:07 -07:00
parent 875eec276d
commit 4de22868bb
12 changed files with 636 additions and 678 deletions

View File

@ -1,4 +1,4 @@
::
!:
:: ames (4a), networking
::
|= pit=vase
@ -236,7 +236,7 @@
0w0 :: 125, ~wyt
0w0 :: 126, ~nub
0w0 :: 127, ~med
0w20.GGLXx.aqxaQ.w4Iob.wdmmr :: 128, ~lyt, Daniel Nagy (fortuna)
0w0 :: 128, ~lyt
0w0 :: 129, ~dus
0w0 :: 130, ~neb
0w0 :: 131, ~rum
@ -1012,19 +1012,8 @@
^- [p=(list boon) q=fort]
zork:zank:(wind:(ho:(um p.soq) q.soq) [q.sup r.sup] ham)
::
++ went :: went:am
|= [soq=sock hen=duct cap=cape sup=soap] :: internal react
^- [p=(list boon) q=fort]
zork:(kick:(um p.soq) hen)
::
++ wert :: wert:am
|= [soq=sock hen=duct inx=@ud rot=riot] :: serve a file
^- [p=(list boon) q=fort]
=+ ruv=(need (~(get by rop.fox) [inx soq]))
(wise soq [/a hen] %ru [inx rot])
::
++ wise :: wise:am
|= [soq=sock hen=duct cha=@ta val=*] :: send a statement
|= [soq=sock hen=duct cha=path val=*] :: send a statement
^- [p=(list boon) q=fort]
zork:zank:(wool:(ho:(um p.soq) q.soq) hen cha val)
::
@ -1053,7 +1042,7 @@
==
::
++ done :: done:ho:um:am
|= [cha=@ta num=@ud] :: complete outgoing
|= [cha=path num=@ud] :: complete outgoing
^- [(unit duct) _+>]
=+ rol=(need (~(get by ryl.bah) cha))
=+ rix=(~(get by san.rol) num)
@ -1142,21 +1131,27 @@
+(+> (busk(diz (wast:diz ryn)) xong:diz pax))
::
++ coot :: coot:la:ho:um:am
|= [cha=@ta rum=race] :: update input race
|= [cha=path rum=race] :: update input race
^+ +>
=+ cun=(~(get by mis.rum) did.rum)
?~ cun
+>.$(raz.bah (~(put by raz.bah) cha rum))
=. +>.$ cock(kay p.u.cun, dam q.u.cun)
=. +>.$ ?. =(%good p.u.cun) +>.$
(emit [%milk [our her] cha did.rum r.u.cun])
?> ?=(^ r.u.cun)
%- emit
^- boon
:^ %milk
[our her]
`soap`[[p:sen:gus clon:diz] cha did.rum]
u.r.u.cun
%= $
mis.rum (~(del by mis.rum) did.rum)
did.rum +(did.rum)
==
::
++ dear :: dear:la:ho:um:am
|= [cha=@ta num=@ud dut=(unit)] :: interpret message
|= [cha=path num=@ud dut=(unit)] :: interpret message
^+ +>
=+ ^= rum ^- race
=+ rum=(~(get by raz.bah) cha)
@ -1177,7 +1172,7 @@
%bond
:: ~& [%bond q.fud r.fud]
?> =(p:sen:gus p.fud)
(dear q.fud r.fud ?-(kay ?(%dead %lost) ~, %good [~ s.fud]))
(dear q.fud r.fud ?-(kay %dead ~, %good [~ s.fud]))
::
%carp
=+ zol=(~(get by olz.weg) s.fud)
@ -1254,7 +1249,7 @@
:: ~& [%pong-no her]
[| +>.$]
:: ~& [%pong-yes now her]
[& (wool [/a hen] %pi ~)]
[& (wool [/a hen] /q/pi ~)]
::
++ thaw :: thaw:ho:um:am
^+ . :: wakeup bomb
@ -1277,7 +1272,7 @@
%= +>.$
bin
:_ bin
`boon`[%coke [our her] kay [[p:sen:gus clon:diz] u.p.yoh] u.hud]
`boon`[%coke [our her] [[p:sen:gus clon:diz] u.p.yoh] kay u.hud]
==
(busk xong:diz q.yoh)
::
@ -1290,7 +1285,7 @@
(busk xong:diz feh)
::
++ wool :: wool:ho:um:am
|= [hen=duct cha=@ta val=*] :: send a statement
|= [hen=duct cha=path val=*] :: send a statement
^+ +>
=+ ^= rol ^- rill
=+ rol=(~(get by ryl.bah) cha)
@ -1420,40 +1415,56 @@
:* [[~ %gold p.bon] [/c hen] [%init p.bon]]
[[~ %gold p.bon] hen [%init p.bon]]
[[~ %gold p.bon] [/a hen] [%kick now]]
=+ bos=(sein p.bon)
=. bos ?.(=(bos p.bon) bos ~zod)
?: =(~zod p.bon) ~
:~ [[~ %iron p.bon] [/c hen] [%pull bos %main ~[%main]]]
[[~ %iron p.bon] [/c hen] [%pull bos %spec ~[%spec]]]
[[~ %iron p.bon] [/c hen] [%pull bos %try ~[%try]]]
[[~ %iron p.bon] [/c hen] [%pull bos %arvo ~[%arvo]]]
==
~
:: =+ bos=(sein p.bon)
:: =. bos ?.(=(bos p.bon) bos ~zod)
:: ?: =(~zod p.bon) ~
:: :~ [[~ %iron p.bon] [/c hen] [%pull bos %main ~[%main]]]
:: [[~ %iron p.bon] [/c hen] [%pull bos %spec ~[%spec]]]
:: [[~ %iron p.bon] [/c hen] [%pull bos %try ~[%try]]]
:: [[~ %iron p.bon] [/c hen] [%pull bos %arvo ~[%arvo]]]
:: ==
==
::
%coke
:: ~& [%tz p.bon q.bon q.r.bon r.r.bon]
:_ fox
:~ [[~ %iron p.p.bon] s.bon [%went q.p.bon q.bon r.bon]]
:~ [[~ %iron p.p.bon] s.bon [%went q.p.bon r.bon]]
==
::
%mead :_(fox [[wru hen [%hear p.bon q.bon]] ~])
%milk
:: ~& [%rx p.bon q.bon r.bon !=(~ s.bon)]
?+ q.bon
:: ~& [%rx p.bon q.bon]
?> ?=([@ *] q.q.bon)
?: ?=(%r i.q.q.bon)
?> ?=([@ @ *] t.q.q.bon)
:_ fox
:~ :+ [~ %iron p.p.bon]
(claw p.p.bon)
[%wart q.p.bon q.bon r.bon s.bon]
=+ [cak=i.t.q.q.bon ven=i.t.t.q.q.bon]
:~ :- [~ %iron p.p.bon]
=+ neh=(claw p.p.bon)
?> ?=(^ neh)
:: ~& [%milk-waft [[ven `path`t.t.t.q.q.bon] t.neh]]
:- ?: =(%c ven)
?> =(%re cak)
[[%c `path`t.t.t.q.q.bon] hen]
[[ven `path`t.t.t.q.q.bon] t.neh]
`card`[%waft q.p.bon r.bon]
==
::
%hi :: %hi
?> ?=(%q i.q.q.bon)
?> ?=([@ *] t.q.q.bon)
?+ i.t.q.q.bon
:_ fox
:~ :+ [~ %iron p.p.bon]
(claw p.p.bon)
`card`[%wart q.p.bon i.t.q.q.bon t.t.q.q.bon r.bon]
==
::
%hi
%= $
bon
:+ %wine p.bon
^- tape
?~ s.bon
" is not feeling well"
?: =(0 u.s.bon)
?: =(0 r.bon)
=+ hum=(end 0 3 (mug r.bon))
?+ hum !!
0 " was thinking about something else"
@ -1465,71 +1476,29 @@
6 " likes to let others speak"
7 " sincerely wants to know more"
==
=+ str=(need ((sand %t) ((hard ,@) u.s.bon)))
=+ str=(need ((sand %t) ((hard ,@) r.bon)))
[':' ' ' (trip str)]
==
::
%ye :: %ye
:: ~& [%ye bon]
?~ s.bon [~ fox]
?> =(p.p.bon (sein q.p.bon))
=+ ^= paz ^- (list ,@p)
%+ skim pals:(~(um am [now fox]) p.p.bon)
|=(a=@p =(p.p.bon (sein a)))
:_ fox
%+ turn paz
|= him=ship
:+ [~ %iron p.p.bon]
[/a /a hen]
[%want him %yu [q.p.bon u.s.bon]]
::
%yu :: %yu
:: ~& [%yu bon]
?. =(q.p.bon (sein p.p.bon)) [~ fox]
?~ s.bon [~ fox]
=+ dof=((hard ,[p=@p q=@t]) u.s.bon)
$(bon [%milk [p.p.bon p.dof] %hi r.bon [~ q.dof]])
::
%pi :: %pi
%pi
$(bon [%wine p.bon " sent a ping"]) :: ping
::
%ta :: %ta
?~ s.bon [~ fox] :: register
=+ gox=((hard ,[p=@p q=@pG r=gens s=pass]) u.s.bon)
%ta
=+ gox=((hard ,[p=@p q=@pG r=gens s=pass]) r.bon)
=+ gus=(need (~(us go ton.fox) p.p.bon))
=^ wyl gus (born:gus now gox)
=. ton.fox (~(su go ton.fox) gus)
:_ fox
:~ :+ [~ %iron p.p.bon]
[/a /a hen]
[%want q.p.bon %to `(unit will)`wyl]
`card`[%want q.p.bon [%r %ta t.t.q.q.bon] `(unit will)`wyl]
==
::
%re :: %re
?~ s.bon [~ fox] :: file request
=+ gox=((hard ,[p=@ud q=riff]) u.s.bon)
=+ gut=(~(get by rop.fox) [p.gox p.bon])
=. rop.fox
?^ gut
?>(?=(~ q.q.gox) (~(del by rop.fox) [p.gox p.bon]))
?>(?=(^ q.q.gox) (~(put by rop.fox) [p.gox p.bon] q.gox))
:_ fox
:~ :+ [~ %iron p.p.bon]
[/c [%a (scot %p q.p.bon) (scot %ud p.gox) ~] hen]
[%warp p.p.bon q.gox]
:~ :- [~ %iron p.p.bon]
[[/c hen] `card`[%wart q.p.bon i.t.q.q.bon t.t.q.q.bon r.bon]]
==
::
%ru :: %ru
:_ fox
:~ :+ [~ %iron p.p.bon] :: file response
[/c (claw p.p.bon)]
[%wart q.p.bon q.bon r.bon s.bon]
==
::
%su :: %su
?~ s.bon [~ fox]
=+ gox=((hard ,@t) u.s.bon) :: suicide
!!
==
::
%ouzo
@ -1586,20 +1555,9 @@
%want
?> ?=(^ wru)
(~(wise am [now fox]) [q.u.wru p.fav] hen q.fav r.fav)
::
%went
(~(went am [now fox]) [q.u.wru p.fav] hen q.fav r.fav)
::
%wake
~(wake am [now fox])
::
%writ
?> ?=(^ wru)
?> ?=([@ @ ~] tea)
=+ fyg=(slay i.tea)
=+ haw=(slay i.t.tea)
?> &(?=([~ %$ %p @] fyg) ?=([~ %$ %ud @] haw))
(~(wert am [now fox]) [q.u.wru q.p.u.fyg] hen q.p.u.haw p.fav)
==
=> %_(. fox q.fuy)
=| out=(list move)

View File

@ -1,4 +1,4 @@
::
!:
:: batz (4b), shell
::
|= pit=vase
@ -156,20 +156,22 @@
[[[[~ %iron who] hen [%helo prot]] ~] +<.^^$]
%noop [~ +<.^^$]
%thee abet:lash:(lean tea hen fav)
%waft :: ~& [%leap-waft fav]
abet:lash:(lean tea hen fav)
%went ?.((fear tea) [~ +<.^^$] abet:lash:(lean tea hen fav))
%writ abet:lash:(loam tea hen +.fav)
%wart (lion hen +.fav)
==
::
++ loam :: loam:be
|= [tea=wire hen=duct rot=riot] :: handle response
|= [tea=wire hen=duct rot=riot] :: file response
^+ *fi
=+(a=(lead tea hen) abet:(gall:q.a p.a rot))
::
++ lion :: lion:be
|= [hen=duct him=@p cha=@ta num=@ud val=(unit ,*)] :: handle message
|= [hen=duct him=@p cak=@tas sic=path val=*] :: handle request
^- [(list move) brat]
=+ yes=(~(get by sev) cha)
=+ yes=(~(get by sev) cak)
?~ yes [~ +<.^^$]
=+ sey=(~(tap by u.yes) *(list ,[p=@ud q=@ud r=wire]))
|- ^- [(list move) brat]
@ -180,7 +182,7 @@
=< abet
=< abet
%- pong:(ox:(past:(fest p.i.sey hen) q.i.sey) r.i.sey)
[%wart him cha num val]
[%wart him cak sic val]
=^ vun +<.^^^$ $(sey t.sey)
[(weld von vun) +<.^^^$]
::
@ -349,6 +351,10 @@
?~ rot
%_(+>.$ ..ra (warn (spud (meat kit))), s.orb [%r ~])
=+ tyk=`kite`[p.p.u.rot q.p.u.rot r.kit r.p.u.rot q.u.rot]
?. =(kit tyk)
~& [%kit kit]
~& [%tyk tyk]
!!
?> =(kit tyk)
+>.$(p.orb (~(del by p.orb) q.p.u.dup))
::
@ -662,14 +668,14 @@
[s.kit ~ %& p.kit q.kit t.kit]
::
++ gump :: message server
|= [ton=? cha=@tas gyp=@ud ted=@ud lap=wire]
|= [ton=? cav=@ta gyp=@ud ted=@ud lap=wire]
^+ +>
=+ ^= yes ^- (set ,[p=@ud q=@ud r=wire])
=+ yes=(~(get by sev) cha)
=+ yes=(~(get by sev) cav)
?~(yes ~ u.yes)
%_ +>.$
sev
%+ ~(put by sev) cha
%+ ~(put by sev) cav
?: ton
(~(put in yes) gyp ted lap)
(~(del in yes) gyp ted lap)
@ -740,6 +746,9 @@
%ok (gram [/c ~] %info who p.gud q.gud)
%sc good:+>.^$(sac ?~(p.gud ?~(sac ~ +.sac) [u.p.gud sac]))
%sp !!
%sq =+ tea=(bist %ma r.gud)
(gram [/a [%b tea] ~] [%want p.gud [%q q.gud %b tea] s.gud])
%sr (gram [/a /b ~] [%want p.gud [%r q.gud] r.gud])
%te (gram ~ %tell p.gud)
%th (gram [/e ~] %that p.gud q.gud)
%va !!
@ -770,10 +779,11 @@
%es :: ~& %es-loss
(gull (bist %ma lap) p.gal q.gal ~)
%ht (gram [/e [%b (bist [%ma lap])] ~] [%band who ~])
%oy (gump | p.gal gyp ted lap)
%lq (gump | p.gal gyp ted lap)
%ow +>
%rt +>
%up +>(..ra (hoop lap ted))
%wa (gust gyp ted lap)
%yo +>
==
::
++ moor :: start goal
@ -786,10 +796,11 @@
%es :: ~& %es-moor
(gull (bist %ma lap) p.gal q.gal [~ r.gal])
%ht (gram [/e [%b (bist [%ma lap])] ~] [%band who p.gal])
%oy (gump & p.gal [gyp ted lap])
%lq (gump & p.gal [gyp ted lap])
%ow +>
%rt +>
%up +>(..ra (hoot lap ted p.gal))
%wa (gush p.gal gyp ted lap)
%yo (gram [/a [%b (bist [%ma lap])] ~] [%want +.gal])
==
::
++ ox :: per delivery
@ -853,22 +864,29 @@
%ht
?> ?=(%thee -.fav)
+>.$(+>.$ (glib lap [%ht +.fav]))
::
%lq
?> ?=(%wart -.fav)
+>.$(+>.$ (glib lap [%lq p.fav r.fav s.fav]))
::
%rt
?: ?=(%went -.fav)
?. ?=(%dead q.fav) +>.$
+>.$(+>.$ (glib lap [%rt ~]))
?> ?=(%waft -.fav)
+>.$(+>.$ (glib lap [%rt ~ q.fav]))
::
%up
?> ?=(%line -.fav)
+>.$(+>.$ (glib lap [%up +.fav]))
::
%oy
?> ?=(%wart -.fav)
+>.$(+>.$ (glib lap [%oy +.fav]))
%ow
?> ?=(%went -.fav)
+>.$(+>.$ (glib lap [%ow q.fav]))
::
%wa
?> ?=(%wake -.fav)
+>.$(+>.$ (glib lap [%wa ~]))
::
%yo
?> ?=(%went -.fav)
+>.$(lug ~, +>.$ (glib lap [%yo +.fav]))
==
--
--
@ -1082,6 +1100,11 @@
|% :: poke/peek pattern
++ beat :: process move
|= [wru=(unit writ) tea=wire hen=duct fav=curd]
=+ vaf=(card fav)
?. =(vaf fav)
~& [%fav fav]
~& [%vaf vaf]
!!
=> .(fav ((hard card) fav))
^- [p=(list move) q=vane]
?: ?=([%crud *] fav)
@ -1123,8 +1146,13 @@
~|([%beat-none -.fav] !!)
::
%init
=+ bos=(sein p.fav)
=. bos ?.(=(bos p.fav) bos ~zod)
?~ wru !!
:- [[wru hen fav] ~]
:- :- [wru hen fav]
?: =(bos p.fav) ~
:_ ~
[wru [/b hen] [%line (rap 3 ":{(scow %p bos)}/main=/bin/update")]]
..^$(dez (~(put by dez) hen [[q.u.wru (bard q.u.wru)] ~]))
::
?(%loin %make %sith)
@ -1132,6 +1160,9 @@
==
?> ?=(^ u.dus)
?+ -.fav
=> ?. ?=(%writ -.fav) .
:: ~& [%batz-writ tea]
.
?~ wru
=+ ade=(adit hen)
=+ hem=`helm`?-(ade %lead [%lead p.i.u.dus], %iron %iron, %gold %gold)
@ -1142,9 +1173,14 @@
..^$(dez (~(put by dez) hen [[p.i.u.dus +.q.yub] t.u.dus]))
::
%init
=+ bos=(sein p.fav)
=. bos ?.(=(bos p.fav) bos ~zod)
?~ wru !!
:- :~ [wru hen fav]
:- :* [wru hen fav]
[wru [[%b tea] hen] [%hail ~]]
?: =(bos p.fav) ~
:_ ~
[wru [/b hen] [%line (rap 3 ":{(scow %p bos)}/main=/bin/update")]]
==
..^$(dez (~(put by dez) hen [[q.u.wru (bard q.u.wru)] u.dus]))
::

View File

@ -1,4 +1,4 @@
::
!:
:: clay (4c), revision control
::
|= pit=vase
@ -15,7 +15,6 @@
=+ yar=(~(get by fat.ruf) who)
?~(yar *room u.yar)
=| yel=(list ,[p=duct q=card])
=| wot=(list ,[p=duct q=tape])
=| byn=(list ,[p=duct q=riot])
=| vag=(list ,[p=duct q=card])
=| say=(list ,[p=duct q=ship r=[p=@ud q=riff]])
@ -26,9 +25,6 @@
;: weld
%+ turn (flop yel)
|=([a=duct b=card] [[~ %gold who] hun.yar b])
::
%+ turn (flop wot)
|=([a=duct b=tape] [[~ %gold who] a [%wort b]])
::
%+ turn (flop byn)
|=([a=duct b=riot] [[~ %gold who] a [%writ b]])
@ -37,7 +33,10 @@
|=([a=duct b=card] [[~ %gold who] a b])
::
%+ turn (flop say)
|=([a=duct b=ship c=*] [[~ %gold who] [/a a] [%want b %re c]])
|= [a=duct b=ship c=[p=@ud q=riff]]
:+ [~ %gold who]
[/a a]
[%want b [%q %re p.q.c (scot %ud p.c) ~] q.c]
==
::
++ doze
@ -47,108 +46,39 @@
?~ saz nex
$(saz t.saz, nex (hunt nex doze:(di i.saz)))
::
++ fray
|= [hen=duct pal=(list disc) sab=saba]
^+ +>
?~ pal +>
$(pal t.pal, +> zoot:wake:(exec:(di i.pal) hen now [%| sab]))
::
++ wake
^+ .
=+ saz=(turn (~(tap by dos.yar) ~) |=([a=@tas b=*] a))
|- ^+ ..wake
?~ saz ..wake
$(saz t.saz, ..wake zoot:wake:(di i.saz))
$(saz t.saz, ..wake abet:wake:(di i.saz))
::
++ de :: per desk
|_ [for=@p syd=@ta lim=@da qyx=cult dom=dome]
++ aeon :: act count through
|= lok=case
^- (unit ,@ud)
?- -.lok
%da
?: (gth p.lok lim) ~
|- ^- (unit ,@ud)
?~ hit.dom [~ let.dom]
?: (gte p.lok p.i.hit.dom) [~ let.dom]
$(hit.dom t.hit.dom, let.dom (dec let.dom))
::
%tas (~(get by lab.dom) p.lok)
%ud ?:((gth p.lok let.dom) ~ [~ p.lok])
|_ [for=@p syd=@ta rede]
++ abet
?: =(for who)
%_(..de dos.yar (~(put by dos.yar) syd qyx dom))
%_ ..de
rid.yar
=+ ^= rob ^- (map ,@tas rede)
=+ rob=(~(get by rid.yar) for)
?~(rob ~ u.rob)
(~(put by rid.yar) for (~(put by rob) syd `rede`+<+>.abet))
==
::
++ ache :: arch report
^- arch
:+ p.ank.dom
?~(q.ank.dom ~ [~ p.u.q.ank.dom])
|- ^- (map ,@ta ,~)
?~ r.ank.dom ~
[[p.n.r.ank.dom ~] $(r.ank.dom l.r.ank.dom) $(r.ank.dom r.r.ank.dom)]
::
++ amor :: endpoint query
|= ren=?(%x %y %z)
^- (unit ,*)
?- ren
%x ?~(q.ank.dom ~ [~ q.u.q.ank.dom])
%y [~ ache]
%z [~ ank.dom]
==
::
++ ante :: rewind by change
|= lem=maki
^+ +>
?- -.lem
&
%_ +>
ank.dom ?. ?=(& -.p.lem) ank.dom
ank:(dusk:(zu ank.dom) p.p.lem)
lab.dom ?. ?=(| -.p.lem) lab.dom
(~(del by lab.dom) p.p.lem)
==
::
|
|- ^+ +>.^$
?~ s.p.lem +>.^$
$(s.p.lem t.s.p.lem, +>.^$ ^$(lem i.s.p.lem))
==
::
++ argo :: rewind to aeon
|= oan=@ud
^+ +>
?: =(let.dom oan) +>
?> ?=(^ hit.dom)
?> ?=(& -.q.i.hit.dom)
=> .(+> (ante q.i.hit.dom))
$(let.dom (dec let.dom), hit.dom t.hit.dom)
::
++ auto :: read at point
|= mun=mood
^- (unit)
?: ?=(%v p.mun)
[~ dom]
?: &(?=(%w p.mun) !?=(%ud -.q.mun))
?^(r.mun ~ [~ let.dom])
?: ?=(%w p.mun)
?> ?=(^ hit.dom) ?^(r.mun ~ [~ i.hit.dom])
(amor(ank.dom ank:(deny:(zu ank.dom) r.mun)) p.mun)
::
++ aver :: domestic read
++ aver :: read
|= mun=mood
^- (unit (unit ,*))
=+ nao=(aeon q.mun)
?~(nao ~ [~ (avid u.nao mun)])
::
++ avid :: seek and read
|= [oan=@ud mun=mood]
^- (unit)
?: &(?=(%w p.mun) !?=(%ud -.q.mun)) :: NB optimization
?^(r.mun ~ [~ oan])
(auto:(argo oan) mun)
=+ ezy=?~(ref ~ (~(get by haw.u.ref) mun))
?^ ezy ezy
=+ nao=(~(aeon ze lim dom) q.mun)
:: ~& [%aver-mun nao [%from syd lim q.mun]]
?~(nao ~ [~ (~(avid ze lim dom) u.nao mun)])
::
++ balk :: read and send
|= [hen=duct oan=@ud mun=mood]
^+ +>
=+ vid=(avid oan mun)
=+ vid=(~(avid ze lim dom) oan mun)
?~ vid (blob hen) (blab hen mun u.vid)
::
++ blab :: ship result
@ -187,10 +117,35 @@
==
$(xiq t.xiq, nex (hunt nex zis))
::
++ ease :: unsubscribe
++ duce :: produce request
|= [hen=duct rav=rave]
^+ +>
=. qyx (~(put by qyx) hen rav)
?~ ref +>
=+ ^= vaw ^- rave
?. ?=([%& %v *] rav) rav
[%| [%ud let.dom] `case`q.p.rav]
=+ inx=nix.u.ref
%= +>.$
say [[[[%c (scot %ud inx) ~] hen] for [inx syd ~ vaw]] say]
nix.u.ref +(nix.u.ref)
bom.u.ref (~(put by bom.u.ref) inx [hen vaw])
fod.u.ref (~(put by fod.u.ref) hen inx)
==
::
++ ease :: release request
|= hen=duct
^+ +>
+>(qyx (~(del by qyx) hen))
:: ~& [%ease [who for] hen]
=. qyx (~(del by qyx) hen)
?~ ref +>
=+ nux=(~(get by fod.u.ref) hen)
?~ nux +>.$
%= +>.$
say [[[[%c (scot %ud u.nux) ~] hen] for [u.nux syd ~]] say]
fod.u.ref (~(del by fod.u.ref) hen)
bom.u.ref (~(del by bom.u.ref) u.nux)
==
::
++ eave :: subscribe
|= [hen=duct rav=rave]
@ -199,17 +154,17 @@
&
=+ ver=(aver p.rav)
?~ ver
+>.$(qyx (~(put by qyx) hen rav))
(duce hen rav)
?~ u.ver
(blob hen)
(blab hen p.rav u.u.ver)
::
|
=+ nab=(aeon p.p.rav)
=+ nab=(~(aeon ze lim dom) p.p.rav)
?~ nab
?> =(~ (aeon q.p.rav))
+>.$(qyx (~(put by qyx) hen rav))
=+ huy=(aeon q.p.rav)
?> =(~ (~(aeon ze lim dom) q.p.rav))
(duce hen rav)
=+ huy=(~(aeon ze lim dom) q.p.rav)
?: &(?=(^ huy) |((lth u.huy u.nab) &(=(0 u.huy) =(0 u.nab))))
(blob hen)
=+ top=?~(huy let.dom u.huy)
@ -222,71 +177,102 @@
=+ ^= ptr ^- case
?: =(0 u.nab) [%da @da]
=+(old=(slag wid seb) ?>(?=(^ old) `case`[%da p.i.old]))
+>.$(qyx (~(put by qyx) hen `rave`[%| ptr q.p.rav]))
(duce hen `rave`[%| ptr q.p.rav])
==
::
++ edit :: apply changes
|= [hen=duct wen=@da lem=maki]
++ echo :: announce changes
|= [hen=duct wen=@da lem=nori]
^+ +>
?- -.lem
&
%= +>.$
ank.dom ?. ?=(& -.p.lem) ank.dom
ank:(durn:(zu ank.dom) p.p.lem)
let.dom +(let.dom)
hit.dom :_(hit.dom [wen lem])
lab.dom ?. ?=(| -.p.lem) lab.dom
?< (~(has by lab.dom) p.p.lem)
(~(put by lab.dom) p.p.lem let.dom)
vag
?~(hez.yar vag :_(vag [u.hez.yar [%ergo who syd +(let.dom)]]))
::
yel
=+ pre=`path`~[(scot %p for) syd (scot %ud +(let.dom))]
?- -.p.lem
| :_ yel
[hen %note '=' %leaf :(weld (trip p.p.lem) " " (spud pre))]
& |- ^+ yel
?~ q.p.p.lem yel
:_ $(q.p.p.lem t.q.p.p.lem)
:- hen
:+ %note
?-(-.q.i.q.p.p.lem %del '-', %ins '+', %mut ':')
[%leaf (spud (weld pre p.i.q.p.p.lem))]
==
%= +>
vag ?~(hez.yar vag :_(vag [u.hez.yar [%ergo who syd let.dom]]))
yel
=+ pre=`path`~[(scot %p for) syd (scot %ud let.dom)]
?- -.lem
| :_ yel
[hen %note '=' %leaf :(weld (trip p.lem) " " (spud pre))]
& |- ^+ yel
?~ q.q.lem yel
:_ $(q.q.lem t.q.q.lem)
:- hen
:+ %note
?-(-.q.i.q.q.lem %del '-', %ins '+', %mut ':')
[%leaf (spud (weld pre p.i.q.q.lem))]
==
::
|
|- ^+ +>.^$
?~ s.p.lem +>.^$
$(s.p.lem t.s.p.lem, +>.^$ ^$(lem i.s.p.lem))
==
::
++ edit :: apply changes
|= [wen=@da lem=nori]
^+ +>
+>(dom +<+:(~(axel ze lim dom) wen lem))
::
++ exec :: change and update
|= [hen=duct wen=@da lem=maki]
|= [hen=duct wen=@da lem=nori]
^+ +>
wake:(edit hen wen lem)
(echo:wake:(edit wen lem) hen wen lem)
::
++ knit :: external change
|= [inx=@ud rot=riot]
^+ +>
=+ ruv=(~(get by bom.u.ref) inx)
?~ ruv +>.$
=> ?. |(?=(~ rot) ?=(& -.q.u.ruv)) .
%_ .
bom.u.ref (~(del by bom.u.ref) inx)
fod.u.ref (~(del by fod.u.ref) p.u.ruv)
==
?~ rot
=+ rav=`rave`q.u.ruv
%= +>.$
lim
?.(&(?=(| -.rav) ?=(%da -.q.p.rav)) lim `@da`p.q.p.rav)
::
haw.u.ref
?. ?=(& -.rav) haw.u.ref
(~(put by haw.u.ref) p.rav ~)
==
?< ?=(%v p.p.u.rot)
=. haw.u.ref
(~(put by haw.u.ref) [p.p.u.rot q.p.u.rot q.u.rot] ~ r.u.rot)
?. ?=(%w p.p.u.rot) +>.$
|- ^+ +>.^$
=+ nez=[%w [%ud let.dom] ~]
=+ nex=(~(get by haw.u.ref) nez)
?~ nex +>.^$
?~ u.nex +>.^$ :: should never happen
%= $
haw.u.ref (~(del by haw.u.ref) nez)
+>.^$ (edit ((hard frog) u.u.nex))
==
::
++ wake :: update subscribers
^+ .
=+ xiq=(~(tap by qyx) ~)
=| xaq=(list ,[p=duct q=rave])
|- ^+ ..wake
?~ xiq ..wake(qyx (~(gas by *cult) xaq))
?~ xiq
:: ~& [%wake-out [who for] xaq]
..wake(qyx (~(gas by *cult) xaq))
?- -.q.i.xiq
&
=+ nao=(aeon q.p.q.i.xiq)
=+ cas=?~(ref ~ (~(get by haw.u.ref) `mood`p.q.i.xiq))
?^ cas
%= $
xiq t.xiq
..wake ?~ u.cas (blob p.i.xiq)
(blab p.i.xiq p.q.i.xiq u.u.cas)
==
=+ nao=(~(aeon ze lim dom) q.p.q.i.xiq)
?~ nao $(xiq t.xiq, xaq [i.xiq xaq])
$(xiq t.xiq, ..wake (balk p.i.xiq u.nao p.q.i.xiq))
::
|
=+ mot=`moat`p.q.i.xiq
=+ nab=(aeon p.mot)
=+ nab=(~(aeon ze lim dom) p.mot)
?: |(?=(~ nab) =(let.dom u.nab))
$(xiq t.xiq, xaq [i.xiq xaq])
?> (gte let.dom u.nab)
?> ?=(^ hit.dom)
=+ huy=(aeon q.mot)
=+ huy=(~(aeon ze lim dom) q.mot)
?~ huy
=+ ptr=[%da p.i.hit.dom]
=+ fud=(flop (scag (sub let.dom u.nab) `(list frog)`hit.dom))
@ -302,167 +288,23 @@
..wake (blob:(bleb p.i.xiq +(u.nab) fud))
==
==
::
++ zoot
%_(..de dos.yar (~(put by dos.yar) syd qyx dom))
--
::
++ di
|= syd=@ta
=+ ^= saq ^- desk
=+ saq=(~(get by dos.yar) syd)
?~(saq [~ [~ [@uvH ~ ~] 0 ~ ~]] u.saq)
~(. de who syd now p.saq q.saq)
?~(saq *desk u.saq)
~(. de who syd now p.saq ~ q.saq)
::
++ fa
|= him=ship
=+ ^= raz
=+ raz=(~(get by rid.yar) him)
?~(raz [p=*rind q=*rink] u.raz)
|%
++ mete :: foreign request
|= [hen=duct ryf=riff]
^+ +>
=+ nux=(~(get by fod.p.raz) hen)
?^ nux
?> ?=(~ q.ryf)
%= +>.$
say [[[[%c (scot %ud u.nux) ~] hen] him [u.nux ryf]] say]
fod.p.raz (~(del by fod.p.raz) hen)
bim.p.raz (~(del by bim.p.raz) u.nux)
==
?~ q.ryf +>.$
=+ inx=nix.p.raz
%= +>.$
say [[[[%c (scot %ud inx) ~] hen] him [inx ryf]] say]
nix.p.raz +(nix.p.raz)
bim.p.raz (~(put by bim.p.raz) inx [hen ryf])
fod.p.raz (~(put by fod.p.raz) hen inx)
==
::
++ mote :: send/cancel request
|= [hen=duct ryf=riff]
^+ +>
(mete hen ryf)
:: =+ rym=(~(get by mir.q.raz) p.ryf)
:: ?~ rym (mete hen ryf)
:: =+ wex=~(. de [who p.ryf lim.u.rym qyx.u.rym dom.u.rym])
:: =+ wak=?~(q.ryf (ease:wex hen) (eave:wex hen u.q.ryf))
:: =: byn byn.wak
:: qyx.u.rym qyx.wak
:: dom.u.rym dom.wak
:: ==
:: +>.$(mir.q.raz (~(put by mir.q.raz) p.ryf u.rym))
::
++ poll :: pull result
|= [hen=duct syd=disc rot=riot]
^+ +>
=+ rum=(need (~(get by mir.q.raz) syd))
=+ kas=(need ask.rum)
=< abet
=< able
|%
++ abet
^+ +>.$
+>.$(mir.q.raz (~(put by mir.q.raz) syd rum))
::
++ able
^+ .
?~ rot
%- pith(ask.rum ~, lim.rum kas)
~(. de [him syd kas qyx.rum dom.rum])
?> ?=(%w p.p.u.rot)
?> =(syd r.p.u.rot)
?> =(~ q.u.rot)
?> ?=(%ud -.q.p.u.rot)
?> =(let.dom.rum p.q.p.u.rot)
=+ rog=((hard frog) r.u.rot)
=+ sab=`saba`[him syd [p.q.p.u.rot +(p.q.p.u.rot)] [q.rog ~]]
=. ..fa (fray hen pal.rum sab)
(pith (~(exec de [him syd lim.rum qyx.rum dom.rum]) hen rog))
::
++ pith
|= wex=_de
^+ +>
=+ wak=wake:wex
%_ +>.$
byn byn.wak
yel yel.wak
qyx.rum qyx.wak
dom.rum dom.wak
==
--
::
++ puke :: pull failed
|= [hen=duct syd=disc msg=tape]
^+ +>
%_ +>
mir.q.raz (~(del by mir.q.raz) syd)
yel [[hen [%note '?' %leaf msg]] yel]
==
::
++ pull :: pull changeset
|= [hen=duct syd=disc pal=(list disc)]
^+ +>
=+ ^= rum ^- rede
=+ rum=(~(get by mir.q.raz) syd)
?^ rum u.rum [~2000.1.1 ~ pal ~ [~ [@uvH ~ ~] 0 ~ ~]]
?> ?=(~ ask.rum)
=> .(ask.rum [~ now])
=. +>.$
%+ mete
[[%c %pull (scot %p him) syd ~] hen]
[syd ~ %| [%da lim.rum] [%da now]]
+>.$(mir.q.raz (~(put by mir.q.raz) syd rum))
::
++ tome :: accept response
|= [inx=@ud rot=riot]
^+ +>
:: ~& [%tome inx ?~(rot ~ [p.u.rot q.u.rot])]
=+ mub=(~(get by bim.p.raz) inx)
?~ mub +>.$
=+ die=?~(rot & &(?=(^ q.q.u.mub) ?=(& -.u.q.q.u.mub)))
%= +>.$
byn [[p.u.mub rot] byn]
bim.p.raz ?.(die bim.p.raz (~(del by bim.p.raz) inx))
fod.p.raz ?.(die fod.p.raz (~(del by fod.p.raz) p.u.mub))
hac.q.raz ?~ rot
hac.q.raz
%+ ~(put by hac.q.raz)
[p.p.u.rot q.p.u.rot r.p.u.rot q.u.rot]
r.u.rot
==
::
++ tref :: request rejected
|= [hen=duct tea=wire]
^+ +>
~& [%tref tea]
?. ?=([@ *] tea) +>
=+ xoc=(slay i.tea)
?: ?=([~ %$ %p @] xoc)
?> ?=([@ ~] t.tea)
(puke hen i.t.tea "system failure")
?. ?=([~ %$ %ud @] xoc) +>.$
=+ mub=(~(get by bim.p.raz) q.p.u.xoc)
?~ mub +>.$
%= +>.$
byn [[p.u.mub ~] byn]
fod.p.raz (~(del by fod.p.raz) q.p.u.xoc)
==
::
++ vera :: search
|= [syd=@tas ren=care lok=case way=path]
^- (unit)
=+ haz=(~(get by hac.q.raz) ren lok syd way)
?^ haz haz
=+ rym=(~(get by mir.q.raz) syd)
?~ rym ~
=+ vyr=(~(aver de [him syd lim.u.rym qyx.u.rym dom.u.rym]) ren lok way)
?~(vyr ~ u.vyr)
::
++ zoom
%_(+>.$ rid.yar (~(put by rid.yar) him raz))
--
++ do
|= [him=ship syd=@tas]
=+ ^= red ^- rede
=+ roy=(~(get by rid.yar) him)
=+ yit=?~(roy ~ (~(get by u.roy) syd))
?^(yit u.yit `rede`[~2000.1.1 ~ [~ *rind] *dome])
:: ~& [%do-qyx him syd qyx.red]
~(. de him syd red)
--
--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@ -483,6 +325,7 @@
[[[wru [/d hen] %flog fav] ~] ..^$]
::
%deem
~& [%beat-deem wru hen]
=. wru
?^ wru wru
?. =(%gold (adit hen)) ~
@ -491,9 +334,9 @@
::
%init
:: [[%tell %0 %leaf "clay: home for {~(rend co ~ %p q.u.wru)}"] ~]
[~ ..^$(fat.ruf (~(put by fat.ruf) q.u.wru [hen ~ ~ ~ ~]))]
[~ ..^$(fat.ruf (~(put by fat.ruf) q.u.wru [hen ~ ~ ~]))]
::
?(%into %info)
?(%info %into)
=. wru
?^ wru wru
?. =(%gold (adit hen)) ~
@ -505,15 +348,20 @@
[~ ..^$(fat.ruf (~(put by fat.ruf) p.fav yar(hez [~ hen])))]
=^ mos ruf
=+ ^= zot
zoot:(exec:(di:wake:(un q.u.wru now ruf) q.fav) hen now [%& r.fav])
abet:(exec:(di:wake:(un q.u.wru now ruf) q.fav) hen now r.fav)
abet:zot(hez.yar ?.(=(%into -.fav) hez.yar.zot [~ hen]))
[mos ..^$]
::
%pull
?> ?=(^ wru)
?> !=(q.u.wru q.fav)
%waft
?> ?=([@ @ ~] tea)
=+ syd=(need (slaw %tas i.tea))
=+ inx=(need (slaw %ud i.t.tea))
=^ mos ruf
abet:zoom:(pull:(fa:(un q.u.wru now ruf) p.fav) hen q.fav r.fav)
=< abet
=< abet
=< wake
%. [inx ((hard riot) q.fav)]
knit:(do:(un q.u.wru now ruf) p.fav syd)
[mos ..^$]
::
%warp
@ -521,34 +369,36 @@
=^ mos ruf
=< abet
=+ une=(un q.u.wru now ruf)
:: ~& [%warp q.u.wru p.fav]
?. =(q.u.wru p.fav)
zoom:(mote:(fa:une p.fav) hen q.fav)
=+ wex=(di:une p.q.fav)
:: ~& [%clay-warp q.u.wru fav]
=+ wex=?.(=(q.u.wru p.fav) (do:une p.fav p.q.fav) (di:une p.q.fav))
?~ q.q.fav
zoot:(ease:wex hen)
zoot:(eave:wex hen u.q.q.fav)
abet:(ease:wex hen)
abet:(eave:wex hen u.q.q.fav)
[mos ..^$]
::
%wart
?> ?=(%ru q.fav)
?~ s.fav [~ ..^$]
=^ mos ruf
=< abet
=< zoom
(tome:(fa:(un q.u.wru now ruf) p.fav) ((hard ,[@ud riot]) u.s.fav))
[mos ..^$]
?> ?=(^ wru)
?> ?=(%re q.fav)
=+ ryf=((hard riff) s.fav)
:_ ..^$
:~ :+ [~ %iron q.u.wru]
[/c [%c (scot %p p.fav) r.fav] hen]
`card`[%warp q.u.wru ryf]
==
::
%went
?: =(%good q.fav) [~ ..^$]
%writ
?> ?=([@ *] tea)
=+ une=(un q.u.wru now ruf)
=^ mos ruf
?+ i.tea ~&([%went-wrong tea] !!)
%pull
abet:zoom:(tref:(fa:une p.fav) hen t.tea)
==
[mos ..^$]
=+ him=(need (slaw %p i.tea))
:_ ..^$
:~ :+ wru
[/a [%c ~] hen]
`card`[%want him [%r %re %c t.tea] p.fav]
==
::
%went :: XX should actually propagate
?: =(%good q.fav) [~ ..^$]
~& [%clay-lost tea]
[~ ..^$]
::
%wake
=+ dal=(turn (~(tap by fat.ruf) ~) |=([a=@p b=room] a))
@ -557,36 +407,6 @@
?~ dal [mos ..^^$(las.ruf now)]
=^ som ruf abet:wake:(un i.dal now ruf)
$(dal t.dal, mos (weld som mos))
::
%wort
?> ?=([@ *] tea)
=+ une=(un q.u.wru now ruf)
=^ mos ruf
?+ i.tea !!
%pull
?> ?=([@ @ ~] t.tea)
=+ xoc=(slay i.t.tea)
?> ?=([~ %$ %p @] xoc)
=< abet
=< zoom
(puke:(fa:(un q.u.wru now ruf) q.p.u.xoc) hen i.t.t.tea p.fav)
==
[mos ..^$]
::
%writ
?> ?=([@ *] tea)
=+ une=(un q.u.wru now ruf)
=^ mos ruf
?+ i.tea ~&([%writ-bad tea] !!)
%pull
?> ?=([@ @ ~] t.tea)
=+ xoc=(slay i.t.tea)
?> ?=([~ %$ %p @] xoc)
=< abet
=< zoom
(poll:(fa:(un q.u.wru now ruf) q.p.u.xoc) hen i.t.t.tea p.fav)
==
[mos ..^$]
==
::
++ come
@ -622,9 +442,12 @@
=+ run=((soft care) ron)
?~ luk ~
?~ run ~
?. =(our his)
(vera:(fa:(un our now ruf) his) syd u.run u.luk tyl)
=+ vyr=(aver:(di:(un our now ruf) syd) u.run u.luk tyl)
=+ ^= vyr
=+ une=(un our now ruf)
%. [u.run u.luk tyl]
=+ dud=?.(=(our his) (do:une his syd) (di:une syd))
:: ~& [%scry-at [our his] now lim.dud]
aver:dud
?~(vyr ~ u.vyr)
::
++ stay `vase`!>(ruf)

View File

@ -1,4 +1,4 @@
::
!:
:: dill (4d), terminal handling
::
|= pit=vase

View File

@ -1,4 +1,4 @@
::
!:
:: eyre (4e), http servant
::
|= pit=vase

View File

@ -1,5 +1,5 @@
::
:: Hoon/Arvo stage 191 (reflexive).
:: Hoon/Arvo stage 191 (reflexive).
:: This file is in the public domain.
::
:: A noun is an atom or a cell. An atom is any natural number
@ -125,7 +125,7 @@
:: below. No secrets live forever, though, and the kernel
:: author retains no dominion whatsoever over Arvo users.
:: All keys and algorithms can be updated without disruption.
:: [NB: the roots are now in urb/les/arvo/ames.hoon.]
:: [NB: the roots are now in urb/zod/arvo/ames.hoon.]
::
:: Arvo does not process packets only, but also local events
:: (++card) from the host OS. Modules handling these events
@ -297,6 +297,7 @@
[%sgls p=@ q=gene] ::
[%sgpm p=@ud q=gene r=gene] ::
[%sgts p=gene q=gene] ::
[%sgwt p=@ud q=gene r=gene s=gene] ::
[%sgzp p=gene q=gene] ::
:: ::
[%smcb p=gene q=gene] ::
@ -425,19 +426,19 @@
[1 p=(list)] ::
[2 p=(list ,[@ta *])] ::
== ::
++ tool $& [p=tool q=tool] ::
++ nock $& [p=nock q=nock] ::
$% [0 p=@] ::
[1 p=*] ::
[2 p=tool q=tool] ::
[3 p=tool] ::
[4 p=tool] ::
[5 p=tool q=tool] ::
[6 p=tool q=tool r=tool] ::
[7 p=tool q=tool] ::
[8 p=tool q=tool] ::
[9 p=@ q=tool] ::
[10 p=?(@ [p=@ q=tool]) q=tool] ::
[11 p=tool] ::
[2 p=nock q=nock] ::
[3 p=nock] ::
[4 p=nock] ::
[5 p=nock q=nock] ::
[6 p=nock q=nock r=nock] ::
[7 p=nock q=nock] ::
[8 p=nock q=nock] ::
[9 p=@ q=nock] ::
[10 p=?(@ [p=@ q=nock]) q=nock] ::
[11 p=nock] ::
== ::
++ toon $% [0 p=*] ::
[1 p=(list)] ::
@ -478,6 +479,8 @@
== ::
$% [%d p=@ud] :: blocklist
== ::
++ unce |* a=_,* :: change part
$%([& p=@ud] [| p=(list a) q=(list a)]) ::
++ unit |* a=_,* :: maybe
$|(~ [~ u=a]) ::
++ upas :: tree change (%d)
@ -486,9 +489,7 @@
[1 p=*] :: insert new
[2 p=axis q=udon] :: mutate!
== ::
++ urge |* a=_,* :: list change
%- list ::
,$%([& p=@ud] [| p=(list a) q=(list a)]) ::
++ urge |*(a=_,* (list (unce a))) :: list change
++ vase ,[p=type q=*] :: type-value pair
++ vise ,[p=tope q=*] :: old vase
++ wall (list tape) :: text lines
@ -505,6 +506,7 @@
[%tree p=term q=wine] ::
[%unit p=term q=wine] ::
== ::
++ woof (list $|(@ud [p=@ud q=@ud])) :: udon transform
++ wonk |*(veq=edge ?@(q.veq !! p.u.q.veq)) ::
:: ::
++ map |* [a=_,* b=_,*] :: associative array
@ -3873,7 +3875,7 @@
[%fork hoz bur]
::
++ cove
|= nug=tool
|= nug=nock
?- nug
[0 *] p.nug
[10 *] $(nug q.nug)
@ -3881,8 +3883,8 @@
==
++ comb
~/ %comb
|= [mal=tool buz=tool]
^- tool
|= [mal=nock buz=nock]
^- nock
?: ?&(?=([0 *] mal) !=(0 p.mal))
?: ?&(?=([0 *] buz) !=(0 p.buz))
[%0 (peg p.mal p.buz)]
@ -3897,8 +3899,8 @@
::
++ cond
~/ %cond
|= [pex=tool yom=tool woq=tool]
^- tool
|= [pex=nock yom=nock woq=nock]
^- nock
?- pex
[1 0] yom
[1 1] woq
@ -3907,8 +3909,8 @@
::
++ cons
~/ %cons
|= [vur=tool sed=tool]
^- tool
|= [vur=nock sed=nock]
^- nock
?: ?=([[0 *] [0 *]] +<)
?: ?&(=(+(p.vur) p.sed) =((div p.vur 2) (div p.sed 2)))
[%0 (div p.vur 2)]
@ -3944,8 +3946,8 @@
::
++ flan
~/ %flan
|= [bos=tool nif=tool]
^- tool
|= [bos=nock nif=nock]
^- nock
?- bos
[1 1] bos
[1 0] nif
@ -3959,13 +3961,13 @@
::
++ flip
~/ %flip
|= [dyr=tool]
|= [dyr=nock]
[%6 dyr [%1 1] [%1 0]]
::
++ flor
~/ %flor
|= [bos=tool nif=tool]
^- tool
|= [bos=nock nif=nock]
^- nock
?- bos
[1 1] nif
[1 0] bos
@ -3979,22 +3981,22 @@
::
++ hike
~/ %hike
|= [axe=axis pac=(list ,[p=axis q=tool])]
^- tool
|= [axe=axis pac=(list ,[p=axis q=nock])]
^- nock
?~ pac
[%0 axe]
=+ zet=(skim pac.$ |=([p=axis q=tool] [=(1 p)]))
=+ zet=(skim pac.$ |=([p=axis q=nock] [=(1 p)]))
?~ zet
=+ tum=(skim pac.$ |=([p=axis q=tool] ?&(!=(1 p) =(2 (cap p)))))
=+ gam=(skim pac.$ |=([p=axis q=tool] ?&(!=(1 p) =(3 (cap p)))))
=+ tum=(skim pac.$ |=([p=axis q=nock] ?&(!=(1 p) =(2 (cap p)))))
=+ gam=(skim pac.$ |=([p=axis q=nock] ?&(!=(1 p) =(3 (cap p)))))
%+ cons
%= $
axe (peg axe 2)
pac (turn tum |=([p=axis q=tool] [(mas p) q]))
pac (turn tum |=([p=axis q=nock] [(mas p) q]))
==
%= $
axe (peg axe 3)
pac (turn gam |=([p=axis q=tool] [(mas p) q]))
pac (turn gam |=([p=axis q=nock] [(mas p) q]))
==
?>(?=([* ~] zet) q.i.zet)
::
@ -4499,6 +4501,7 @@
r.gen
::
[%sgts *] [%sggr [%germ p.gen] q.gen]
[%sgwt *] [%tsgl s.gen %wtdt q.gen [~ 1] %sgpm p.gen r.gen [~ 1]]
[%sgzp *] [%sggr [%mean [%brdt p.gen]] q.gen]
[%smcl *]
?- q.gen
@ -5568,7 +5571,7 @@
|= axe=axis
=+ vot=*(set type)
|-
^- tool
^- nock
?- sut
[%atom *] (flip [%3 %0 axe])
%void [%1 1]
@ -5672,7 +5675,7 @@
++ hail
|= [dab=(map term foot) waf=(map term foot)]
=+ axe=1
=+ dif=*(list ,[p=axis q=tool])
=+ dif=*(list ,[p=axis q=nock])
|- ^+ dif
?~ dab
?>(?=(~ waf) dif)
@ -5789,8 +5792,8 @@
++ mint
~/ %mint
|= [gol=type gen=gene]
^- [p=type q=tool]
|^ ^- [p=type q=tool]
^- [p=type q=nock]
|^ ^- [p=type q=nock]
?: ?&(=(%void sut) !?=([%zpcb *] gen))
?. |(!vet ?=([%zpfs *] gen) ?=([%zpzp *] gen))
~|(%mint-vain !!)
@ -5824,8 +5827,8 @@
=+ mew=(swab q.gen)
=- [(nice p.yom) ?:(=(0 p.q.lar) q.yom [%9 p.q.lar q.yom])]
^= yom
=+ hej=*(list ,[p=axis q=tool])
|- ^- [p=type q=tool]
=+ hej=*(list ,[p=axis q=nock])
|- ^- [p=type q=nock]
?@ mew
[(fire q.q.lar) (hike p.lar hej)]
=+ zil=^$(gen q.i.mew, gol %noun)
@ -5922,7 +5925,7 @@
::
++ grow
|= [mel=?(%gold %iron %lead %zinc) ruf=gene dab=(map term foot)]
^- [p=type q=tool]
^- [p=type q=nock]
=+ dan=^$(gen ruf, gol %noun)
=+ toc=(core p.dan [%gold p.dan [~ dab]])
=+ dez=(harp(sut toc) dab)
@ -7096,6 +7099,11 @@
;~(gunk (cook lent (stun [1 3] gar)) loaf loaf)
(stag 0 ;~(gunk loaf loaf))
==
++ hing |.
;~ pose
;~(gunk (cook lent (stun [1 3] gar)) loaf loaf loaf)
(stag 0 ;~(gunk loaf loaf loaf))
==
++ bonk
;~ pfix cen
;~ pose

View File

@ -451,12 +451,13 @@
[[p.ank p.bus] (flop myz:(dist:(zu ank) %c bus))]
::
++ ze !:
|_ dome
|_ [lim=@da dome]
++ aeon :: aeon:ze
|= lok=case :: change count thru
|= lok=case :: act count through
^- (unit ,@ud)
?- -.lok
%da
?: (gth p.lok lim) ~
|- ^- (unit ,@ud)
?~ hit [~ let]
?: (gte p.lok p.i.hit) [~ let]
@ -474,91 +475,226 @@
?~ r.ank ~
[[p.n.r.ank ~] $(r.ank l.r.ank) $(r.ank r.r.ank)]
::
++ acai :: acai:ze
|= mus=masu :: inverse trout
[p.mus q.mus [q.r.mus p.r.mus] [q.s.mus p.s.mus]]
::
++ acid :: acid:ze
|= oan=@ud :: invert to
^- (list maki)
^- (list tako)
=+ mar=(scag (sub let oan) hit)
(adze (turn mar |=([a=@da b=maki] b)))
(alar (adze (turn mar |=([a=@da b=nori] b))))
::
++ adze :: adze:ze
|= may=(list maki) :: reverse maki
|= may=(list nori) :: reverse nori
%- flop
|- ^- (list maki)
|- ^- (list nori)
?~ may ~
=+ yam=$(may t.may)
?- -.i.may
& ?-(-.p.i.may | yam, & [[%& %& (curl p.p.i.may)] yam])
| [i.may(s.p $(may s.p.i.may)) yam]
& [[%& (bind p.i.may acai) (curl q.i.may)] yam]
| yam
==
::
++ aint :: aint:ze
|= may=(list maki) :: strip maki
^- (list maki)
++ alar :: alar:ze
|= may=(list nori) :: nori to tako
^- (list tako)
?~ may ~
=+ yam=$(may t.may)
?- -.i.may
& ?-(-.p.i.may | [i.may yam], & yam)
| [i.may(s.p $(may s.p.i.may)) yam]
& (weld q.q.i.may $(may t.may))
| $(may t.may)
==
::
++ alba :: alba:ze
|= hoe=(list tako) :: deconstruct
|- ^- (map path (list udon))
?~ hoe ~
=+ hom=$(hoe t.hoe)
%+ ~(put by hom) p.i.hoe
=+ vue=(~(get by hom) p.i.hoe)
[?>(?=(%mut -.q.i.hoe) p.q.i.hoe) ?~(vue ~ u.vue)]
::
++ aloe :: aloe:ze
|= yop=(map path (list udon)) :: reconstruct
^- (list tako)
=+ puy=(~(tap by yop) ~)
|- ^- (list tako)
?~ puy ~
(weld (turn q.i.puy |=(a=udon [p.i.puy %mut a])) $(puy t.puy))
::
++ alto :: alto:ze
|= $: yop=(map path (list udon)) :: yop before peq
peq=(map path (list udon))
==
=+ puy=(~(tap by yop) ~)
|- ^+ peq
?~ puy peq
%= $
puy t.puy
peq
=+ peb=(~(get by peq) p.i.puy)
?~ peb peq
(~(put by peq) p.i.puy (lyre q.i.puy u.peb))
==
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
++ woof (list $|(@ud [p=@ud q=@ud])) :: udon transform
++ lisp :: transform urge
|* wig=(urge)
|= dog=woof
^- [p=woof q=_wig]
?~ wig [~ ~]
?: =([%& 0] i.wig) $(wig t.wig)
?~ dog
?- -.i.wig
& $(dog [p.i.wig ~])
| $(dog [(lent p.i.wig) ~])
==
?@ i.dog
?: =(0 i.dog) $(dog t.dog)
?- -.i.wig
&
?: (lth i.dog p.i.wig)
=+ mol=$(dog t.dog, p.i.wig (sub p.i.wig i.dog))
[[i.dog p.mol] [[%& i.dog] q.mol]]
=+ mol=$(i.dog (sub i.dog p.i.wig), wig t.wig)
[[p.i.wig p.mol] [[%& p.i.wig] q.mol]]
::
|
=+ leg=(lent p.i.wig)
?> (gte i.dog leg)
=+ mol=$(i.dog (sub i.dog leg), wig t.wig)
:- `woof`[`[@ @]`[leg (lent q.i.wig)] `woof`p.mol]
`_wig`[i.wig q.mol]
==
?> ?=(& -.i.wig)
?> (gte p.i.wig -.i.dog)
=+ mol=$(dog t.dog, p.i.wig (sub p.i.wig -.i.dog))
[[i.dog p.mol] [[%& +.i.dog] q.mol]]
::
++ lith :: initial transform
|= wig=(urge)
^- woof
=+ wug=((lisp wig) *woof)
?>(=(wig q.wug) p.wug)
::
++ lobe :: udonous urge
|= [ump=umph heb=(list (urge))]
^- (list udon)
(turn heb |=(a=(urge) `udon`[ump %c a]))
::
++ lobo :: urgey udon
|= [ump=umph yeb=(list udon)]
^- (list (urge))
(turn yeb |=(a=udon ?>(&(=(ump p.a) ?=(%c -.q.a)) p.q.a)))
::
++ loch :: put wof before weq
|= [wof=woof weq=(list (urge))]
^- (list (urge))
|- ^+ weq
?~ weq ~
=+ wug=((lisp i.weq) wof)
[q.wug $(weq t.weq, wof p.wug)]
::
++ loup :: put heb before weq
|= [heb=(list (urge)) weq=(list (urge))]
^- (list (urge))
?~ heb weq
?~ weq heb
?: =(i.heb i.weq) $(heb t.heb, weq t.weq)
$(heb t.heb, weq (loch (lith i.heb) weq))
::
++ lyre :: put yeb before zeq
|= [yeb=(list udon) zeq=(list udon)]
^- (list udon)
?~ yeb zeq
?~ zeq yeb
?: =(i.yeb i.zeq) $(yeb t.yeb, zeq t.zeq)
=+ ump=p.i.yeb
(lobe ump (loup (lobo ump yeb) (lobo ump zeq)))
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
++ amor :: amor:ze
|= ren=?(%v %x %y %z) :: endpoint query
^- (unit ,*)
?- ren
%v [~ `dome`+<.amor]
%v [~ `dome`+<+.amor]
%x ?~(q.ank ~ [~ q.u.q.ank])
%y [~ ache]
%z [~ ank] :: should bee
%z [~ ank]
==
::
++ ante :: ante:ze
|= lem=maki :: rewind by change
|= lem=nori :: rewind by change
^+ +>
?- -.lem
&
%_ +>
ank ?. ?=(& -.p.lem) ank
ank:(dusk:(zu ank) p.p.lem)
lab ?. ?=(| -.p.lem) lab
(~(del by lab) p.p.lem)
==
::
|
|- ^+ +>.^$
?~ s.p.lem +>.^$
$(s.p.lem t.s.p.lem, +>.^$ ^$(lem i.s.p.lem))
?- -.lem
& (avon:(anti q.lem) (bind p.lem acai))
| +>(lab (~(del by lab) p.lem))
==
::
++ anti :: axon:ze
|= nyp=soba :: reverse axon
^+ +>
+>(ank ank:(dusk:(zu ank) nyp))
::
++ argo :: argo:ze
|= oan=@ud :: rewind to aeon
^+ +>
?: =(let oan) +>
?> ?=(^ hit)
?> ?=(& -.q.i.hit)
=> .(+> (ante q.i.hit))
$(let (dec let), hit t.hit)
=+ lem=?>(?=(^ hit) q.i.hit)
=: let (dec let)
hit t.hit
==
$(+> (ante lem))
::
++ arum :: arum:ze
|= [tak=(list tako) kat=(list tako)] :: hard merge
(aloe (alto (alba tak) (alba kat)))
::
++ auld :: auld:ze
|= [wen=@da gem=germ sab=saba] :: adjust edits
^- (unit saba) ::::::
|= [wen=@da gem=germ sab=saba] :: construct merge
^- (unit (unit nori)) ::::::
=+ ^= viq ^- [p=@ud q=@ud] ::
=+ viq=(~(get by ang) [p.sab q.sab]) ::
?~(viq [0 0] u.viq) ::
?: =(let p.viq) [~ sab] :: perfect fit
=+ paj=(axel:(argo p.viq) wen [%| sab]) ::
=. sab ::
?: =(q.viq p.r.sab) sab :: perfect motion
?> (gth q.viq p.r.sab) :: proper motion
%= sab ::
p.r q.viq ::
s (slag (sub q.viq p.r.sab) s.sab) ::
== ::
?~ s.sab [~ ~]
=+ ^= mus ^- masu
[p.sab q.sab [p.viq +(let)] [q.viq q.r.sab]]
:: ~& [%auld p.mus q.mus [%too r.mus] [%fro s.mus]]
=+ kat=(alar s.sab)
=+ lem=`nori`[%& [~ mus] `soba`[[@ @] kat]]
?: =(let p.viq)
:: ~& [%nice let]
[~ ~ lem] :: perfect fit
=+ paj=(axel:(argo p.viq) wen lem) :: XX !!
?: =(ank.paj ank) ::
[~ sab(s (aint s.sab))] :: same outcome
?- gem ::
%fine ~ :: nothing perfect
%mate ~|(%mate-stub !!) :: not supported
%that [~ sab(s (weld (acid p.viq) s.sab))] :: discard internal
%this :: discard external
[~ sab(s (aint s.sab))] ::
== ::
:: ~& [%same [let p.viq]]
[~ ~ lem(q.q ~)]
=+ ^= tak
%- alar %- flop
%+ turn (scag (sub let p.viq) hit)
|=(a=frog q.a)
=+ tig=(mang [arum tak kat] |=(* *(unit)))
?^ tig [~ ~ lem(q.q ((hard (list tako)) u.tig))]
?- gem
%fine ~ :: nothing perfect
%mate ~|(%mate-stub !!) :: not supported
%that [~ ~ lem(q.q (weld (acid p.viq) q.q.lem))]
%this [~ ~ lem(q.q ~)]
==
::
++ auto :: auto:ze
|= mun=mood :: read at point
^- (unit)
?: ?=(%v p.mun)
[~ `dome`+<+.auto]
?: &(?=(%w p.mun) !?=(%ud -.q.mun))
?^(r.mun ~ [~ let])
?: ?=(%w p.mun)
@ -578,33 +714,32 @@
?^(r.mun ~ [~ oan])
(auto:(argo oan) mun)
::
++ avon :: avon:ze
|= mys=(unit masu) :: apply trout
^+ +>
?~ mys +>
=+ [yek=[p.u.mys q.u.mys] det=[q.r.u.mys q.s.u.mys]]
=+ guf=(~(get by ang) yek)
=+ ted=`moar`?~(guf [0 0] u.guf)
:: ~& [%avon p.u.mys q.u.mys [%haz ted] [%too r.u.mys] [%fro s.u.mys]]
?> &(=(p.ted p.r.u.mys) =(q.ted p.s.u.mys))
+>.$(ang ?:(=([0 0] det) (~(del by ang) yek) (~(put by ang) yek det)))
::
++ axel :: axel:ze
|= [wen=@da lem=maki] :: edit
|= [wen=@da lem=nori] :: edit
^+ +>
=: let +(let)
hit :_(hit [wen lem])
==
?- -.lem
&
%= +>.$
ank ?. ?=(& -.p.lem) ank
ank:(durn:(zu ank) p.p.lem)
lab ?. ?=(| -.p.lem) lab
?< (~(has by lab) p.p.lem)
(~(put by lab) p.p.lem let)
==
::
|
=+ sab=p.lem
=+ ^= vip ^- @ud
=+ vip=(~(get by ang) [p.sab q.sab])
?~(vip 0 p.u.vip)
?> =(vip p.r.sab)
=. ang (~(put by ang) [p.sab q.sab] [q.r.sab let])
|- ^+ +>.^$
?~ s.sab +>.^$
$(s.sab t.s.sab, +>.^$ ^$(lem i.s.sab))
?- -.lem
& (avon:(axon q.lem) p.lem)
| +>(lab ?<((~(has by lab) p.lem) (~(put by lab) p.lem let)))
==
::
++ axon :: axon:ze
|= nyp=soba :: apply changes
^+ +>
+>(ank ank:(durn:(zu ank) nyp))
--
::
++ zu !: :: filesystem
@ -716,12 +851,11 @@
=> .(+ (drum p.i.myz q.i.myz))
$(myz t.myz)
::
++ dupe :: apply
|
::
++ durn :: apply forward
|= nyp=soba
^+ +>
?: =([0 0] p.nyp)
dune(myz q.nyp)
=> ?: =(p.ank p.p.nyp) .
~& [%durn-in-wrong p.ank p.p.nyp]
.
@ -1186,7 +1320,7 @@
?. ?=(^ ved) ~
=+ his=`@p`q.p.u.fal
=+ [dis=(end 3 1 q.p.u.hyr) rem=(rsh 3 1 q.p.u.hyr)]
?. ?&(?=(%c dis) ?=(?(%w %x %y %z) rem)) ~
?. ?&(?=(%c dis) ?=(?(%v %w %x %y %z) rem)) ~
[~ rem (case p.u.ved) q.p.u.fal q.p.u.dyc tyl]
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: section 3bF, Arvo models ::
@ -1218,7 +1352,7 @@
++ tear |=(a=@ *(unit ,[p=@ q=@])) :: accept
-- ::
-- ::
++ agon (map ,[p=ship q=disc] ,[p=@ud q=@ud]) :: mergepoints
++ agon (map ,[p=ship q=disc] ,[p=@ud q=@ud]) :: mergepts our/their
++ ankh :: fs node (new)
$: p=cash :: recursive hash
q=(unit ,[p=cash q=*]) :: file
@ -1230,8 +1364,8 @@
++ bait ,[p=skin q=@ud r=dove] :: fmt nrecvd spec
++ bath :: convo per client
$: sop=shed :: not stalled
raz=(map ,@ta race) :: statements inbound
ryl=(map ,@ta rill) :: statements outbound
raz=(map path race) :: statements inbound
ryl=(map path rill) :: statements outbound
== ::
++ bead :: terminal control
$: $: bul=@ud :: buffer length
@ -1301,9 +1435,9 @@
++ boat ,[(list slip) tart] :: user stage
++ boon :: fort output
$% [%beer p=ship q=@uvG] :: gained ownership
[%coke p=sock q=cape r=soap s=duct] :: message result
[%coke p=sock q=soap r=cape s=duct] :: message result
[%mead p=lane q=rock] :: accept packet
[%milk p=sock q=@tas r=@ud s=(unit ,*)] :: accept message
[%milk p=sock q=soap r=*] :: accept message
[%ouzo p=lane q=rock] :: transmit packet
[%wine p=sock q=tape] :: notify user
== ::
@ -1326,7 +1460,6 @@
++ cape :: end-to-end result
$? %good :: delivered
%dead :: rejected
%lost :: interrupted
== ::
++ card :: event
$% [%bbye ~] :: reset prompt
@ -1401,14 +1534,14 @@
[%volt p=*] :: upgrade kernel
[%wait p=@da q=path] :: timer wait
[%wake ~] :: timer activate
[%want p=ship q=@ta r=*] :: send message
[%warp p=ship q=riff] :: request
[%wart p=ship q=@ta r=@ud s=(unit ,*)] :: incoming response
[%warn p=tape] :: system message
[%went p=ship q=cape r=soap] :: outgoing reaction
[%waft p=ship q=*] :: response message
[%want p=ship q=path r=*] :: send message
[%warn p=tape] :: syslog
[%warp p=ship q=riff] :: file request
[%wart p=ship q=@tas r=path s=*] :: service request
[%went p=ship q=cape] :: reaction message
[%wipe ~] :: clean to sequence
[%word p=chum] :: set password
[%wort p=tape] :: semantic failure
[%writ p=riot] :: response
== ::
++ cart ,[p=cash q=cash] :: hash change
@ -1443,14 +1576,6 @@
++ cred ,[p=? q=logo q=oryx r=(unit ship)] :: client credentials
++ cult (map duct rave) :: subscriptions
++ deed ,[p=@ q=step] :: signature, stage
++ dock :: link record
$: for=ship :: host
dys=@tas :: linked to desk
kol=case :: last update case
num=@ud :: update count
cuz=(list ,[p=@ud q=dole]) :: cumulative update
== ::
++ dole ,[p=(unit moar) q=(list maki)] :: flow trace
++ dome :: project state
$: ang=agon :: pedigree
ank=ankh :: new state
@ -1458,7 +1583,7 @@
hit=(list frog) :: changes in reverse
lab=(map ,@tas ,@ud) :: labels
== ::
++ desk ,[p=cult q=dome] :: project state
++ desk ,[p=cult q=dome] :: domestic desk state
++ disc ,@ta :: modeshipdeskcasespur
++ door :: foreign contact
$: wod=road :: connection to
@ -1475,9 +1600,8 @@
$: hop=@da :: network boot date
ton=town :: security
zac=(map ship oven) :: flows by server
rop=(map ,[p=@ud q=sock] riff) :: remote requests
== ::
++ frog ,[p=@da q=maki] :: project change
++ frog ,[p=@da q=nori] :: time and change
++ gift :: one-way effect
$% [%$ p=vase] :: trivial output
[%cc p=(unit case)] :: change case
@ -1494,6 +1618,8 @@
[%ok p=disc q=nori] :: save changes
[%sc p=(unit skit)] :: stack library
[%sp p=(list lark)] :: spawn task(s)
[%sq p=ship q=@tas r=path s=*] :: send request
[%sr p=ship q=path r=*] :: send response
[%te p=(list ,@t)] :: dump lines
[%th p=@ud q=love] :: http response
[%va p=@tas q=(unit vase)] :: set/clear variable
@ -1514,10 +1640,11 @@
$% [%eg p=riot] :: simple result
[%ht p=@ud q=scab r=cred s=moth] :: http request
[%it p=~] :: interrupt event
[%lq p=ship q=path r=*] :: client request
[%ly p=newt q=tape] :: lifecycle event
[%ow p=cape] :: one-way reaction
[%rt p=(unit)] :: roundtrip response
[%up p=@t] :: prompt response
[%oy p=ship q=@ta r=@ud s=(unit ,*)] :: incoming request
[%yo p=ship q=cape r=soap] :: request response
[%wa ~] :: alarm
== ::
++ goal :: app request
@ -1526,10 +1653,11 @@
[%eg p=kite] :: single request
[%es p=ship q=disc r=rave] :: subscription
[%ht p=(list rout)] :: http server
[%oy p=@ta] :: listen on channel
[%up p=prod] :: user prompt
[%lq p=@tas] :: listen for service
[%ow ~] :: one-way reaction
[%rt ~] :: roundtrip response
[%up p=prod] :: user prompt
[%wa p=@da] :: alarm
[%yo p=ship q=@ta r=*] :: network message
== ::
++ govt path :: country/postcode
++ gram ,@uw :: physical datagram
@ -1584,7 +1712,6 @@
++ lice ,[p=ship q=buck] :: full license
++ life ,@ud :: regime number
++ lint (list rock) :: fragment array
++ link ,[p=code q=sock] :: connection
++ logo ,@uvI :: session identity
++ love $% :: http response
[%ham p=manx] :: html node
@ -1592,10 +1719,6 @@
[%raw p=httr] :: raw http response
== ::
++ mace (list ,[p=life q=ring]) :: private secrets
++ maki :: general change
$% [& p=nori] :: direct change
[| p=saba] :: metachange
== ::
++ mane $|(@tas [@tas @tas]) :: XML name/space
++ manx ,[t=marx c=marl] :: XML node
++ marl (list manx) :: XML node list
@ -1603,10 +1726,11 @@
++ mart (list ,[n=mane v=tape]) :: XML attributes
++ marv ?(%da %tas %ud) :: release form
++ marx $|(@tas [n=mane a=mart]) :: XML tag
++ masu ,[p=ship q=disc r=moar s=moar] :: sync square
++ math (map ,@t (list ,@t)) :: semiparsed headers
++ meal :: payload
$% [%back p=cape q=flap r=@dr] :: acknowledgment
[%bond p=life q=@ta r=@ud s=*] :: message
[%bond p=life q=path r=@ud s=*] :: message
[%carp p=@ q=@ud r=@ud s=flap t=@] :: skin/inx/cnt/hash
[%fore p=ship q=(unit lane) r=@] :: forwarded packet
== ::
@ -1638,7 +1762,7 @@
goad ::
== ::
++ nori :: repository action
$% [& p=soba] :: delta
$% [& p=(unit masu) q=soba] :: delta
[| p=@tas] :: label
== ::
++ octs ,[p=@ud q=@] :: octet-stream
@ -1695,12 +1819,11 @@
$% [& p=mood] :: single request
[| p=moat] :: change range
== ::
++ rede :: mirror
$: lim=@da :: updated to
ask=(unit ,@da) :: requested to
pal=(list disc) :: propagated to
qyx=cult :: subscriptions
dom=dome :: state
++ rede :: universal project
$: lim=@da :: complete to
qyx=cult :: subscribers
ref=(unit rind) :: external requests
dom=dome :: revision state
== ::
++ riff ,[p=disc q=(unit rave)] :: request/desist
++ rill :: outbound stream
@ -1709,8 +1832,9 @@
== ::
++ rind :: request manager
$: nix=@ud :: request index
bim=(map ,@ud ,[p=duct q=riff]) :: outstanding
bom=(map ,@ud ,[p=duct q=rave]) :: outstanding
fod=(map duct ,@ud) :: current requests
haw=(map mood (unit)) :: simple cache
== ::
++ rink :: foreign state
$: hac=(map rump ,*) :: cache
@ -1726,13 +1850,12 @@
$: hun=duct :: terminal duct
hez=(unit duct) :: sync duct
dos=(map ,@tas ,[p=cult q=dome]) :: native projects
den=(map ,@tas dock) :: links
rid=(map ship ,[p=rind q=rink]) :: neighbors
rid=(map ship (map ,@tas rede)) :: neighbors
== ::
++ rock ,@uvO :: packet
++ rout ,[p=(list host) q=path r=oryx s=path] :: http route (new)
++ rump ,[p=care q=case r=@tas s=path] :: relative path
++ saba ,[p=ship q=@tas r=moar s=(list maki)] :: patch/merge
++ saba ,[p=ship q=@tas r=moar s=(list nori)] :: patch/merge
++ safe :: domestic host
$: hoy=(list ship) :: hierarchy
val=wand :: private keys
@ -1780,8 +1903,8 @@
++ slip ,[p=bell q=goal] :: traceable request
++ sled ,[p=* q=*] :: [data code]
++ snow ,[p=@ud q=@ud r=(set ,@ud)] :: window exceptions
++ soap ,[p=[p=life q=life] q=@tas r=@ud] :: statement id
++ soup ,[p=@tas q=@ud] :: new statement id
++ soap ,[p=[p=life q=life] q=path r=@ud] :: statement id
++ soup ,[p=path q=@ud] :: new statement id
++ soul :: packet in travel
$: gom=soup :: message identity
nux=@ud :: xmission count
@ -1789,10 +1912,11 @@
lys=@da :: last sent
pac=rock :: packet data
== ::
++ soba ,[p=cart q=(list ,[p=path q=miso])] :: delta
++ soba ,[p=cart q=(list tako)] :: delta
++ sock ,[p=ship q=ship] :: from to
++ spur path :: modeshipdeskcasespur
++ step ,[p=bray q=gens r=pass] :: identity stage
++ tako ,[p=path q=miso] :: change detail
++ tart _|+([@da path note] *bowl) :: process core
++ task ::
$: paq=(qeu gyro) :: prompt queue

View File

@ -180,7 +180,7 @@
%+ (posh (add ~s1 now)) ~[la/leaf/"generating 2048-bit RSA key..."]
|= now=@da
=+ loy=(brew 2.048 bur)
%- (post bos [%ta %to] [mig tic ges pub:ex:loy])
%- (post bos %ta [mig tic ges pub:ex:loy])
|= [now=@da rup=(unit ,*)]
:_ ~
?~ rup ~[la/leaf/"request rejected"]

View File

@ -1,4 +1,4 @@
::
::
:: /=main=/bin/hello/hoon
::
|= *

View File

@ -4,18 +4,20 @@
|= *
|= [bud=@p ebb=$|(~ [tex=tape ~])]
^- bowl
:- ~
:- :~ [%sq bud %hi /request ?~(ebb '' (rap 3 tex.ebb))]
==
:- ~
:- ^- (list slip)
:~ [/foo/bar [%yo bud %hi ?~(ebb '' (rap 3 tex.ebb))]]
:~ [/request [%ow ~]]
[/prompt [%up %none "waiting for {(scow %p bud)}" ~]]
==
|= [now=@da pax=path nut=note]
?> =(/foo/bar pax)
?> ?=(%yo -.nut)
:- ?: =(%good q.nut)
?> =(/request pax)
?> ?=(%ow -.nut)
:- ?: =(%good p.nut)
~
:_ ~
:- %ha
:- %leaf
"hi: {<p.nut>}.{<p.p.r.nut>} spurned {<q.r.nut>}/{<q.p.r.nut>}/{<r.r.nut>}"
"hi: {(scow %p bud)} rejected a message"
~

View File

@ -1,12 +1,25 @@
!:
:: /=main=/bin/update/hoon
:: /=main=/bin/install/hoon
::
=> .(-< `who=@p`-<)
|= *
|= [est=time eny=@uw]
|= ~
^- bowl
?: =(~zod who) [~ ~]
=+ bos==+(bos=(sein who) ?.(=(bos who) bos ~zod))
=+ ^= syn ^- (list ,@tas)
[%main %arvo %try ~]
:_ ~
=+ bos=(sein who)
:~ [%xy /c [%pull bos %main ~[%main]]]
[%xy /c [%pull bos %spec ~[%spec]]]
[%xy /c [%pull bos %arvo ~[%arvo]]]
==
^- (list gift)
:- [%la %leaf "updating..."]
%+ turn syn
|= des=@tas
=+ der=((hard dome) .^(%cv /(scot %p bos)/[des]/=))
=+ owr=((hard dome) .^(%cv /(scot %p who)/[des]/=))
=+ sab=`saba`[bos des [0 let.der] (flop (turn hit.der |=(a=frog q.a)))]
=+ lum=(~(auld ze est owr) est %fine sab)
?~ lum
`gift`[%la %leaf "{(trip des)} failed to merge"]
?~ u.lum
`gift`[%la %leaf "{(trip des)} is up to date"]
`gift`[%ok des u.u.lum]

View File

@ -38,39 +38,32 @@
(wop now)
::
++ post :: request/response
|= [him=@p [cho=@ta chu=@ta] msg=*]
|= [him=@p cav=@tas msg=*]
|= woo=||([@da (unit ,*)] bowl)
^- bowl
=+ leg="waiting for {(scow %p him)}"
:- ~ :- ~
:- :~ [%sq him cav /request msg]
==
:- ~
:- ^- (list slip)
:~ [/request [%yo him cho msg]]
[/response [%oy chu]]
:~ [/request [%rt ~]]
[/prompt [%up %none leg ~]]
==
|= [now=@da pax=path nut=note]
^- bowl
?+ -.nut !!
%oy (woo now s.nut)
%yo
?. =(%good q.nut) (woo now ~)
:- ~ :- ~
:_ ..$
^- (list slip)
:~ [/response [%oy chu]]
[/prompt [%up %none leg ~]]
==
?+ -.nut ~& [%bad-nut nut] !!
%rt (woo now p.nut)
==
::
++ pour
|= $: est=@da
dyz=(list ,[p=@tas q=[p=ship q=disc r=moat]])
wop=||([@da (map ,@tas ,[p=(unit ,@ud) q=(list frog)])] bowl)
wop=||([@da (map ,@tas ,[p=@ud q=(list frog)])] bowl)
==
^- bowl
?~ dyz (wop est ~)
=+ :* zyd=(~(gas by *(map ,@tas ,[p=ship q=disc r=moat])) dyz)
fyx=*(map ,@tas ,[p=(unit ,@ud) q=(list frog)])
fyx=*(map ,@tas ,[p=@ud q=(list frog)])
==
=< apex
|%
@ -92,17 +85,17 @@
+>(zyd (~(del by zyd) cyt))
?> ?=(%ud -.q.p.u.rot)
=+ geb=(need (~(get by zyd) cyt))
=+ saq=(need (~(get by fyx) cyt))
=+ saq=(~(get by fyx) cyt)
%= +>.$
zyd
%+ ~(put by zyd) cyt
?> =(+(p.p.r.geb) p.q.p.u.rot)
geb(p.r q.p.u.rot)
?> =(p.p.r.geb p.q.p.u.rot)
geb(p.r [%ud +(p.q.p.u.rot)])
::
fyx
%+ ~(put by fyx) cyt
:- ?~(p.saq [~ p.q.p.u.rot] p.saq)
[((hard frog) r.u.rot) q.saq]
:- ?~(saq p.q.p.u.rot p.u.saq)
[((hard frog) r.u.rot) ?~(saq ~ q.u.saq)]
==
::
++ bite
@ -112,7 +105,8 @@
=+ fuh=(~(tap by zyd) ~)
%+ turn fuh
|= [a=@tas b=[p=ship q=disc r=moat]]
`slip`[[%pl a ~] %es p.b q.b [%| r.b]]
=+ bys=`slip`[[%pull a ~] %es p.b q.b [%| r.b]]
bys
::
++ done
^- bowl