mirror of
https://github.com/urbit/shrub.git
synced 2024-12-13 16:03:36 +03:00
Merge pull request #941 from urbit/single-home-vanes
single-home the vanes
This commit is contained in:
commit
f8905a0640
@ -114,10 +114,10 @@
|
||||
mark
|
||||
{$hiss hiss:eyre}
|
||||
==
|
||||
[%build wire @p ? schematic:ford]
|
||||
[%kill wire @p]
|
||||
[%build wire ? schematic:ford]
|
||||
[%kill wire ~]
|
||||
{$deal wire sock term club} ::
|
||||
{$info wire @p toro:clay} ::
|
||||
{$info wire toro:clay} ::
|
||||
== ::
|
||||
++ move (pair bone card) :: user-level move
|
||||
++ sign ::
|
||||
@ -363,7 +363,7 @@
|
||||
?> ?=($~ pux)
|
||||
:: pin all builds to :now.hid so they don't get cached forever
|
||||
::
|
||||
(he-card(poy `+>+<(pux `way)) %build way our.hid live=%.n schematic)
|
||||
(he-card(poy `+>+<(pux `way)) %build way live=%.n schematic)
|
||||
::
|
||||
++ dy-eyre :: send work to eyre
|
||||
|= {way/wire usr/(unit knot) req/hiss:eyre}
|
||||
@ -376,7 +376,7 @@
|
||||
=. poy ~
|
||||
?~ pux +>
|
||||
%. [%txt "! cancel {<u.pux>}"]
|
||||
he-diff:(he-card [%kill u.pux our.hid])
|
||||
he-diff:(he-card [%kill u.pux ~])
|
||||
::
|
||||
++ dy-slam :: call by ford
|
||||
|= {way/wire gat/vase sam/vase}
|
||||
@ -586,7 +586,6 @@
|
||||
%- he-card(poy ~) :*
|
||||
%info
|
||||
/file
|
||||
our.hid
|
||||
(foal:space:userlib (en-beam:format p.p.mad) cay)
|
||||
==
|
||||
::
|
||||
|
@ -99,7 +99,7 @@
|
||||
== ::
|
||||
++ card :: general card
|
||||
$% {$diff lime} ::
|
||||
{$info wire ship term nori:clay} ::
|
||||
{$info wire term nori:clay} ::
|
||||
{$peer wire dock path} ::
|
||||
{$poke wire dock pear} ::
|
||||
{$pull wire dock ~} ::
|
||||
@ -3114,7 +3114,6 @@
|
||||
:* ost.bol
|
||||
%info
|
||||
/jamfile
|
||||
our.bol
|
||||
(foal:space:userlib paf [%hall-telegrams !>(-)])
|
||||
==
|
||||
::
|
||||
@ -3211,7 +3210,6 @@
|
||||
:* ost.bol
|
||||
%info
|
||||
/jamfile
|
||||
our.bol
|
||||
(foal:space:userlib paf [%hall-telegrams !>(-)])
|
||||
==
|
||||
::
|
||||
|
@ -69,8 +69,7 @@
|
||||
|= [a=spur b=(list spur)]
|
||||
~& >> (flop a)
|
||||
:- %build
|
||||
:^ a-core+a
|
||||
our
|
||||
:+ a-core+a
|
||||
live=|
|
||||
^- schematic:ford
|
||||
:- [%core now-disc %hoon a]
|
||||
@ -100,8 +99,7 @@
|
||||
|= [a=term b=(list term)]
|
||||
~& >> [%ren a]
|
||||
:- %build
|
||||
:^ a-rend+/[a]
|
||||
our
|
||||
:+ a-rend+/[a]
|
||||
live=|
|
||||
^- schematic:ford
|
||||
=/ bem=beam (need (de-beam %/example))
|
||||
|
@ -10,9 +10,9 @@
|
||||
|%
|
||||
+= move [bone card]
|
||||
+= card
|
||||
$% [%info wire ship toro:clay]
|
||||
$% [%info wire toro:clay]
|
||||
[%poke wire dock poke]
|
||||
[%perm wire ship desk path rite:clay]
|
||||
[%perm wire desk path rite:clay]
|
||||
==
|
||||
+= poke
|
||||
$% [%hall-action action:hall]
|
||||
@ -830,7 +830,7 @@
|
||||
=/ bek byk.bol(r [%da now.bol])
|
||||
=. pax (en-beam:format bek (flop pax))
|
||||
%+ ta-emit ost.bol
|
||||
[%info (weld /ta-write pax) our.bol (foal pax cay)]
|
||||
[%info (weld /ta-write pax) (foal pax cay)]
|
||||
::
|
||||
++ ta-remove
|
||||
=, space:userlib
|
||||
@ -840,7 +840,7 @@
|
||||
=. pax (en-beam:format bek (flop pax))
|
||||
^+ ta-this
|
||||
%+ ta-emit ost.bol
|
||||
[%info (weld /ta-remove pax) our.bol (fray pax)]
|
||||
[%info (weld /ta-remove pax) (fray pax)]
|
||||
::
|
||||
:: permissions
|
||||
::
|
||||
@ -849,14 +849,14 @@
|
||||
|= [pax=path r=rule:clay w=rule:clay]
|
||||
^+ ta-this
|
||||
%+ ta-emit ost.bol
|
||||
[%perm (weld /perms pax) our.bol q.byk.bol pax [%rw `r `w]]
|
||||
[%perm (weld /perms pax) q.byk.bol pax [%rw `r `w]]
|
||||
::
|
||||
++ ta-flush-permissions
|
||||
~/ %coll-ta-flush-permissions
|
||||
|= pax=path
|
||||
^+ ta-this
|
||||
%+ ta-emit ost.bol
|
||||
[%perm (weld /perms pax) our.bol q.byk.bol pax [%rw ~ ~]]
|
||||
[%perm (weld /perms pax) q.byk.bol pax [%rw ~ ~]]
|
||||
::
|
||||
:: hall
|
||||
::
|
||||
|
@ -61,19 +61,19 @@
|
||||
?> =(src our)
|
||||
=> |% :: arvo structures
|
||||
++ card ::
|
||||
$% {$build wire @p ? schematic:ford} ::
|
||||
{$drop wire @p @tas} ::
|
||||
{$info wire @p @tas nori} ::
|
||||
$% {$build wire ? schematic:ford} ::
|
||||
{$drop wire @tas} ::
|
||||
{$info wire @tas nori} ::
|
||||
{$mont wire @tas beam} ::
|
||||
{$dirk wire @tas} ::
|
||||
{$ogre wire $@(@tas beam)} ::
|
||||
{$merg wire @p @tas @p @tas case germ} ::
|
||||
{$perm wire ship desk path rite} ::
|
||||
{$merg wire @tas @p @tas case germ} ::
|
||||
{$perm wire desk path rite} ::
|
||||
{$poke wire dock pear} ::
|
||||
{$wipe wire @ud} ::
|
||||
[%keep wire compiler-cache-size=@ud build-cache-size=@ud]
|
||||
{$wait wire @da} ::
|
||||
{$warp wire sock riff} ::
|
||||
{$warp wire ship riff} ::
|
||||
== ::
|
||||
++ pear :: poke fruit
|
||||
$% {$hall-command command:hall} ::
|
||||
@ -154,13 +154,13 @@
|
||||
::
|
||||
++ poke-cancel
|
||||
|= syd/desk
|
||||
abet:(emit %drop /cancel our syd)
|
||||
abet:(emit %drop /cancel syd)
|
||||
::
|
||||
++ poke-info
|
||||
|= {mez/tape tor/(unit toro)}
|
||||
?~ tor
|
||||
abet:(spam leaf+mez ~)
|
||||
abet:(emit:(spam leaf+mez ~) %info /kiln our u.tor)
|
||||
abet:(emit:(spam leaf+mez ~) %info /kiln u.tor)
|
||||
::
|
||||
++ poke-rm
|
||||
|= a/path
|
||||
@ -185,8 +185,8 @@
|
||||
++ poke-permission
|
||||
|= {syd/desk pax/path pub/?}
|
||||
=< abet
|
||||
%^ emit %perm /kiln/permission
|
||||
[our syd pax %r ~ ?:(pub %black %white) ~]
|
||||
%- emit
|
||||
[%perm /kiln/permission syd pax %r ~ ?:(pub %black %white) ~]
|
||||
::
|
||||
++ poke-autoload |=(lod/(unit ?) abet:(poke:autoload lod))
|
||||
++ poke-start-autoload |=(~ abet:start:autoload)
|
||||
@ -225,7 +225,7 @@
|
||||
++ subscribe-next
|
||||
%- emit
|
||||
^- card
|
||||
[%warp /kiln/autoload [our our] %home `[%next %z da+now /sys]]
|
||||
[%warp /kiln/autoload our %home `[%next %z da+now /sys]]
|
||||
::
|
||||
++ writ =>(check-new subscribe-next)
|
||||
++ check-new
|
||||
@ -364,26 +364,20 @@
|
||||
++ spam |*(* %_(+> ..auto (^spam +<)))
|
||||
++ stop
|
||||
=> (spam (render "ended autosync" sud her syd) ~)
|
||||
%- blab :_ ~
|
||||
:* ust %warp
|
||||
/kiln/sync/[syd]/(scot %p her)/[sud]
|
||||
[our her] sud ~
|
||||
==
|
||||
=/ =wire /kiln/sync/[syd]/(scot %p her)/[sud]
|
||||
(blab [ust %warp wire her sud ~] ~)
|
||||
:: XX duplicate of start-sync? see |track
|
||||
::
|
||||
++ start-track
|
||||
=> (spam (render "activated track" sud her syd) ~)
|
||||
=. let 1
|
||||
%- blab
|
||||
:~ :* ost %warp
|
||||
/kiln/sync/[syd]/(scot %p her)/[sud]
|
||||
[our her] sud ~ %sing %y ud+let /
|
||||
== ==
|
||||
=/ =wire /kiln/sync/[syd]/(scot %p her)/[sud]
|
||||
(blab [ost %warp wire her sud `[%sing %y ud+let /]] ~)
|
||||
::
|
||||
++ start-sync
|
||||
=< (spam (render "activated sync" sud her syd) ~)
|
||||
=/ =wire /kiln/sync/[syd]/(scot %p her)/[sud]
|
||||
(blab [ost %warp wire [our her] sud `[%sing %w [%da now] /]] ~)
|
||||
(blab [ost %warp wire her sud `[%sing %w [%da now] /]] ~)
|
||||
::
|
||||
++ writ
|
||||
|= rot=riot
|
||||
@ -410,7 +404,7 @@
|
||||
=< %- spam
|
||||
?: =(our her) ~
|
||||
[(render "beginning sync" sud her syd) ~]
|
||||
(blab [ost %merg wire our syd her sud ud+let germ] ~)
|
||||
(blab [ost %merg wire syd her sud ud+let germ] ~)
|
||||
::
|
||||
++ mere
|
||||
|= mes=(each (set path) (pair term tang))
|
||||
@ -434,7 +428,7 @@
|
||||
==
|
||||
==
|
||||
=/ =wire /kiln/sync/[syd]/(scot %p her)/[sud]
|
||||
(blab [ost %warp wire [our her] sud `[%sing %y ud+let /]] ~)
|
||||
(blab [ost %warp wire her sud `[%sing %y ud+let /]] ~)
|
||||
--
|
||||
::
|
||||
++ work :: state machine
|
||||
@ -469,7 +463,7 @@
|
||||
::
|
||||
++ perform ::
|
||||
^+ .
|
||||
(blab [ost %merg /kiln/[syd] our syd her sud cas gem] ~)
|
||||
(blab [ost %merg /kiln/[syd] syd her sud cas gem] ~)
|
||||
::
|
||||
++ fancy-merge :: send to self
|
||||
|= {syd/desk her/@p sud/desk gem/?($auto germ)}
|
||||
@ -495,7 +489,7 @@
|
||||
?~ saw
|
||||
=> (spam leaf+"%melding %{(trip sud)} into scratch space" ~)
|
||||
%- blab :_ ~
|
||||
[ost %merg /kiln/[syd] our (cat 3 syd '-scratch') her sud cas gem]
|
||||
[ost %merg /kiln/[syd] (cat 3 syd '-scratch') her sud cas gem]
|
||||
=+ :- "failed to set up conflict resolution scratch space"
|
||||
"I'm out of ideas"
|
||||
lose:(spam leaf+-< leaf+-> u.saw)
|
||||
@ -514,7 +508,7 @@
|
||||
=+ tic=(cat 3 syd '-scratch')
|
||||
%- blab :_ ~
|
||||
=, ford
|
||||
:* ost %build /kiln/[syd] our live=%.n
|
||||
:* ost %build /kiln/[syd] live=%.n
|
||||
^- schematic
|
||||
:- %list
|
||||
^- (list schematic)
|
||||
@ -643,7 +637,7 @@
|
||||
=< win
|
||||
%- blab:(spam tan)
|
||||
:_ ~
|
||||
:* ost %info /kiln/[syd] our
|
||||
:* ost %info /kiln/[syd]
|
||||
(cat 3 syd '-scratch') %&
|
||||
%+ murn can
|
||||
|= {p/path q/(unit miso)}
|
||||
|
@ -16,8 +16,8 @@
|
||||
::
|
||||
|%
|
||||
++ data $%({$json json} {$mime mime})
|
||||
++ card $% {$build wire @p ? schematic:ford}
|
||||
{$info wire @p toro:clay}
|
||||
++ card $% {$build wire ? schematic:ford}
|
||||
{$info wire toro:clay}
|
||||
==
|
||||
--
|
||||
::
|
||||
@ -34,7 +34,7 @@
|
||||
=+ ext=%md
|
||||
?~ (file (en-beam beak-now [ext sup]))
|
||||
~|(not-found+[ext `path`(flop sup)] !!)
|
||||
=- abet:(emit %info write+~ our -)
|
||||
=- abet:(emit %info write+~ -)
|
||||
(fray (en-beam beak-now [ext sup]))
|
||||
::
|
||||
++ poke-tree
|
||||
@ -57,7 +57,7 @@
|
||||
=+ .^(path %e /(scot %p our)/serv/(scot %da now))
|
||||
?>(?=({@tas @tas *} -) -)
|
||||
=; sob/soba:clay
|
||||
?~(sob abet abet:(emit %info write+~ our `toro:clay`[i.t.sev %& sob]))
|
||||
?~(sob abet abet:(emit %info write+~ `toro:clay`[i.t.sev %& sob]))
|
||||
=+ pax=`path`/web/plan
|
||||
=+ paf=(en-beam beak-now (flop pax))
|
||||
?~ [fil:.^(arch %cy paf)]
|
||||
@ -134,7 +134,6 @@
|
||||
%- emit :*
|
||||
%build
|
||||
write+pax
|
||||
our
|
||||
live=%.n :: XX defer %nice
|
||||
^- schematic:ford :: SYNTAX ERROR AT START OF LINE?
|
||||
=/ =beak beak-now
|
||||
@ -157,7 +156,7 @@
|
||||
::
|
||||
=/ =cage (result-to-cage:ford build-result)
|
||||
::
|
||||
=- abet:(emit %info write+~ our -)
|
||||
=- abet:(emit %info write+~ -)
|
||||
::
|
||||
(foal :(welp (en-beam beak-now ~) pax /[-.cage]) cage)
|
||||
--
|
||||
|
@ -68,7 +68,7 @@
|
||||
++ go :: go
|
||||
|_ ton=town :: ames state
|
||||
++ as :: as:go
|
||||
|_ [our=ship saf=sufi] :: per server
|
||||
|_ our=ship :: per server
|
||||
++ lax :: lax:as:go
|
||||
|_ [her=ship dur=dore] :: per client
|
||||
++ cluy :: cluy:lax:as:go
|
||||
@ -222,7 +222,7 @@
|
||||
&(!?=(%czar rac) =(our seg))
|
||||
==
|
||||
~
|
||||
`law.saf
|
||||
`law.ton
|
||||
=/ yig sen
|
||||
=/ hom (jam ham)
|
||||
?: =(~ lew.wod.dur)
|
||||
@ -257,37 +257,35 @@
|
||||
|= her=ship
|
||||
^+ lax
|
||||
=/ fod=dore
|
||||
(fall (~(get by hoc.saf) her) (gur her))
|
||||
(fall (~(get by hoc.ton) her) (gur her))
|
||||
~(. lax [her fod])
|
||||
::
|
||||
++ nux :: install dore
|
||||
|= new=_lax
|
||||
^+ +>
|
||||
+>(hoc.saf (~(put by hoc.saf) her.new dur.new))
|
||||
+>(hoc.ton (~(put by hoc.ton) her.new dur.new))
|
||||
::
|
||||
++ sen :: current crypto
|
||||
^- [lyf=life cub=acru]
|
||||
?~(val.saf !! [p.i.val.saf r.i.val.saf])
|
||||
?~(val.ton !! [p.i.val.ton r.i.val.ton])
|
||||
::
|
||||
++ sev :: crypto by life
|
||||
|= mar=life
|
||||
^- [p=? q=acru]
|
||||
?~ val.saf !!
|
||||
?: =(mar p.i.val.saf)
|
||||
[& r.i.val.saf]
|
||||
?> (lth mar p.i.val.saf)
|
||||
?~ val.ton !!
|
||||
?: =(mar p.i.val.ton)
|
||||
[& r.i.val.ton]
|
||||
?> (lth mar p.i.val.ton)
|
||||
:- |
|
||||
|- ^- acru
|
||||
?> ?=(^ t.val.saf)
|
||||
?: =(mar p.i.t.val.saf)
|
||||
r.i.t.val.saf
|
||||
$(t.val.saf t.t.val.saf)
|
||||
?> ?=(^ t.val.ton)
|
||||
?: =(mar p.i.t.val.ton)
|
||||
r.i.t.val.ton
|
||||
$(t.val.ton t.t.val.ton)
|
||||
-- :: --as:go
|
||||
::
|
||||
++ su :: install safe
|
||||
|= new=_as
|
||||
^- town
|
||||
ton(urb (~(put by urb.ton) our.new saf.new))
|
||||
|=(new=_as `town`ton.new)
|
||||
::
|
||||
++ ti :: expire by time
|
||||
|= now=@da
|
||||
@ -295,11 +293,7 @@
|
||||
!!
|
||||
::
|
||||
++ us :: produce safe
|
||||
|= our=ship
|
||||
^- (unit _as)
|
||||
=+ goh=(~(get by urb.ton) our)
|
||||
?~ goh ~
|
||||
[~ ~(. as [our u.goh])]
|
||||
|=(our=ship `_as`~(. as our))
|
||||
-- :: --go
|
||||
--
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
@ -515,23 +509,23 @@
|
||||
|%
|
||||
++ am :: am
|
||||
~% %ames-am ..is ~
|
||||
|_ [now=@da fox=fort ski=sley] :: protocol engine
|
||||
|_ [our=ship now=@da fox=fort ski=sley] :: protocol engine
|
||||
:: +deed: scry for our deed
|
||||
::
|
||||
++ deed
|
||||
~/ %deed
|
||||
|= [our=ship now=@da lyf=life]
|
||||
|= [who=ship lyf=life]
|
||||
;; ^deed
|
||||
%- need %- need
|
||||
%- (sloy-light ski)
|
||||
=/ pur=spur
|
||||
/(scot %ud lyf)/(scot %p our)
|
||||
/(scot %ud lyf)/(scot %p who)
|
||||
[[151 %noun] %j our %deed da+now pur]
|
||||
:: +sein: scry for sponsor
|
||||
::
|
||||
++ sein
|
||||
~/ %sein
|
||||
|= [our=ship now=@da who=ship]
|
||||
|= who=ship
|
||||
;; ship
|
||||
%- need %- need
|
||||
%- (sloy-light ski)
|
||||
@ -540,7 +534,7 @@
|
||||
::
|
||||
++ saxo
|
||||
~/ %saxo
|
||||
|= [our=ship now=@da who=ship]
|
||||
|= who=ship
|
||||
;; (list ship)
|
||||
%- need %- need
|
||||
%- (sloy-light ski)
|
||||
@ -548,30 +542,33 @@
|
||||
::
|
||||
++ vein :: vein:am
|
||||
~/ %vein
|
||||
|= [our=ship =life vein=(map life ring)] :: new private keys
|
||||
|= [=life vein=(map life ring)] :: new private keys
|
||||
^- fort
|
||||
::
|
||||
?. ?& (~(has by vein) life)
|
||||
=(life (roll ~(tap in ~(key by vein)) max))
|
||||
==
|
||||
~| [%vein-mismatch +<] !!
|
||||
:: XX single-home
|
||||
%= fox
|
||||
hoc.ton
|
||||
:: reset connections
|
||||
::
|
||||
(~(run by hoc.ton.fox) |=(=dore dore(caq *clot)))
|
||||
::
|
||||
?. ?| (~(has by urb.ton.fox) our)
|
||||
=(~ urb.ton.fox)
|
||||
==
|
||||
~| [%strange-vein +<] !!
|
||||
=/ suf=sufi (fall (~(get by urb.ton.fox) our) *sufi)
|
||||
:: reset symmetric keys
|
||||
seh.ton
|
||||
:: reset symmetric key cache
|
||||
::
|
||||
~
|
||||
::
|
||||
=. hoc.suf (~(run by hoc.suf) |=(=dore dore(caq *clot)))
|
||||
=. seh.suf ~
|
||||
:: save our deed (for comet/moon communication)
|
||||
::
|
||||
=. law.suf (deed our now life)
|
||||
:: save our secrets, ready for action
|
||||
law.ton
|
||||
:: save our deed (for comet/moon communication)
|
||||
::
|
||||
(deed our life)
|
||||
::
|
||||
=. val.suf
|
||||
val.ton
|
||||
:: save our secrets, ready for action
|
||||
::
|
||||
^- wund
|
||||
%+ turn
|
||||
%+ sort
|
||||
@ -580,10 +577,6 @@
|
||||
(gth life.a life.b)
|
||||
|= [=^life =ring]
|
||||
[life ring (nol:nu:crub:crypto ring)]
|
||||
=/ con=corn (fall (~(get by zac.fox) our) *corn)
|
||||
%= fox
|
||||
urb.ton (~(put by urb.ton.fox) our suf)
|
||||
zac (~(put by zac.fox) our con)
|
||||
==
|
||||
::
|
||||
++ gnaw :: gnaw:am
|
||||
@ -592,57 +585,36 @@
|
||||
^- [p=(list boon) q=fort]
|
||||
?. =(protocol-version (end 0 3 pac)) [~ fox]
|
||||
=+ kec=(bite pac)
|
||||
?: (goop p.p.kec) [~ fox]
|
||||
?. (~(has by urb.ton.fox) q.p.kec)
|
||||
?: (goop p.p.kec)
|
||||
[~ fox]
|
||||
?. =(our q.p.kec)
|
||||
[~ fox]
|
||||
=; zap=[p=(list boon) q=fort]
|
||||
[(weld p.zap next) q.zap]
|
||||
=< zork
|
||||
=< zank
|
||||
:: ~& [%hear p.p.kec ryn `@p`(mug (shaf %flap pac))]
|
||||
%- ~(chew la:(ho:(um q.p.kec) p.p.kec) kay ryn %none (shaf %flap pac))
|
||||
%- ~(chew la:(ho:um p.p.kec) kay ryn %none (shaf %flap pac))
|
||||
[q.kec r.kec]
|
||||
::
|
||||
++ goop :: blacklist
|
||||
|= him=ship
|
||||
|
|
||||
::
|
||||
++ hall :: hall:am
|
||||
^- (list sock) :: all sockets
|
||||
=| sox=(list sock) :: XX hideous
|
||||
|- ^+ sox
|
||||
?~ zac.fox sox
|
||||
=. sox $(zac.fox l.zac.fox)
|
||||
=. sox $(zac.fox r.zac.fox)
|
||||
|- ^+ sox
|
||||
?~ wab.q.n.zac.fox sox
|
||||
=. sox $(wab.q.n.zac.fox l.wab.q.n.zac.fox)
|
||||
=. sox $(wab.q.n.zac.fox r.wab.q.n.zac.fox)
|
||||
[[p.n.zac.fox p.n.wab.q.n.zac.fox] sox]
|
||||
::
|
||||
++ kick :: kick:am
|
||||
|= hen=duct :: refresh net
|
||||
=+ aks=(turn ~(tap by urb.ton.fox) |=([p=ship q=sufi] p))
|
||||
|- ^- [p=(list boon) q=fort]
|
||||
?~ aks [~ fox]
|
||||
=^ buz fox zork:(kick:(um i.aks) hen)
|
||||
=^ biz fox $(aks t.aks)
|
||||
[(weld p.buz p.biz) fox]
|
||||
^- [p=(list boon) q=fort]
|
||||
zork:(kick:um hen)
|
||||
::
|
||||
++ next
|
||||
^- (list boon)
|
||||
=/ doz=(unit @da) [~ (add now ~s32)]
|
||||
=. doz
|
||||
|- ^+ doz
|
||||
?~ zac.fox doz
|
||||
=. doz $(zac.fox l.zac.fox)
|
||||
=. doz $(zac.fox r.zac.fox)
|
||||
=+ yem=q.n.zac.fox
|
||||
|- ^+ doz
|
||||
?~ wab.yem doz
|
||||
=. doz $(wab.yem l.wab.yem)
|
||||
=. doz $(wab.yem r.wab.yem)
|
||||
=+ bah=q.n.wab.yem
|
||||
?~ wab.zac.fox doz
|
||||
=. doz $(wab.zac.fox l.wab.zac.fox)
|
||||
=. doz $(wab.zac.fox r.wab.zac.fox)
|
||||
=+ bah=q.n.wab.zac.fox
|
||||
(hunt lth doz rtn.sop.bah)
|
||||
=/ nex (hunt lth doz tim.fox)
|
||||
?: =(tim.fox nex)
|
||||
@ -651,8 +623,8 @@
|
||||
::
|
||||
++ rack :: rack:am
|
||||
~/ %rack
|
||||
|= [soq=sock cha=path cop=coop] :: e2e ack
|
||||
=+ oh=(ho:(um p.soq) q.soq)
|
||||
|= [her=ship cha=path cop=coop] :: e2e ack
|
||||
=/ oh (ho:um her)
|
||||
=^ gud oh (cook:oh cop cha ~)
|
||||
?. gud oh
|
||||
(cans:oh cha)
|
||||
@ -662,25 +634,24 @@
|
||||
|= hen=duct :: harvest packets
|
||||
^- [p=(list boon) q=fort]
|
||||
=. tim.fox ~
|
||||
=+ sox=hall
|
||||
=/ neb=(list ship) ~(tap in ~(key by wab.zac.fox))
|
||||
=| bin=(list boon)
|
||||
|- ^- [p=(list boon) q=fort]
|
||||
?~ sox
|
||||
?~ neb
|
||||
=^ ban fox (kick hen)
|
||||
[:(weld bin p.ban next) fox]
|
||||
=^ bun fox zork:zank:thaw:(ho:(um p.i.sox) q.i.sox)
|
||||
$(sox t.sox, bin (weld p.bun bin))
|
||||
=^ bun fox zork:zank:thaw:(ho:um i.neb)
|
||||
$(neb t.neb, bin (weld p.bun bin))
|
||||
::
|
||||
++ wise :: wise:am
|
||||
|= [soq=sock hen=duct cha=path val=*] :: send a statement
|
||||
|= [hen=duct her=ship cha=path val=*] :: send a statement
|
||||
^- [p=(list boon) q=fort]
|
||||
=^ ban fox zork:zank:(wool:(ho:(um p.soq) q.soq) hen cha val)
|
||||
=^ ban fox zork:zank:(wool:(ho:um her) hen cha val)
|
||||
[(weld p.ban next) fox]
|
||||
::
|
||||
++ um :: per server
|
||||
|= our=ship
|
||||
=/ gus (need (~(us go ton.fox) our))
|
||||
=/ weg=corn (fall (~(get by zac.fox) our) *corn)
|
||||
=/ gus (~(us go ton.fox) our)
|
||||
=/ weg=corn zac.fox
|
||||
=| bin=(list boon)
|
||||
|%
|
||||
++ ho :: ho:um:am
|
||||
@ -745,7 +716,7 @@
|
||||
bin
|
||||
:_ bin
|
||||
:^ %milk
|
||||
[our her]
|
||||
her
|
||||
`soap`[[lyf:sen:gus clon:diz] cha did.rum]
|
||||
u.s.u.cun
|
||||
==
|
||||
@ -768,7 +739,7 @@
|
||||
?^ ram raz.bah
|
||||
%+ ~(put by raz.bah) cha
|
||||
rum(dod &, bum ?~(cop bum.rum (~(put by bum.rum) did.rum u.cop)))
|
||||
=/ seg (sein our now her)
|
||||
=/ seg (sein her)
|
||||
=^ roc diz (zuul:diz now seg [%back cop dam ~s0])
|
||||
(busk(diz (wast:diz ryn)) xong roc)
|
||||
:: XX move this logic into %zuse, namespaced under %jael?
|
||||
@ -814,7 +785,7 @@
|
||||
:: our sponsor
|
||||
::
|
||||
?& !?=(%czar (clan:title our))
|
||||
=(her (sein our now our))
|
||||
=(her (sein our))
|
||||
==
|
||||
==
|
||||
diz(lew.wod.dur law)
|
||||
@ -844,10 +815,10 @@
|
||||
^+ +>.$
|
||||
:: bos: our sponsor
|
||||
::
|
||||
=/ bos (sein our now our)
|
||||
=/ bos (sein our)
|
||||
:: seg: her sponsor
|
||||
::
|
||||
=/ seg (sein our now her)
|
||||
=/ seg (sein her)
|
||||
:: rac: her rank
|
||||
::
|
||||
=/ rac (clan:title her)
|
||||
@ -857,7 +828,7 @@
|
||||
:: XX update state so we only ask once?
|
||||
::
|
||||
=? +>.$ &(=(~ lew.wod.dur.diz) =(her bos))
|
||||
(emit %beer our her)
|
||||
(emit %beer her)
|
||||
:: request keys and drop packet if :her is (or is a moon of)
|
||||
:: an unfamilar on-chain ship (and not our sponsor)
|
||||
::
|
||||
@ -865,26 +836,26 @@
|
||||
!=(her bos)
|
||||
?| !?=(?(%earl %pawn) rac)
|
||||
?& ?=(%earl rac)
|
||||
=/ fod (~(get by hoc.saf.gus) seg)
|
||||
=/ fod (~(get by hoc.ton.fox) seg)
|
||||
?| ?=(~ fod)
|
||||
?=(~ lew.wod.u.fod)
|
||||
== == == ==
|
||||
(emit %beer our ?:(?=(%earl rac) seg her))
|
||||
(emit %beer ?:(?=(%earl rac) seg her))
|
||||
=/ oub bust:puz
|
||||
=/ neg =(~ yed.caq.dur.diz)
|
||||
=. +>.$ east
|
||||
=/ eng =(~ yed.caq.dur.diz)
|
||||
=/ bou bust:puz
|
||||
=? +>.$ &(oub !bou)
|
||||
(emit [%wine [our her] " is ok"])
|
||||
(emit [%wine her " is ok"])
|
||||
:: the presence of a symmetric key indicates neighboring
|
||||
:: XX use deed instead?
|
||||
::
|
||||
=? +>.$ &(neg !eng)
|
||||
%- emir :~
|
||||
[%wine [our her] " is your neighbor"]
|
||||
[%wine her " is your neighbor"]
|
||||
?> ?=(^ lew.wod.dur.diz)
|
||||
[%raki [our her] [life pass]:u.lew.wod.dur.diz]
|
||||
[%raki her [life pass]:u.lew.wod.dur.diz]
|
||||
==
|
||||
+>.$
|
||||
::
|
||||
@ -950,7 +921,7 @@
|
||||
^+ . :: send new ack
|
||||
:: ~& [%back kay dam]
|
||||
=* cop `coop`?:(=(%good kay) ~ ``[%dead-packet ~])
|
||||
=/ seg (sein our now her)
|
||||
=/ seg (sein her)
|
||||
=^ pax diz (zuul:diz now seg [%back cop dam ~s0])
|
||||
+>(+> (busk(diz (wast:diz ryn)) xong pax))
|
||||
::
|
||||
@ -1079,7 +1050,7 @@
|
||||
=+ bou=bust:puz
|
||||
=. bin
|
||||
?. &(bou !oub) bin
|
||||
:_(bin [%wine [our her] " not responding still trying"])
|
||||
:_(bin [%wine her " not responding still trying"])
|
||||
=. diz ?:((boom:puz now) (pode:diz now) diz)
|
||||
(busk xong yem)
|
||||
::
|
||||
@ -1095,7 +1066,7 @@
|
||||
%= +>.$
|
||||
bin
|
||||
:_ bin
|
||||
`boon`[%cake [our her] [[lyf:sen:gus clon:diz] u.p.yoh] cop u.hud]
|
||||
`boon`[%cake her [[lyf:sen:gus clon:diz] u.p.yoh] cop u.hud]
|
||||
==
|
||||
(busk xong q.yoh)
|
||||
::
|
||||
@ -1103,7 +1074,7 @@
|
||||
|= [gom=soup ham=meal]
|
||||
:: ~& [%wind her gom]
|
||||
^+ +>
|
||||
=/ seg (sein our now her)
|
||||
=/ seg (sein her)
|
||||
=^ wyv diz (zuul:diz now seg ham)
|
||||
=^ feh puz (whap:puz now gom wyv)
|
||||
(busk xong feh)
|
||||
@ -1119,7 +1090,7 @@
|
||||
::
|
||||
:: XX update state so we only ask once?
|
||||
::
|
||||
=? bin =(~ lew.wod.dur.diz) :_(bin [%beer our her])
|
||||
=? bin =(~ lew.wod.dur.diz) :_(bin [%beer her])
|
||||
=. ryl.bah
|
||||
%+ ~(put by ryl.bah) cha
|
||||
%= rol
|
||||
@ -1179,8 +1150,8 @@
|
||||
::
|
||||
++ xong :: xong:ho:um:am
|
||||
^- (list ship) :: route unto
|
||||
=/ fro (saxo our now our)
|
||||
=/ too (saxo our now her)
|
||||
=/ fro (saxo our)
|
||||
=/ too (saxo her)
|
||||
=+ ^= oot ^- (list ship)
|
||||
=| oot=(list ship)
|
||||
|- ^+ oot
|
||||
@ -1194,7 +1165,7 @@
|
||||
++ kick :: kick:um:am
|
||||
|= hen=duct :: test connection
|
||||
^+ +>
|
||||
=/ hoy (tail (saxo our now our))
|
||||
=/ hoy (tail (saxo our))
|
||||
|- ^+ +>.^$
|
||||
?~ hoy
|
||||
+>.^$
|
||||
@ -1218,7 +1189,7 @@
|
||||
:- (flop bin)
|
||||
%_ fox
|
||||
ton (~(su go ton.fox) gus)
|
||||
zac (~(put by zac.fox) our.gus weg)
|
||||
zac weg
|
||||
==
|
||||
-- :: --um:am
|
||||
-- :: --am
|
||||
@ -1263,7 +1234,7 @@
|
||||
?. ?=([$$ %da @] lot)
|
||||
~
|
||||
?. =(now q.p.lot) ~
|
||||
(temp p.why u.hun [syd t.tyl])
|
||||
(temp u.hun [syd t.tyl])
|
||||
::
|
||||
++ stay fox
|
||||
++ take :: accept response
|
||||
@ -1282,9 +1253,8 @@
|
||||
^- [(list move) fort]
|
||||
?- -.bon
|
||||
%beer
|
||||
=/ wir=wire
|
||||
/our/(scot %p p.p.bon)/her/(scot %p q.p.bon)
|
||||
:_ fox [hen [%pass wir %j %pubs p.p.bon q.p.bon]]~
|
||||
=/ =wire /pubs/(scot %p p.bon)
|
||||
:_ fox [hen [%pass wire %j %pubs p.bon]]~
|
||||
::
|
||||
%bock
|
||||
:_ fox [hen %give %turf tuf.fox]~
|
||||
@ -1295,7 +1265,7 @@
|
||||
%cake
|
||||
:: ~? ?=(^ r.bon) [%cake-woot-bad hen r.bon]
|
||||
:_ fox
|
||||
:~ [s.bon %give %woot q.p.bon r.bon]
|
||||
:~ [s.bon %give %woot p.bon r.bon]
|
||||
==
|
||||
::
|
||||
%mead
|
||||
@ -1306,8 +1276,8 @@
|
||||
:: ~& [%milk p.bon q.bon]
|
||||
?> ?=([@ @ *] q.q.bon)
|
||||
?> ?=(?(%a %c %e %g %j) i.q.q.bon)
|
||||
=+ pax=[(scot %p p.p.bon) (scot %p q.p.bon) q.q.bon]
|
||||
:_ fox [hen %pass pax i.q.q.bon %west p.bon t.q.q.bon r.bon]~
|
||||
=/ =wire [(scot %p our) (scot %p p.bon) q.q.bon]
|
||||
:_ fox [hen %pass wire i.q.q.bon %west p.bon t.q.q.bon r.bon]~
|
||||
::
|
||||
%ouzo
|
||||
:: ~& [%send now p.bon `@p`(mug (shaf %flap q.bon))]
|
||||
@ -1323,15 +1293,14 @@
|
||||
[gad.fox %pass /ames %b %rest u.tim.fox]~
|
||||
::
|
||||
%raki
|
||||
=* our p.p.bon
|
||||
=* her q.p.bon
|
||||
=* her p.bon
|
||||
=/ moz=(list move)
|
||||
[hen [%pass / %j %meet our her life=q.bon pass=r.bon]]~
|
||||
[hen [%pass / %j %meet her life=q.bon pass=r.bon]]~
|
||||
:: poke :dns with an indirect binding if her is a planet we're spnsoring
|
||||
::
|
||||
=? moz ?& ?=(%duke (clan:title her))
|
||||
?=(%king (clan:title our))
|
||||
=(our (~(sein am [now fox ski]) our now her))
|
||||
=(our (~(sein am [our now fox ski]) her))
|
||||
==
|
||||
=/ cmd [%meet her]
|
||||
=/ pok [%dns %poke `cage`[%dns-command !>(cmd)]]
|
||||
@ -1339,13 +1308,12 @@
|
||||
[moz fox]
|
||||
::
|
||||
%sake
|
||||
=/ wir=wire
|
||||
/our/(scot %p p.bon)
|
||||
:_ fox [hen [%pass wir %j %vein p.bon]]~
|
||||
=/ =wire /our/(scot %p our)
|
||||
:_ fox [hen [%pass wire %j %vein ~]]~
|
||||
::
|
||||
%wine
|
||||
:_ fox
|
||||
=+ fom=~(rend co %$ %p q.p.bon)
|
||||
=+ fom=~(rend co %$ %p p.bon)
|
||||
:~ :- hen
|
||||
:+ %slip %d
|
||||
:+ %flog %text
|
||||
@ -1372,12 +1340,11 @@
|
||||
[~ +>.$]
|
||||
::
|
||||
%pubs
|
||||
?. ?=([%our @ %her @ ~] tea)
|
||||
?. ?=([%pubs @ ~] tea)
|
||||
~& [%strange-pubs tea]
|
||||
[~ +>]
|
||||
=/ our=ship (slav %p i.t.tea)
|
||||
=/ her=ship (slav %p i.t.t.t.tea)
|
||||
=/ gus (need (~(us go ton.fox) our))
|
||||
=/ her=ship (slav %p i.t.tea)
|
||||
=/ gus (~(us go ton.fox) our)
|
||||
=/ diz (myx:gus her)
|
||||
?: =(0 life.sih)
|
||||
:: this should clear lew.wod.dur.diz because it means
|
||||
@ -1399,8 +1366,7 @@
|
||||
?. ?=([%our @ ~] tea)
|
||||
~& [%strange-vein tea]
|
||||
[~ +>]
|
||||
=/ our=ship (slav %p i.t.tea)
|
||||
=. fox (~(vein am [now fox ski]) our life.sih vein.sih)
|
||||
=. fox (~(vein am [our now fox ski]) life.sih vein.sih)
|
||||
[~ +>.$]
|
||||
::
|
||||
%woot [~ +>]
|
||||
@ -1411,16 +1377,16 @@
|
||||
?- +<.sih
|
||||
::
|
||||
%wake
|
||||
(~(wake am [now fox ski]) hen)
|
||||
(~(wake am [our now fox ski]) hen)
|
||||
::
|
||||
?(%mean %nice) :: XX obsolete
|
||||
?: ?=([%ye ~] tea)
|
||||
[~ fox]
|
||||
?> ?=([@ @ @ *] tea)
|
||||
=+ soq=[(slav %p i.tea) (slav %p i.t.tea)]
|
||||
=+ pax=t.t.tea
|
||||
=/ her (slav %p i.t.tea)
|
||||
=* pax t.t.tea
|
||||
=< zork =< zank
|
||||
%^ ~(rack am [now fox ski]) soq pax
|
||||
%^ ~(rack am [our now fox ski]) her pax
|
||||
:: ~& [%knap-ack ?-(+<.sih %mean `p.+.sih, %nice ~)]
|
||||
?-(+<.sih %mean `p.+.sih, %nice ~)
|
||||
==
|
||||
@ -1454,16 +1420,16 @@
|
||||
[%bock ~]~
|
||||
::
|
||||
%hear
|
||||
(~(gnaw am [now fox ski]) %good p.kyz q.kyz)
|
||||
(~(gnaw am [our now fox ski]) %good p.kyz q.kyz)
|
||||
::
|
||||
%halo
|
||||
(~(gnaw am [now fox ski]) %dead p.kyz q.kyz)
|
||||
(~(gnaw am [our now fox ski]) %dead p.kyz q.kyz)
|
||||
::
|
||||
%hole
|
||||
(~(gnaw am [now fox ski]) %dead p.kyz q.kyz)
|
||||
(~(gnaw am [our now fox ski]) %dead p.kyz q.kyz)
|
||||
::
|
||||
%init
|
||||
:_ fox [[%sake p.kyz] [%brew ~] ~]
|
||||
:_ fox [[%sake ~] [%brew ~] ~]
|
||||
::
|
||||
:: XX this is unused, but they only way to set
|
||||
:: entropy for symmetric keys. Review.
|
||||
@ -1472,10 +1438,10 @@
|
||||
[~ fox(any.ton (shax (mix any.ton.fox p.kyz)))]
|
||||
::
|
||||
%kick
|
||||
=^ ban fox (~(kick am [now fox(hop p.kyz) ski]) hen)
|
||||
=^ ban fox (~(kick am [our now fox(hop p.kyz) ski]) hen)
|
||||
:: +next:am called here because +wake calls +kick in a loop
|
||||
::
|
||||
[(weld p.ban ~(next am [now fox ski])) fox]
|
||||
[(weld p.ban ~(next am [our now fox ski])) fox]
|
||||
::
|
||||
%nuke
|
||||
:- ~
|
||||
@ -1486,18 +1452,10 @@
|
||||
fox(bad (~(put in bad.fox) p.kyz))
|
||||
::
|
||||
%sunk
|
||||
:: XX single-home properly
|
||||
::
|
||||
=/ our=ship
|
||||
=/ key ~(key by urb.ton.fox)
|
||||
?>(?=([@ ~ ~] key) n.key)
|
||||
=* who p.kyz
|
||||
=* lyf q.kyz
|
||||
=/ saf=sufi (~(got by urb.ton.fox) our)
|
||||
=/ con=corn (~(got by zac.fox) our)
|
||||
::
|
||||
?: =(our who)
|
||||
?: (lth lyf p:(head val.saf))
|
||||
?: (lth lyf p:(head val.ton.fox))
|
||||
:: replaying our old sinkage, ignore
|
||||
:: XX review
|
||||
::
|
||||
@ -1505,22 +1463,18 @@
|
||||
:: XX include some helpful instructions here
|
||||
::
|
||||
:_ fox
|
||||
[%wine [our who] ", you have sunk"]~
|
||||
[%wine who ", you have sunk"]~
|
||||
::
|
||||
=. saf saf(hoc (~(del by hoc.saf) who))
|
||||
=. con con(wab (~(del by wab.con) who))
|
||||
::
|
||||
:- [%wine [our who] " has sunk"]~
|
||||
%= fox
|
||||
urb.ton (~(put by urb.ton.fox) our saf)
|
||||
zac (~(put by zac.fox) our con)
|
||||
==
|
||||
=: hoc.ton.fox (~(del by hoc.ton.fox) who)
|
||||
wab.zac.fox (~(del by wab.zac.fox) who)
|
||||
==
|
||||
[[%wine who " has sunk"]~ fox]
|
||||
::
|
||||
%wake
|
||||
(~(wake am [now fox ski]) hen)
|
||||
(~(wake am [our now fox ski]) hen)
|
||||
::
|
||||
%want
|
||||
(~(wise am [now fox ski]) p.kyz hen q.kyz r.kyz)
|
||||
(~(wise am [our now fox ski]) hen p.kyz q.kyz r.kyz)
|
||||
==
|
||||
=> %_(. fox q.fuy)
|
||||
=| out=(list move)
|
||||
@ -1532,18 +1486,16 @@
|
||||
::
|
||||
++ temp
|
||||
~/ %temp
|
||||
|= [our=ship his=ship tyl=path]
|
||||
|= [his=ship tyl=path]
|
||||
^- (unit (unit cage))
|
||||
?: ?=([?(%show %tell) *] tyl)
|
||||
?^ t.tyl [~ ~]
|
||||
=+ gys=(~(us go ton.fox) our)
|
||||
?~ gys [~ ~]
|
||||
=+ zet=zest:(ho:(~(um am [now fox ski]) our) his)
|
||||
=+ zet=zest:(ho:~(um am [our now fox ski]) his)
|
||||
``[%noun ?:(=(%show i.tyl) !>(>zet<) !>(zet))]
|
||||
?: ?=([%pals ~] tyl)
|
||||
?. =(our his)
|
||||
~
|
||||
``[%noun !>(pals:(~(um am [now fox ski]) our))]
|
||||
``[%noun !>(pals:~(um am [our now fox ski]))]
|
||||
~
|
||||
::
|
||||
++ wegh
|
||||
|
@ -180,7 +180,7 @@
|
||||
::
|
||||
:: Formal vane state.
|
||||
::
|
||||
:: -- `fat` is a collection of our domestic ships.
|
||||
:: -- `rom` is our domestic state.
|
||||
:: -- `hoy` is a collection of foreign ships where we know something about
|
||||
:: their clay.
|
||||
:: -- `ran` is the object store.
|
||||
@ -192,7 +192,7 @@
|
||||
:: -- `tip` is the date of the last write; if now, enqueue incoming requests.
|
||||
::
|
||||
++ raft :: filesystem
|
||||
$: fat/(map ship room) :: domestic
|
||||
$: rom/room :: domestic
|
||||
hoy/(map ship rung) :: foreign
|
||||
ran/rang :: hashes
|
||||
mon/(map term beam) :: mount points
|
||||
@ -330,19 +330,19 @@
|
||||
++ move {p/duct q/(wind note gift:able)} :: local move
|
||||
++ note :: out request $->
|
||||
$% $: $a :: to %ames
|
||||
$% {$want p/sock q/path r/*} ::
|
||||
$% {$want p/ship q/path r/*} ::
|
||||
== == ::
|
||||
$: $c :: to %clay
|
||||
$% {$info p/@p q/@tas r/nori} :: internal edit
|
||||
{$merg p/@p q/@tas r/@p s/@tas t/case u/germ} :: merge desks
|
||||
{$warp p/sock q/riff} ::
|
||||
{$werp p/ship q/sock r/riff} ::
|
||||
$% {$info q/@tas r/nori} :: internal edit
|
||||
{$merg p/@tas q/@p r/@tas s/case t/germ:clay} :: merge desks
|
||||
{$warp p/ship q/riff} ::
|
||||
{$werp p/ship q/ship r/riff} ::
|
||||
== == ::
|
||||
$: $d ::
|
||||
$% {$flog p/{$crud p/@tas q/(list tank)}} :: to %dill
|
||||
== == ::
|
||||
$: $f ::
|
||||
$% [%build our=@p live=? schematic=schematic:ford] ::
|
||||
$% [%build live=? schematic=schematic:ford] ::
|
||||
== ==
|
||||
$: $b ::
|
||||
$% {$wait p/@da} ::
|
||||
@ -388,25 +388,24 @@
|
||||
::
|
||||
:: The state includes:
|
||||
::
|
||||
:: -- local urbit `our`
|
||||
:: -- current time `now`
|
||||
:: -- current duct `hen`
|
||||
:: -- local urbit `our`
|
||||
:: -- all vane state `++raft` (rarely used, except for the object store)
|
||||
:: -- target urbit `her`
|
||||
:: -- target desk `syd`
|
||||
:: -- all vane state `++raft` (rarely used, except for the object store)
|
||||
::
|
||||
:: For local desks, `our` == `her` is one of the urbits on our pier. For
|
||||
:: foreign desks, `her` is the urbit the desk is on and `our` is the local
|
||||
:: urbit that's managing the relationship with the foreign urbit. Don't mix
|
||||
:: up those two, or there will be wailing and gnashing of teeth.
|
||||
::
|
||||
:: While setting up `++de`, we check if the given `her` is a local urbit. If
|
||||
:: so, we pull the room from `fat` in the raft and get the desk information
|
||||
:: from `dos` in there. Otherwise, we get the rung from `hoy` and get the
|
||||
:: desk information from `rus` in there. In either case, we normalize the
|
||||
:: desk information to a `++rede`, which is all the desk-specific data that
|
||||
:: we utilize in `++de`. Because it's effectively a part of the `++de`
|
||||
:: state, let's look at what we've got:
|
||||
:: While setting up `++de`, we check if `our` == `her`. If so, we get
|
||||
:: the desk information from `dos.rom`. Otherwise, we get the rung from
|
||||
:: `hoy` and get the desk information from `rus` in there. In either case,
|
||||
:: we normalize the desk information to a `++rede`, which is all the
|
||||
:: desk-specific data that we utilize in `++de`. Because it's effectively
|
||||
:: a part of the `++de` state, let's look at what we've got:
|
||||
::
|
||||
:: -- `lim` is the most recent date we're confident we have all the
|
||||
:: information for. For local desks, this is always `now`. For foreign
|
||||
@ -429,47 +428,44 @@
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|%
|
||||
++ de :: per desk
|
||||
|= {now/@da hen/duct raft}
|
||||
|= {{our/@p her/@p} syd/desk}
|
||||
=* ruf +>+<+>
|
||||
=+ ^- {hun/(unit duct) rede}
|
||||
=+ rom=(~(get by fat.ruf) her)
|
||||
?~ rom
|
||||
|= [our=ship now=@da hen=duct raft]
|
||||
|= [her=ship syd=desk]
|
||||
:: XX ruf=raft crashes in the compiler
|
||||
::
|
||||
=* ruf |3.+6.^$
|
||||
::
|
||||
=+ ^- [hun=(unit duct) rede]
|
||||
?. =(our her)
|
||||
:: no duct, foreign +rede or default
|
||||
::
|
||||
:- ~
|
||||
%+ fall
|
||||
(~(get by rus:(fall (~(get by hoy.ruf) her) *rung)) syd)
|
||||
:* lim=~2000.1.1
|
||||
ref=[~ *rind]
|
||||
qyx=~
|
||||
dom=*dome
|
||||
dok=~
|
||||
mer=~
|
||||
per=~
|
||||
pew=~
|
||||
==
|
||||
:- `hun.u.rom
|
||||
=+ jod=(fall (~(get by dos.u.rom) syd) *dojo)
|
||||
:* lim=now
|
||||
ref=~
|
||||
qyx=qyx.jod
|
||||
dom=dom.jod
|
||||
dok=dok.jod
|
||||
mer=mer.jod
|
||||
per=per.jod
|
||||
pew=pew.jod
|
||||
==
|
||||
=* red ->
|
||||
=/ rus rus:(fall (~(get by hoy.ruf) her) *rung)
|
||||
%+ fall (~(get by rus) syd)
|
||||
[lim=~2000.1.1 ref=`*rind qyx=~ dom=*dome dok=~ mer=~ per=~ pew=~]
|
||||
:: administrative duct, domestic +rede
|
||||
::
|
||||
:- `hun.rom.ruf
|
||||
=/ jod (fall (~(get by dos.rom.ruf) syd) *dojo)
|
||||
[lim=now ref=~ [qyx dom dok mer per pew]:jod]
|
||||
::
|
||||
=* red=rede ->
|
||||
=| mow/(list move)
|
||||
|%
|
||||
++ abet :: resolve
|
||||
^- {(list move) raft}
|
||||
:_ =+ rom=(~(get by fat.ruf) her)
|
||||
?~ rom
|
||||
=+ rug=(~(put by rus:(fall (~(get by hoy.ruf) her) *rung)) syd red)
|
||||
ruf(hoy (~(put by hoy.ruf) her rug))
|
||||
=+ dos=(~(put by dos.u.rom) syd [qyx dom dok mer per pew])
|
||||
ruf(fat (~(put by fat.ruf) her [(need hun) dos]))
|
||||
(flop mow)
|
||||
^- [(list move) raft]
|
||||
:- (flop mow)
|
||||
?. =(our her)
|
||||
:: save foreign +rede
|
||||
::
|
||||
=/ rus rus:(fall (~(get by hoy.ruf) her) *rung)
|
||||
=/ rug (~(put by rus) syd red)
|
||||
ruf(hoy (~(put by hoy.ruf) her rug))
|
||||
:: save domestic +room
|
||||
::
|
||||
%= ruf
|
||||
hun.rom (need hun)
|
||||
dos.rom (~(put by dos.rom.ruf) syd [qyx dom dok mer per pew]:red)
|
||||
==
|
||||
::
|
||||
:: Handle `%sing` requests
|
||||
::
|
||||
@ -620,7 +616,7 @@
|
||||
(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 %build our live=%.n %pin
|
||||
%f %build live=%.n %pin
|
||||
(case-to-date q.mun)
|
||||
(lobe-to-schematic:ze [her syd] r.mun p.dat)
|
||||
==
|
||||
@ -700,7 +696,7 @@
|
||||
::
|
||||
++ send-over-ames
|
||||
|= {a/duct b/path c/ship d/{p/@ud q/riff}}
|
||||
(emit a %pass b %a %want [our c] [%c %question p.q.d (scot %ud p.d) ~] q.d)
|
||||
(emit a %pass b %a %want c [%c %question p.q.d (scot %ud p.d) ~] q.d)
|
||||
::
|
||||
:: Create a request that cannot be filled immediately.
|
||||
::
|
||||
@ -836,7 +832,7 @@
|
||||
%- emit
|
||||
^- move
|
||||
:* hen %pass [%ergoing (scot %p her) syd ~] %f
|
||||
%build our live=%.n %list
|
||||
%build live=%.n %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn `(list path)`mus
|
||||
|= a/path
|
||||
@ -1207,7 +1203,7 @@
|
||||
^- (list move)
|
||||
:~ :* hen %pass
|
||||
[%inserting (scot %p her) syd (scot %da wen) ~]
|
||||
%f %build our live=%.n %pin wen %list
|
||||
%f %build live=%.n %pin wen %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn ins.nuz
|
||||
|= {pax/path mis/miso}
|
||||
@ -1218,7 +1214,7 @@
|
||||
==
|
||||
:* hen %pass
|
||||
[%diffing (scot %p her) syd (scot %da wen) ~]
|
||||
%f %build our live=%.n %pin wen %list
|
||||
%f %build live=%.n %pin wen %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn dif.nuz
|
||||
|= {pax/path mis/miso}
|
||||
@ -1230,7 +1226,7 @@
|
||||
==
|
||||
:* hen %pass
|
||||
[%castifying (scot %p her) syd (scot %da wen) ~]
|
||||
%f %build our live=%.n %pin wen %list
|
||||
%f %build live=%.n %pin wen %list
|
||||
::~ [her syd %da wen] %tabl
|
||||
^- (list schematic:ford)
|
||||
%+ turn mut.nuz
|
||||
@ -1401,7 +1397,7 @@
|
||||
%- emit
|
||||
:* hen %pass
|
||||
[%mutating (scot %p her) syd (scot %da wen) ~]
|
||||
%f %build our live=%.n %pin wen %list
|
||||
%f %build live=%.n %pin wen %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn cat
|
||||
|= {pax/path cay/cage}
|
||||
@ -1498,7 +1494,7 @@
|
||||
^+ +>
|
||||
%- emit
|
||||
:* hen %pass [%patching (scot %p her) syd ~] %f
|
||||
%build our live=%.n %list
|
||||
%build live=%.n %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn (sort ~(tap by hat) sort-by-head)
|
||||
|= {a/path b/lobe}
|
||||
@ -1585,7 +1581,7 @@
|
||||
:: =- ~& %formed-ergo -
|
||||
%- emit(dok ~)
|
||||
:* hen %pass [%ergoing (scot %p her) syd ~] %f
|
||||
%build our live=%.n %list
|
||||
%build live=%.n %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn ~(tap in sum)
|
||||
|= a/path
|
||||
@ -1759,7 +1755,7 @@
|
||||
%- emit
|
||||
:* hen %pass
|
||||
[%foreign-x (scot %p our) (scot %p her) syd car (scot cas) pax]
|
||||
%f %build our live=%.n %pin
|
||||
%f %build live=%.n %pin
|
||||
(case-to-date cas)
|
||||
(vale-page [her syd] peg)
|
||||
==
|
||||
@ -1868,7 +1864,7 @@
|
||||
%- emit
|
||||
:* hen %pass
|
||||
[%foreign-plops (scot %p our) (scot %p her) syd lum ~]
|
||||
%f %build our live=%.n %pin (case-to-date cas)
|
||||
%f %build live=%.n %pin (case-to-date cas)
|
||||
%list
|
||||
^- (list schematic:ford)
|
||||
%+ turn ~(tap in pop)
|
||||
@ -2755,12 +2751,13 @@
|
||||
~
|
||||
?- p.mun
|
||||
$d
|
||||
=+ rom=(~(get by fat.ruf) her)
|
||||
?~ rom
|
||||
~&(%null-rom-cd [~ ~])
|
||||
:: XX this should only allow reads at the currebt date
|
||||
::
|
||||
?: !=(our her)
|
||||
[~ ~]
|
||||
?^ r.mun
|
||||
~&(%no-cd-path [~ ~])
|
||||
[~ ~ %& %noun !>(~(key by dos.u.rom))]
|
||||
[~ ~ %& %noun !>(~(key by dos.rom.ruf))]
|
||||
::
|
||||
$p (read-p r.mun)
|
||||
$t (bind (read-t yon r.mun) (lift |=(a=cage [%& a])))
|
||||
@ -2926,8 +2923,7 @@
|
||||
%- 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
|
||||
`[%sing %v cas.dat /]
|
||||
[%c %warp p.ali q.ali `[%sing %v cas.dat /]]
|
||||
==
|
||||
::
|
||||
:: Parse the state of ali's desk, and get the most recent commit.
|
||||
@ -3171,7 +3167,7 @@
|
||||
:* hen %pass
|
||||
=+ (cat 3 %diff- nam)
|
||||
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali - ~]
|
||||
%f %build p.bob live=%.n %pin (case-to-date r.oth) %list
|
||||
%f %build live=%.n %pin (case-to-date r.oth) %list
|
||||
^- (list schematic:ford)
|
||||
%+ murn ~(tap by q.bas.dat)
|
||||
|= {pax/path lob/lobe}
|
||||
@ -3300,7 +3296,7 @@
|
||||
%- emit(wat.dat %merge)
|
||||
:* hen %pass
|
||||
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %merge ~]
|
||||
%f %build p.bob live=%.n %list
|
||||
%f %build live=%.n %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn ~(tap by (~(int by can.dal.dat) can.dob.dat))
|
||||
|= {pax/path *}
|
||||
@ -3340,7 +3336,7 @@
|
||||
%- emit(wat.dat %build)
|
||||
:* hen %pass
|
||||
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %build ~]
|
||||
%f %build p.bob live=%.n %list
|
||||
%f %build live=%.n %list
|
||||
^- (list schematic:ford)
|
||||
%+ murn ~(tap by bof.dat)
|
||||
|= {pax/path cay/(unit cage)}
|
||||
@ -3486,7 +3482,7 @@
|
||||
%- emit(wat.dat %checkout)
|
||||
:* hen %pass
|
||||
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %checkout ~]
|
||||
%f %build p.bob live=%.n %pin (case-to-date r.val) %list
|
||||
%f %build live=%.n %pin (case-to-date r.val) %list
|
||||
:: ~ val %tabl
|
||||
^- (list schematic:ford)
|
||||
%+ murn ~(tap by q.new.dat)
|
||||
@ -3544,7 +3540,7 @@
|
||||
%- emit(wat.dat %ergo)
|
||||
:* hen %pass
|
||||
[%merge (scot %p p.bob) q.bob (scot %p p.ali) q.ali %ergo ~]
|
||||
%f %build p.bob live=%.n %pin (case-to-date r.val) %list
|
||||
%f %build live=%.n %pin (case-to-date r.val) %list
|
||||
^- (list schematic:ford)
|
||||
%+ turn ~(tap in sum)
|
||||
|= a/path
|
||||
@ -3687,7 +3683,7 @@
|
||||
:: This is the arvo interface vane. Our formal state is a `++raft`, which
|
||||
:: has five components:
|
||||
::
|
||||
:: -- `fat` is the state for all local desks.
|
||||
:: -- `rom` is the state for all local desks.
|
||||
:: -- `hoy` is the state for all foreign desks.
|
||||
:: -- `ran` is the global, hash-addressed object store.
|
||||
:: -- `mon` is the set of mount points in unix.
|
||||
@ -3724,11 +3720,10 @@
|
||||
(~(put by cez.ruf) nom.req cew.req)
|
||||
:: wake all desks, a request may have been affected.
|
||||
=| mos/(list move)
|
||||
=+ rom=(fall (~(get by fat.ruf) our.req) *room)
|
||||
=+ des=~(tap in ~(key by dos.rom))
|
||||
=/ des ~(tap in ~(key by dos.rom.ruf))
|
||||
|-
|
||||
?~ des [[[hen %give %mack ~] mos] ..^^$]
|
||||
=+ den=((de now hen ruf) [. .]:our.req i.des)
|
||||
=/ den ((de our now hen ruf) our i.des)
|
||||
=^ mor ruf
|
||||
=< abet:wake
|
||||
?: ?=(^ cew.req) den
|
||||
@ -3739,8 +3734,7 @@
|
||||
[[hen %give %cruz cez.ruf]~ ..^$]
|
||||
::
|
||||
$crow
|
||||
=+ rom=(fall (~(get by fat.ruf) our.req) *room)
|
||||
=+ des=~(tap by dos.rom)
|
||||
=/ des ~(tap by dos.rom.ruf)
|
||||
=| rus/(map desk {r/regs w/regs})
|
||||
|^
|
||||
?~ des [[hen %give %croz rus]~ ..^^$]
|
||||
@ -3764,7 +3758,7 @@
|
||||
::
|
||||
$drop
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our.req des.req)
|
||||
=/ den ((de our now hen ruf) our des.req)
|
||||
abet:drop-me:den
|
||||
[mos ..^$]
|
||||
::
|
||||
@ -3783,17 +3777,12 @@
|
||||
?: =(%$ des.req)
|
||||
[~ ..^$]
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our.req des.req)
|
||||
=/ den ((de our now hen ruf) our des.req)
|
||||
abet:(edit:den now dit.req)
|
||||
[mos ..^$]
|
||||
::
|
||||
$init
|
||||
:- ~
|
||||
%_ ..^$
|
||||
fat.ruf
|
||||
?< (~(has by fat.ruf) our.req)
|
||||
(~(put by fat.ruf) our.req [-(hun hen)]:[*room .])
|
||||
==
|
||||
[~ ..^$(hun.rom.ruf hen)]
|
||||
::
|
||||
$into
|
||||
=. hez.ruf `hen
|
||||
@ -3804,11 +3793,8 @@
|
||||
=+ ^- bem/beam
|
||||
?^ bem
|
||||
u.bem
|
||||
[[?>(?=(^ fat.ruf) p.n.fat.ruf) %base %ud 1] ~]
|
||||
=+ rom=(~(get by fat.ruf) p.bem)
|
||||
?~ rom
|
||||
~
|
||||
=+ dos=(~(get by dos.u.rom) q.bem)
|
||||
[[our %base %ud 1] ~]
|
||||
=/ dos (~(get by dos.rom.ruf) q.bem)
|
||||
?~ dos
|
||||
~
|
||||
?: =(0 let.dom.u.dos)
|
||||
@ -3820,18 +3806,18 @@
|
||||
?=($mime p.p.b)
|
||||
?=({$hoon ~} (slag (dec (lent a)) a))
|
||||
==
|
||||
:~ [hen %pass /one %c %info p.bem q.bem %& one]
|
||||
[hen %pass /two %c %info p.bem q.bem %& two]
|
||||
:~ [hen %pass /one %c %info q.bem %& one]
|
||||
[hen %pass /two %c %info q.bem %& two]
|
||||
==
|
||||
=+ yak=(~(got by hut.ran.ruf) (~(got by hit.dom.u.dos) let.dom.u.dos))
|
||||
=+ cos=(mode-to-soba q.yak (flop s.bem) all.req fis.req)
|
||||
[hen %pass /both %c %info p.bem q.bem %& cos]~
|
||||
[hen %pass /both %c %info q.bem %& cos]~
|
||||
::
|
||||
$merg :: direct state up
|
||||
?: =(%$ des.req)
|
||||
[~ ..^$]
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our.req des.req)
|
||||
=/ den ((de our now hen ruf) our des.req)
|
||||
abet:abet:(start:(me:ze:den [her.req dem.req] ~ &) cas.req how.req)
|
||||
[mos ..^$]
|
||||
::
|
||||
@ -3844,14 +3830,11 @@
|
||||
=* bem bem.req
|
||||
=. mon.ruf
|
||||
(~(put by mon.ruf) des.req [p.bem q.bem r.bem] s.bem)
|
||||
=+ yar=(~(get by fat.ruf) p.bem)
|
||||
?~ yar
|
||||
[~ ..^$]
|
||||
=+ dos=(~(get by dos.u.yar) q.bem)
|
||||
=/ dos (~(get by dos.rom.ruf) q.bem)
|
||||
?~ dos
|
||||
[~ ..^$]
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:p.bem q.bem)
|
||||
=/ den ((de our now hen ruf) p.bem q.bem)
|
||||
abet:(mont:den des.req bem)
|
||||
[mos ..^$]
|
||||
::
|
||||
@ -3889,24 +3872,26 @@
|
||||
::
|
||||
$perm
|
||||
=^ mos ruf
|
||||
::TODO after new boot system, just use our from global.
|
||||
=+ den=((de now hen ruf) [. .]:our.req des.req)
|
||||
=/ den ((de our now hen ruf) our des.req)
|
||||
abet:(perm:den pax.req rit.req)
|
||||
[mos ..^$]
|
||||
::
|
||||
$sunk [~ ..^$]
|
||||
::
|
||||
?($warp $werp)
|
||||
:: capture whether this read is on behalf of another ship
|
||||
:: for permissions enforcement
|
||||
::
|
||||
=^ for req
|
||||
?: ?=($warp -.req)
|
||||
[~ req]
|
||||
:_ [%warp wer.req rif.req]
|
||||
?: =(who.req p.wer.req) ~
|
||||
`who.req
|
||||
:- ?:(=(our who.req) ~ `who.req)
|
||||
[%warp wer.req rif.req]
|
||||
::
|
||||
?> ?=($warp -.req)
|
||||
=* rif rif.req
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) wer.req p.rif)
|
||||
=/ den ((de our now hen ruf) wer.req p.rif)
|
||||
=< abet
|
||||
?~ q.rif
|
||||
cancel-request:den
|
||||
@ -3924,16 +3909,15 @@
|
||||
=+ ryf=((hard riff) res.req)
|
||||
:_ ..^$
|
||||
:~ [hen %give %mack ~]
|
||||
:- hen
|
||||
:^ %pass [(scot %p p.wer) (scot %p q.wer) t.pax]
|
||||
%c
|
||||
[%werp q.wer [p.wer p.wer] ryf]
|
||||
=/ =wire
|
||||
[(scot %p our) (scot %p wer) t.pax]
|
||||
[hen %pass wire %c %werp wer our ryf]
|
||||
==
|
||||
?> ?=({$answer @ @ ~} pax)
|
||||
=+ syd=(slav %tas i.t.pax)
|
||||
=+ inx=(slav %ud i.t.t.pax)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) wer syd)
|
||||
=/ den ((de our now hen ruf) wer syd)
|
||||
abet:(take-foreign-update:den inx ((hard (unit rand)) res.req))
|
||||
[[[hen %give %mack ~] mos] ..^$]
|
||||
::
|
||||
@ -3942,7 +3926,7 @@
|
||||
:^ hen %give %mass
|
||||
:- %clay
|
||||
:- %|
|
||||
:~ domestic+[%& fat.ruf]
|
||||
:~ domestic+[%& rom.ruf]
|
||||
foreign+[%& hoy.ruf]
|
||||
:- %object-store :- %|
|
||||
:~ commits+[%& hut.ran.ruf]
|
||||
@ -3953,80 +3937,11 @@
|
||||
::
|
||||
++ load
|
||||
=> |%
|
||||
++ rove-0
|
||||
$% {$sing p/mood}
|
||||
{$next p/mood q/cach}
|
||||
$: $mult
|
||||
p/mool
|
||||
q/(unit aeon)
|
||||
r/(map (pair care path) cach)
|
||||
s/(map (pair care path) cach)
|
||||
==
|
||||
{$many p/? q/moat r/(map path lobe)}
|
||||
==
|
||||
++ wove-0 (cork wove |=(a/wove a(q (rove-0 q.a))))
|
||||
++ cult-0 (jug wove-0 duct)
|
||||
++ dojo-0 (cork dojo |=(a/dojo a(qyx *cult-0)))
|
||||
++ rede-0 (cork rede |=(a/rede a(qyx *cult-0)))
|
||||
++ room-0 (cork room |=(a/room a(dos (~(run by dos.a) dojo-0))))
|
||||
++ rung-0 (cork rung |=(a/rung a(rus (~(run by rus.a) rede-0))))
|
||||
++ raft-0
|
||||
%+ cork raft
|
||||
|= a/raft
|
||||
%= a
|
||||
fat (~(run by fat.a) room-0)
|
||||
hoy (~(run by hoy.a) rung-0)
|
||||
==
|
||||
::
|
||||
++ axle $%({$1 ruf/raft} {$0 ruf/raft-0})
|
||||
++ axle $%([%1 ruf=raft])
|
||||
--
|
||||
|= old/axle
|
||||
|= old=axle
|
||||
^+ ..^$
|
||||
?- -.old
|
||||
$1
|
||||
..^$(ruf ruf.old)
|
||||
::
|
||||
$0
|
||||
|^
|
||||
=- ^$(old [%1 -])
|
||||
=+ ruf.old
|
||||
:* (~(run by fat) rom)
|
||||
(~(run by hoy) run)
|
||||
ran mon hez ~ ~ *@da
|
||||
==
|
||||
::
|
||||
++ wov
|
||||
|= a/wove-0
|
||||
^- wove
|
||||
:- p.a
|
||||
?. ?=($next -.q.a) q.a
|
||||
[%next p.q.a ~ q.q.a]
|
||||
::
|
||||
++ cul
|
||||
|= a/cult-0
|
||||
^- cult
|
||||
%- ~(gas by *cult)
|
||||
%+ turn ~(tap by a)
|
||||
|= {p/wove-0 q/(set duct)}
|
||||
[(wov p) q]
|
||||
::
|
||||
++ rom
|
||||
|= room-0
|
||||
^- room
|
||||
:- hun
|
||||
%- ~(run by dos)
|
||||
|= d/dojo-0
|
||||
^- dojo
|
||||
d(qyx (cul qyx.d))
|
||||
::
|
||||
++ run
|
||||
|= a/rung-0
|
||||
=- a(rus (~(run by rus.a) -))
|
||||
|= r/rede-0
|
||||
^- rede
|
||||
r(qyx (cul qyx.r))
|
||||
--
|
||||
==
|
||||
..^$(ruf ruf.old)
|
||||
::
|
||||
++ scry :: inspect
|
||||
|= {fur/(unit (set monk)) ren/@tas why/shop syd/desk lot/coin tyl/path}
|
||||
@ -4035,7 +3950,6 @@
|
||||
=* his p.why
|
||||
:: ~& scry+[ren `path`[(scot %p his) syd ~(rent co lot) tyl]]
|
||||
:: =- ~& %scry-done -
|
||||
=+ got=(~(has by fat.ruf) his)
|
||||
=+ luk=?.(?=(%$ -.lot) ~ ((soft case) p.lot))
|
||||
?~ luk [~ ~]
|
||||
?: =(%$ ren)
|
||||
@ -4050,7 +3964,7 @@
|
||||
?: ?=(%| -.m) ~
|
||||
?: =(p.m his) ~
|
||||
`p.m
|
||||
=+ den=((de now [/scryduct ~] ruf) [. .]:his syd)
|
||||
=/ den ((de our now [/scryduct ~] ruf) his syd)
|
||||
=+ (aver:den for u.run u.luk tyl)
|
||||
?~ - -
|
||||
?~ u.- -
|
||||
@ -4063,20 +3977,16 @@
|
||||
^+ [*(list move) ..^$]
|
||||
?: ?=({$merge @ @ @ @ @ ~} tea)
|
||||
?> ?=(?($writ $made) +<.q.hin)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=* syd i.t.t.tea
|
||||
=+ her=(slav %p i.t.t.t.tea)
|
||||
=* sud i.t.t.t.t.tea
|
||||
=* sat i.t.t.t.t.t.tea
|
||||
=+ dat=?-(+<.q.hin $writ [%& p.q.hin], $made [%| result.q.hin])
|
||||
=+ ^- kan/(unit dome)
|
||||
%+ biff (~(get by fat.ruf) her)
|
||||
|= room
|
||||
%+ bind (~(get by dos) sud)
|
||||
|= dojo
|
||||
dom
|
||||
=/ kan=(unit dome)
|
||||
%+ bind (~(get by dos.rom.ruf) sud)
|
||||
|=(a=dojo dom.a)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:abet:(route:(me:ze:den [her sud] kan |) sat dat)
|
||||
[mos ..^$]
|
||||
?: ?=({$blab care @ @ *} tea)
|
||||
@ -4103,76 +4013,68 @@
|
||||
?+ -.tea !!
|
||||
$inserting
|
||||
?> ?=({@ @ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.tea)
|
||||
=+ wen=(slav %da i.t.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:(take-inserting:den wen result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$diffing
|
||||
?> ?=({@ @ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.tea)
|
||||
=+ wen=(slav %da i.t.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:(take-diffing:den wen result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$castifying
|
||||
?> ?=({@ @ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.tea)
|
||||
=+ wen=(slav %da i.t.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:(take-castify:den wen result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$mutating
|
||||
?> ?=({@ @ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.tea)
|
||||
=+ wen=(slav %da i.t.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:(take-mutating:den wen result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$patching
|
||||
?> ?=({@ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:(take-patch:den result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$ergoing
|
||||
?> ?=({@ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [. .]:our syd)
|
||||
=/ den ((de our now hen ruf) our syd)
|
||||
abet:(take-ergo:den result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$foreign-plops
|
||||
?> ?=({@ @ @ @ ~} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ her=(slav %p i.t.t.tea)
|
||||
=* syd i.t.t.t.tea
|
||||
=+ lem=(slav %da i.t.t.t.t.tea)
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [our her] syd)
|
||||
=/ den ((de our now hen ruf) her syd)
|
||||
abet:(take-foreign-plops:den ?~(lem ~ `lem) result.q.hin)
|
||||
[mos ..^$]
|
||||
::
|
||||
$foreign-x
|
||||
?> ?=({@ @ @ @ @ *} t.tea)
|
||||
=+ our=(slav %p i.t.tea)
|
||||
=+ her=(slav %p i.t.t.tea)
|
||||
=+ syd=(slav %tas i.t.t.t.tea)
|
||||
=+ car=((hard care) i.t.t.t.t.tea)
|
||||
@ -4182,7 +4084,7 @@
|
||||
->+
|
||||
=* pax t.t.t.t.t.t.tea
|
||||
=^ mos ruf
|
||||
=+ den=((de now hen ruf) [our her] syd)
|
||||
=/ den ((de our now hen ruf) her syd)
|
||||
abet:(take-foreign-x:den car cas pax result.q.hin)
|
||||
[mos ..^$]
|
||||
==
|
||||
@ -4210,23 +4112,18 @@
|
||||
?> =(hen queued-duct)
|
||||
::
|
||||
(call hen [-:!>(*task:able) queued-task])
|
||||
:: =+ dal=(turn ~(tap by fat.ruf) |=([a=@p b=room] a))
|
||||
:: =| mos=(list move)
|
||||
:: |- ^- [p=(list move) q=_..^^$]
|
||||
:: ?~ dal [mos ..^^$]
|
||||
:: =+ une=(un i.dal now hen ruf)
|
||||
:: =^ som une wake:une
|
||||
:: $(dal t.dal, ruf abet:une, mos (weld som mos))
|
||||
:: =^ mos=(list move) une
|
||||
:: wake:(un our now hen ruf)
|
||||
:: [mos ..^^$]
|
||||
::
|
||||
$writ
|
||||
?> ?=({@ @ *} tea)
|
||||
~| i=i.tea
|
||||
~| it=i.t.tea
|
||||
=+ our=(slav %p i.tea)
|
||||
=+ him=(slav %p i.t.tea)
|
||||
:_ ..^$
|
||||
:~ :* hen %pass /writ-want %a
|
||||
%want [our him] [%c %answer t.t.tea]
|
||||
%want him [%c %answer t.t.tea]
|
||||
(bind p.+.q.hin rant-to-rand)
|
||||
==
|
||||
==
|
||||
|
@ -10,7 +10,6 @@
|
||||
++ all-axle ?(axle) ::
|
||||
++ axle ::
|
||||
$: $0 ::
|
||||
ore/(unit ship) :: identity once set
|
||||
hey/(unit duct) :: default duct
|
||||
dug/(map duct axon) :: conversations
|
||||
$= hef :: other weights
|
||||
@ -42,10 +41,10 @@
|
||||
$% {$wegh $~} ::
|
||||
== ::
|
||||
++ note-clay ::
|
||||
$% {$merg p/@p q/@tas r/@p s/@tas t/case u/germ:clay}:: merge desks
|
||||
{$warp p/sock q/riff:clay} :: wait for clay hack
|
||||
$% {$merg p/@tas q/@p r/@tas s/case t/germ:clay} :: merge desks
|
||||
{$warp p/ship q/riff:clay} :: wait for clay hack
|
||||
{$wegh $~} ::
|
||||
{$perm p/ship q/desk r/path s/rite:clay} :: change permissions
|
||||
{$perm p/desk q/path r/rite:clay} :: change permissions
|
||||
== ::
|
||||
++ note-dill :: note to self, odd
|
||||
$% {$crud p/@tas q/(list tank)} ::
|
||||
@ -139,9 +138,7 @@
|
||||
=> |%
|
||||
++ as :: per cause
|
||||
=| moz/(list move)
|
||||
|_ $: {hen/duct our/ship}
|
||||
axon
|
||||
==
|
||||
|_ [hen=duct axon]
|
||||
++ abet :: resolve
|
||||
^- {(list move) axle}
|
||||
[(flop moz) all(dug (~(put by dug.all) hen +<+))]
|
||||
@ -301,7 +298,7 @@
|
||||
=/ myt (flop (need tem))
|
||||
=/ can (clan:title our)
|
||||
=. tem ~
|
||||
=. moz :_(moz [hen %pass / %c %merg our %home our %base da+now %init])
|
||||
=. moz :_(moz [hen %pass / %c %merg %home our %base da+now %init])
|
||||
=. moz :_(moz [hen %pass ~ %g %conf [[our ram] %load our %home]])
|
||||
=. +> (sync %home our %base)
|
||||
=. +> ?: ?=(?($czar $pawn) can) +>
|
||||
@ -322,12 +319,7 @@
|
||||
tem `(turn gyl |=(a/gill [%yow a]))
|
||||
moz
|
||||
:_ moz
|
||||
:* hen
|
||||
%pass
|
||||
/
|
||||
%c
|
||||
[%warp [our our] %base `[%sing %y [%ud 1] /]]
|
||||
==
|
||||
[hen %pass / %c %warp our %base `[%sing %y [%ud 1] /]]
|
||||
==
|
||||
::
|
||||
++ send :: send action
|
||||
@ -350,9 +342,7 @@
|
||||
%_ +>.$
|
||||
moz
|
||||
:_ moz
|
||||
:* hen %pass /show %c %perm our
|
||||
des / r+`[%black ~]
|
||||
==
|
||||
[hen %pass /show %c %perm des / r+`[%black ~]]
|
||||
==
|
||||
::
|
||||
++ sync
|
||||
@ -440,7 +430,7 @@
|
||||
^- mass
|
||||
:- %dill
|
||||
:- %|
|
||||
:~ all+[%& [ore hey dug]:all]
|
||||
:~ all+[%& [hey dug]:all]
|
||||
==
|
||||
::
|
||||
++ wegt
|
||||
@ -472,10 +462,9 @@
|
||||
++ ax :: make ++as
|
||||
|= hen/duct
|
||||
^- (unit _as)
|
||||
?~ ore.all ~
|
||||
=/ nux (~(get by dug.all) hen)
|
||||
?~ nux ~
|
||||
(some ~(. as [hen u.ore.all] u.nux))
|
||||
(some ~(. as hen u.nux))
|
||||
--
|
||||
|% :: poke+peek pattern
|
||||
++ call :: handle request
|
||||
@ -502,17 +491,14 @@
|
||||
::
|
||||
?: ?=(%init -.task)
|
||||
?> =(~ dug.all)
|
||||
?> =(~ ore.all)
|
||||
=. ore.all `p.task
|
||||
:: configure new terminal, setup :hood and %clay
|
||||
::
|
||||
=* our p.task
|
||||
=* duc (need hey.all)
|
||||
=/ app %hood
|
||||
=/ see (tuba "<awaiting {(trip app)}, this may take a minute>")
|
||||
=/ zon=axon [app input=[~ ~] width=80 cursor=0 see]
|
||||
::
|
||||
=^ moz all abet:(~(into as [duc our] zon) ~)
|
||||
=^ moz all abet:(~(into as duc zon) ~)
|
||||
[moz ..^$]
|
||||
:: %flog tasks are unwrapped and sent back to us on our default duct
|
||||
::
|
||||
@ -531,8 +517,8 @@
|
||||
::
|
||||
=/ nus (ax hen)
|
||||
?~ nus
|
||||
:: we got this on an unknown duct or
|
||||
:: before %boot or %init (or one of those crashed)
|
||||
:: :hen is an unrecognized duct
|
||||
:: could be before %boot (or %boot failed)
|
||||
::
|
||||
~& [%dill-call-no-flow hen -.task]
|
||||
=/ tan ?:(?=(%crud -.task) q.task ~)
|
||||
@ -544,8 +530,6 @@
|
||||
++ load :: trivial
|
||||
|= old/all-axle
|
||||
..^$(all old)
|
||||
:: |= old=* :: diable
|
||||
:: ..^$(ore.all `~zod)
|
||||
::
|
||||
++ scry
|
||||
|= {fur/(unit (set monk)) ren/@tas why/shop syd/desk lot/coin tyl/path}
|
||||
@ -561,8 +545,8 @@
|
||||
^+ [*(list move) ..^$]
|
||||
=/ nus (ax hen)
|
||||
?~ nus
|
||||
:: we got this on an unknown duct or
|
||||
:: before %boot or %init (or one of those crashed)
|
||||
:: :hen is an unrecognized duct
|
||||
:: could be before %boot (or %boot failed)
|
||||
::
|
||||
~& [%dill-take-no-flow hen -.q.hin +<.q.hin]
|
||||
[~ ..^$]
|
||||
|
@ -13,7 +13,7 @@
|
||||
++ move {p/duct q/(wind note gift:able)} :: local move
|
||||
++ note :: out request $->
|
||||
$% $: $a :: to %ames
|
||||
$% {$want p/sock q/{path *}} ::
|
||||
$% {$want p/ship q/{path *}} ::
|
||||
== == ::
|
||||
$: $b :: to %behn
|
||||
$% {$wait p/@da} ::
|
||||
@ -28,8 +28,8 @@
|
||||
{$meta vase} :: type check
|
||||
== == ::
|
||||
$: $f ::
|
||||
$% [%build our=@p live=? schematic=schematic:ford]
|
||||
[%kill our=@p]
|
||||
$% [%build live=? schematic=schematic:ford]
|
||||
[%kill ~]
|
||||
== ==
|
||||
$: $g :: to %gall
|
||||
$% {$deal p/sock q/cush:gall} :: full transmission
|
||||
@ -95,7 +95,6 @@
|
||||
por/{clr/@ud sek/(unit @ud)} :: live ports
|
||||
wel/wank :: .well-known
|
||||
gub/@t :: random identity
|
||||
hov/(unit ship) :: master for remote
|
||||
top/beam :: ford serve prefix
|
||||
ged/duct :: client interface
|
||||
ded/(set duct) :: killed requests
|
||||
@ -639,7 +638,6 @@
|
||||
++ apex :: accept request
|
||||
|= kyz/task:able
|
||||
^+ +>
|
||||
=. our ?~(hov our u.hov) :: XX
|
||||
=. p.top our :: XX necessary?
|
||||
?- -.kyz
|
||||
:: new unix process - learn of first boot or a restart.
|
||||
@ -725,10 +723,8 @@
|
||||
+>.$(mow [[hen %slip %d %flog kyz] mow])
|
||||
::
|
||||
$init :: register ownership
|
||||
=. our ?~(hov p.kyz (min u.hov p.kyz))
|
||||
%= +>.$
|
||||
fig [~ ?=(%king (clan:title our)) & &]
|
||||
hov [~ our]
|
||||
top [[our %home ud+0] /web]
|
||||
==
|
||||
::
|
||||
@ -803,7 +799,7 @@
|
||||
:: ~& did-thud+[-.lid hen]
|
||||
?- -.lid
|
||||
$exec
|
||||
(pass-note p.lid %f [%kill our])
|
||||
(pass-note p.lid %f %kill ~)
|
||||
::
|
||||
$poll
|
||||
?. (~(has by wix) p.lid)
|
||||
@ -840,21 +836,22 @@
|
||||
:: by molding the incoming thing into a gram shape before we try to
|
||||
:: soft it.
|
||||
::
|
||||
=* him p.kyz
|
||||
?~ -.q.kyz
|
||||
~& e+[%strange-west-wire p.kyz]
|
||||
~& e+[%strange-west-wire him]
|
||||
~!(%strange-west-wire !!)
|
||||
=+ mez=((soft gram) [i.-.q.kyz +.q.kyz])
|
||||
?~ mez
|
||||
~& e+[%strange-west p.kyz]
|
||||
~& e+[%strange-west him]
|
||||
~|(%strange-west !!)
|
||||
?- -.u.mez
|
||||
$aut abet:(logon:(ses-ya p.u.mez) q.p.kyz)
|
||||
$hat (foreign-hat:(ses-ya p.u.mez) q.p.kyz q.u.mez)
|
||||
$gib (pass-note ay+(dray p+uv+~ q.p.kyz p.u.mez) [%e %thud ~])
|
||||
$get (pass-note ay+(dray p+uv+~ q.p.kyz p.u.mez) [%e %this q.u.mez])
|
||||
$aut abet:(logon:(ses-ya p.u.mez) him)
|
||||
$hat (foreign-hat:(ses-ya p.u.mez) him q.u.mez)
|
||||
$gib (pass-note ay+(dray p+uv+~ him p.u.mez) [%e %thud ~])
|
||||
$get (pass-note ay+(dray p+uv+~ him p.u.mez) [%e %this q.u.mez])
|
||||
$got
|
||||
?. (~(has by pox) p.u.mez)
|
||||
~& lost-gram-thou+p.kyz^p.u.mez
|
||||
~& lost-gram-thou+him^p.u.mez
|
||||
+>.$
|
||||
=: hen (~(got by pox) p.u.mez)
|
||||
pox (~(del by pox) p.u.mez)
|
||||
@ -864,17 +861,17 @@
|
||||
$lon
|
||||
:: ~& ses-ask+[p.u.mez sop (~(run by wup) ~)]
|
||||
?: (ses-authed p.u.mez)
|
||||
(ames-gram q.p.kyz %aut p.u.mez)
|
||||
=. sop (~(put by sop) p.u.mez q.p.kyz |)
|
||||
(ames-gram q.p.kyz %hat p.u.mez our-host)
|
||||
(ames-gram him %aut p.u.mez)
|
||||
=. sop (~(put by sop) p.u.mez him |)
|
||||
(ames-gram him %hat p.u.mez our-host)
|
||||
::
|
||||
$get-inner
|
||||
%+ exec-turbo-live ay+(dray p+uv+~ q.p.kyz p.u.mez)
|
||||
%+ exec-turbo-live ay+(dray p+uv+~ him p.u.mez)
|
||||
[%bake q.u.mez r.u.mez [[p q] s]:s.u.mez]
|
||||
::
|
||||
$got-inner
|
||||
?. (~(has by pox) p.u.mez)
|
||||
~& lost-gram-inner+p.kyz^p.u.mez
|
||||
~& lost-gram-inner+him^p.u.mez
|
||||
+>.$
|
||||
=: hen (~(got by pox) p.u.mez)
|
||||
pox (~(del by pox) p.u.mez)
|
||||
@ -899,7 +896,7 @@
|
||||
[%vale [p q]:norm res]
|
||||
==
|
||||
::
|
||||
$not +>.$(mow :_(mow [ged [%give %that q.p.kyz p.u.mez]]))
|
||||
$not +>.$(mow :_(mow [ged [%give %that him p.u.mez]]))
|
||||
==
|
||||
::
|
||||
$wegh !! :: handled elsewhere
|
||||
@ -917,7 +914,6 @@
|
||||
++ axon :: accept response
|
||||
|= {tee/whir sih/sign}
|
||||
^+ +>
|
||||
=. our ?~(hov our u.hov) :: XX
|
||||
?: &(?=({?($of $ow) ^} tee) !(~(has by wix) p.tee))
|
||||
~&(dead-ire+[`whir`tee] +>)
|
||||
?- &2.sih
|
||||
@ -981,7 +977,6 @@
|
||||
(give-json 200 ~ (frond:enjs %beat %b &))
|
||||
::
|
||||
$made
|
||||
=. our (need hov) :: XX
|
||||
=| ses/(unit hole)
|
||||
|- ^+ ..axon
|
||||
?+ tee ~& [%tee tee] !!
|
||||
@ -1074,7 +1069,9 @@
|
||||
++ ses-ya |=(ses/hole ~(. ya ses (~(got by wup) ses)))
|
||||
++ our-host
|
||||
^- hart
|
||||
:: XX get actual -F flag value
|
||||
:: XX get actual -F flag value
|
||||
:: XX scry into %jael?
|
||||
::
|
||||
?: [fake=|] [| [~ 8.443] &+/localhost]
|
||||
`hart`[& ~ %& /org/urbit/(rsh 3 1 (scot %p our))]
|
||||
::
|
||||
@ -1087,7 +1084,7 @@
|
||||
:: TODO: To make this work
|
||||
::
|
||||
~! -.gam
|
||||
(pass-note ~ %a %want [our him] [%e -.gam ~] +.gam)
|
||||
(pass-note ~ %a %want him [%e -.gam ~] +.gam)
|
||||
::
|
||||
++ back-turbo
|
||||
|= [tea=whir mar=mark cay=cage]
|
||||
@ -1138,7 +1135,7 @@
|
||||
~/ %execute-turbo
|
||||
|= [tea=whir live=? request=schematic:ford]
|
||||
%+ pass-note tea
|
||||
:* %f %build our live
|
||||
:* %f %build live
|
||||
[%dude |.([%leaf "eyre: execute {<tea>}"]) request]
|
||||
==
|
||||
::
|
||||
@ -1274,8 +1271,6 @@
|
||||
++ apex
|
||||
=< abet
|
||||
^+ done
|
||||
=+ oar=(host-to-ship r.hat)
|
||||
=. our ?~(oar our u.oar) :: XX
|
||||
=+ pez=process
|
||||
?: ?=(%| -.pez) p.pez
|
||||
(resolve ~ p.pez)
|
||||
@ -2272,7 +2267,6 @@
|
||||
hosts+[%& dop]
|
||||
misc+[%& bol]
|
||||
==
|
||||
=+ our=`@p`0x100 :: XX sentinel
|
||||
=+ ska=(sloy ski)
|
||||
=+ sky=|=({* *} `(unit)`=+(a=(ska +<) ?~(a ~ ?~(u.a ~ [~ u.u.a]))))
|
||||
=. ney (shax :(mix (shax now) +(eny) ney)) :: XX!! shd not need
|
||||
@ -2291,7 +2285,6 @@
|
||||
^- (unit (unit cage))
|
||||
?. ?=(%& -.why) ~
|
||||
=* who p.why
|
||||
=+ our=(need hov) :: XX single home
|
||||
=+ ska=(sloy ski)
|
||||
=+ sky=|=({* *} `(unit)`=+(a=(ska +<) ?~(a ~ ?~(u.a ~ [~ u.u.a]))))
|
||||
?. ?=($$ ren) [~ ~]
|
||||
@ -2326,7 +2319,6 @@
|
||||
++ take :: accept response
|
||||
|= {tea/wire hen/duct hin/(hypo sign)}
|
||||
^+ [*(list move) ..^$]
|
||||
=+ our=`@p`0x100 :: XX sentinel
|
||||
=+ ska=(sloy ski)
|
||||
=+ sky=|=({* *} `(unit)`=+(a=(ska +<) ?~(a ~ ?~(u.a ~ [~ u.u.a]))))
|
||||
=. ney (shax :(mix (shax now) +(eny) ney)) :: XX!! shd not need
|
||||
|
@ -152,9 +152,9 @@
|
||||
:: %warp: internal (intra-ship) file request
|
||||
::
|
||||
$% $: %warp
|
||||
:: sock: pair of requesting ship, requestee ship
|
||||
:: ship: target for request
|
||||
::
|
||||
=sock
|
||||
=ship
|
||||
:: riff: clay request contents
|
||||
::
|
||||
riff=riff:clay
|
||||
@ -191,17 +191,12 @@
|
||||
+= axle
|
||||
$: :: date: date at which ford's state was updated to this data structure
|
||||
::
|
||||
date=%~2018.6.28
|
||||
:: state-by-ship: storage for all the @p's this ford has been
|
||||
date=%~2018.12.13
|
||||
:: state: all persistent state
|
||||
::
|
||||
:: Once the cc-release boot sequence lands, we can remove this
|
||||
:: mapping, since an arvo will not change @p identities. until
|
||||
:: then, we need to support a ship booting as a comet before
|
||||
:: becoming its adult identity.
|
||||
::
|
||||
state-by-ship=(map ship ford-state)
|
||||
state=ford-state
|
||||
==
|
||||
:: +ford-state: all state that ford maintains for a @p ship identity
|
||||
:: +ford-state: all state that ford maintains
|
||||
::
|
||||
+= ford-state
|
||||
$: :: builds: per-build state machine for all builds
|
||||
@ -5995,7 +5990,7 @@
|
||||
::
|
||||
=+ [their desk]=disc.subscription
|
||||
::
|
||||
:^ %c %warp sock=[our their]
|
||||
:^ %c %warp ship=their
|
||||
^- riff:clay
|
||||
[desk `[%mult `case`[%da date.subscription] request-contents]]
|
||||
::
|
||||
@ -6020,7 +6015,7 @@
|
||||
::
|
||||
=/ =note
|
||||
=+ [their desk]=disc.subscription
|
||||
[%c %warp sock=[our their] `riff:clay`[desk ~]]
|
||||
[%c %warp ship=their `riff:clay`[desk ~]]
|
||||
::
|
||||
=. moves [`move`[u.originator [%pass wire note]] moves]
|
||||
::
|
||||
@ -6059,7 +6054,7 @@
|
||||
=/ =note
|
||||
=, scry-request
|
||||
=/ =disc [p q]:beam
|
||||
:* %c %warp sock=[our their=ship.disc] desk.disc
|
||||
:* %c %warp their=ship.disc desk.disc
|
||||
`[%sing care case=r.beam (flop s.beam)]
|
||||
==
|
||||
::
|
||||
@ -6083,7 +6078,7 @@
|
||||
::
|
||||
=/ =note
|
||||
=+ [their desk]=[p q]:beam.scry-request
|
||||
[%c %warp sock=[our their] `riff:clay`[desk ~]]
|
||||
[%c %warp ship=their `riff:clay`[desk ~]]
|
||||
::
|
||||
=. moves [`move`[u.originator [%pass wire note]] moves]
|
||||
::
|
||||
@ -6123,12 +6118,8 @@
|
||||
:: %kill: cancel a build
|
||||
:: %wipe: clear memory
|
||||
::
|
||||
:: The general procedure is for Ford to determine the `our` identity
|
||||
:: for this +task and operate on the :ship-state for that identity.
|
||||
::
|
||||
:: Most requests get converted into operations to be performed inside
|
||||
:: the +per-event core, which is Ford's main build engine. The %keep
|
||||
:: and %wipe requests work across all identities stored in Ford, though.
|
||||
:: the +per-event core, which is Ford's main build engine.
|
||||
::
|
||||
++ call
|
||||
|= [=duct type=* wrapped-task=(hobo task:able)]
|
||||
@ -6139,6 +6130,9 @@
|
||||
?. ?=(%soft -.wrapped-task)
|
||||
wrapped-task
|
||||
((hard task:able) p.wrapped-task)
|
||||
:: we wrap +per-event with a call that binds our event args
|
||||
::
|
||||
=* this-event (per-event [our duct now scry-gate] state.ax)
|
||||
::
|
||||
?- -.task
|
||||
:: %build: request to perform a build
|
||||
@ -6146,19 +6140,13 @@
|
||||
%build
|
||||
:: perform the build indicated by :task
|
||||
::
|
||||
:: First, we find or create the :ship-state for :our.task,
|
||||
:: modifying :state-by-ship as necessary. Then we dispatch to the |ev
|
||||
:: by constructing :event-args and using them to create :start-build,
|
||||
:: which performs the build. The result of :start-build is a pair of
|
||||
:: :moves and a mutant :ship-state. We update our :state-by-ship map
|
||||
:: with the new :ship-state and produce it along with :moves.
|
||||
:: We call :start-build on :this-event, which is the |per-event core
|
||||
:: with the our event-args already bound. :start-build performs the
|
||||
:: build and produces a pair of :moves and a mutant :state.
|
||||
:: We update our :state and produce it along with :moves.
|
||||
::
|
||||
=^ ship-state state-by-ship.ax (find-or-create-ship-state our.task)
|
||||
=/ =build [now schematic.task]
|
||||
=* event-args [[our.task duct now scry-gate] ship-state]
|
||||
=* start-build start-build:(per-event event-args)
|
||||
=^ moves ship-state (start-build build live.task)
|
||||
=. state-by-ship.ax (~(put by state-by-ship.ax) our.task ship-state)
|
||||
=^ moves state.ax (start-build:this-event build live.task)
|
||||
::
|
||||
[moves ford-gate]
|
||||
::
|
||||
@ -6166,21 +6154,7 @@
|
||||
::
|
||||
%keep
|
||||
::
|
||||
=/ ship-states=(list [ship=@p state=ford-state])
|
||||
~(tap by state-by-ship.ax)
|
||||
::
|
||||
=. state-by-ship.ax
|
||||
|- ^+ state-by-ship.ax
|
||||
?~ ship-states state-by-ship.ax
|
||||
::
|
||||
=, i.ship-states
|
||||
=* event-args [[ship duct now scry-gate] state]
|
||||
::
|
||||
=. state-by-ship.ax
|
||||
%+ ~(put by state-by-ship.ax) ship
|
||||
(keep:(per-event event-args) [compiler-cache build-cache]:task)
|
||||
::
|
||||
$(ship-states t.ship-states)
|
||||
=. state.ax (keep:this-event [compiler-cache build-cache]:task)
|
||||
::
|
||||
[~ ford-gate]
|
||||
::
|
||||
@ -6188,10 +6162,7 @@
|
||||
::
|
||||
%kill
|
||||
::
|
||||
=/ ship-state ~|(our+our.task (~(got by state-by-ship.ax) our.task))
|
||||
=* event-args [[our.task duct now scry-gate] ship-state]
|
||||
=^ moves ship-state cancel:(per-event event-args)
|
||||
=. state-by-ship.ax (~(put by state-by-ship.ax) our.task ship-state)
|
||||
=^ moves state.ax cancel:this-event
|
||||
::
|
||||
[moves ford-gate]
|
||||
::
|
||||
@ -6205,21 +6176,7 @@
|
||||
::
|
||||
%wipe
|
||||
::
|
||||
=/ ship-states=(list [ship=@p state=ford-state])
|
||||
~(tap by state-by-ship.ax)
|
||||
::
|
||||
=. state-by-ship.ax
|
||||
|- ^+ state-by-ship.ax
|
||||
?~ ship-states state-by-ship.ax
|
||||
::
|
||||
=, i.ship-states
|
||||
=* event-args [[ship duct now scry-gate] state]
|
||||
::
|
||||
=. state-by-ship.ax
|
||||
%+ ~(put by state-by-ship.ax) ship
|
||||
(wipe:(per-event event-args) percent-to-remove.task)
|
||||
::
|
||||
$(ship-states t.ship-states)
|
||||
=. state.ax (wipe:this-event percent-to-remove.task)
|
||||
::
|
||||
[~ ford-gate]
|
||||
::
|
||||
@ -6230,13 +6187,12 @@
|
||||
^- mass
|
||||
:- %ford
|
||||
:- %|
|
||||
%+ turn ~(tap by state-by-ship.ax) :: XX single-home
|
||||
|= [our=@ ford-state] ^- mass
|
||||
:+ (scot %p our) %|
|
||||
::
|
||||
:~ [%builds [%& builds]]
|
||||
[%compiler-cache [%& compiler-cache]]
|
||||
==
|
||||
:~ ^- mass
|
||||
:+ (scot %p our) %|
|
||||
::
|
||||
:~ [%builds [%& builds.state.ax]]
|
||||
[%compiler-cache [%& compiler-cache.state.ax]]
|
||||
== ==
|
||||
==
|
||||
:: +take: receive a response from another vane
|
||||
::
|
||||
@ -6255,9 +6211,6 @@
|
||||
:: If Ford receives this, it will continue building one or more builds
|
||||
:: that were blocked on this resource.
|
||||
::
|
||||
:: The general procedure is for Ford to determine the `our` identity
|
||||
:: for this +task and operate on the :ship-state for that identity.
|
||||
::
|
||||
:: The +sign gets converted into operations to be performed inside
|
||||
:: the +per-event core, which is Ford's main build engine.
|
||||
::
|
||||
@ -6270,27 +6223,15 @@
|
||||
:: :wire must at least contain :our and a tag for dispatching
|
||||
::
|
||||
?> ?=([@ @ *] wire)
|
||||
:: :parse our from the head of :wire
|
||||
::
|
||||
=/ our=@p (slav %p i.wire)
|
||||
::
|
||||
::
|
||||
=/ ship-state
|
||||
:: we know :our is already in :state-by-ship because we sent this request
|
||||
::
|
||||
~| [%take-our our]
|
||||
(~(got by state-by-ship.ax) our)
|
||||
::
|
||||
|^ ^- [(list move) _ford-gate]
|
||||
::
|
||||
=^ moves ship-state
|
||||
=^ moves state.ax
|
||||
?+ i.t.wire ~|([%bad-take-wire wire] !!)
|
||||
%clay-sub take-rebuilds
|
||||
%scry-request take-unblocks
|
||||
==
|
||||
::
|
||||
=. state-by-ship.ax (~(put by state-by-ship.ax) our ship-state)
|
||||
::
|
||||
[moves ford-gate]
|
||||
:: +take-rebuilds: rebuild all live builds affected by the Clay changes
|
||||
::
|
||||
@ -6303,7 +6244,7 @@
|
||||
::
|
||||
=/ =subscription
|
||||
~| [%ford-take-bad-clay-sub wire=wire duct=duct]
|
||||
=/ =duct-status (~(got by ducts.ship-state) duct)
|
||||
=/ =duct-status (~(got by ducts.state.ax) duct)
|
||||
?> ?=(%live -.live.duct-status)
|
||||
?> ?=(^ last-sent.live.duct-status)
|
||||
?> ?=(^ subscription.u.last-sent.live.duct-status)
|
||||
@ -6311,15 +6252,15 @@
|
||||
::
|
||||
=/ ducts=(list ^duct)
|
||||
~| [%ford-take-missing-subscription subscription]
|
||||
(get-request-ducts pending-subscriptions.ship-state subscription)
|
||||
(get-request-ducts pending-subscriptions.state.ax subscription)
|
||||
::
|
||||
=| moves=(list move)
|
||||
|- ^+ [moves ship-state]
|
||||
?~ ducts [moves ship-state]
|
||||
|- ^+ [moves state.ax]
|
||||
?~ ducts [moves state.ax]
|
||||
::
|
||||
=* event-args [[our i.ducts now scry-gate] ship-state]
|
||||
=* event-args [[our i.ducts now scry-gate] state.ax]
|
||||
=* rebuild rebuild:(per-event event-args)
|
||||
=^ duct-moves ship-state
|
||||
=^ duct-moves state.ax
|
||||
(rebuild subscription p.case.sign disc care-paths.sign)
|
||||
::
|
||||
$(ducts t.ducts, moves (weld moves duct-moves))
|
||||
@ -6345,17 +6286,17 @@
|
||||
::
|
||||
=/ ducts=(list ^duct)
|
||||
~| [%ford-take-missing-scry-request scry-request]
|
||||
(get-request-ducts pending-scrys.ship-state scry-request)
|
||||
(get-request-ducts pending-scrys.state.ax scry-request)
|
||||
::
|
||||
=| moves=(list move)
|
||||
|- ^+ [moves ship-state]
|
||||
?~ ducts [moves ship-state]
|
||||
|- ^+ [moves state.ax]
|
||||
?~ ducts [moves state.ax]
|
||||
::
|
||||
=* event-args [[our i.ducts now scry-gate] ship-state]
|
||||
=* event-args [[our i.ducts now scry-gate] state.ax]
|
||||
:: unblock the builds that had blocked on :resource
|
||||
::
|
||||
=* unblock unblock:(per-event event-args)
|
||||
=^ duct-moves ship-state (unblock scry-request scry-result)
|
||||
=^ duct-moves state.ax (unblock scry-request scry-result)
|
||||
::
|
||||
$(ducts t.ducts, moves (weld moves duct-moves))
|
||||
--
|
||||
@ -6380,18 +6321,4 @@
|
||||
::+|
|
||||
::
|
||||
++ ford-gate ..$
|
||||
:: +find-or-create-ship-state: find or create a ford-state for a @p
|
||||
::
|
||||
:: Accesses and modifies :state-by-ship.
|
||||
::
|
||||
++ find-or-create-ship-state
|
||||
|= our=@p
|
||||
^- [ford-state _state-by-ship.ax]
|
||||
::
|
||||
=/ existing (~(get by state-by-ship.ax) our)
|
||||
?^ existing
|
||||
[u.existing state-by-ship.ax]
|
||||
::
|
||||
=| new-state=ford-state
|
||||
[new-state (~(put by state-by-ship.ax) our new-state)]
|
||||
--
|
||||
|
@ -36,7 +36,7 @@
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
++ axle :: all state
|
||||
$: $0 :: state version
|
||||
pol/(map ship mast) :: apps by ship
|
||||
=mast :: apps by ship
|
||||
== ::
|
||||
++ gest :: subscriber data
|
||||
$: sup/bitt :: incoming subscribers
|
||||
@ -106,25 +106,19 @@
|
||||
|% :::::::::::::::::::::::::::::::::::::::::::::::::::::: state machine
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
++ mo
|
||||
~% %gall-mo +> ~
|
||||
|_ $: $: our/@p
|
||||
hen/duct
|
||||
moz/(list move)
|
||||
==
|
||||
mast
|
||||
~% %gall-mo +> ~
|
||||
=* mas mast.all
|
||||
|_ $: hen=duct
|
||||
moz=(list move)
|
||||
==
|
||||
++ mo-abed :: initialize
|
||||
|= {our/@p hen/duct}
|
||||
|= =duct
|
||||
^+ +>
|
||||
%_ +>
|
||||
our our
|
||||
hen hen
|
||||
+<+ (~(got by pol.all) our)
|
||||
==
|
||||
+>(hen duct)
|
||||
::
|
||||
++ mo-abet :: resolve to
|
||||
^+ [*(list move) +>+]
|
||||
:_ +>+(pol.all (~(put by pol.all) our +<+))
|
||||
:_ +>+
|
||||
%- flop
|
||||
%+ turn moz
|
||||
|= a/move
|
||||
@ -167,11 +161,11 @@
|
||||
::
|
||||
=/ result-cage=cage (result-to-cage:ford build-result)
|
||||
::
|
||||
=/ app-data=(unit seat) (~(get by bum) dap)
|
||||
=/ app-data=(unit seat) (~(get by bum.mas) dap)
|
||||
?^ app-data
|
||||
:: update the path
|
||||
::
|
||||
=. bum (~(put by bum) dap u.app-data(byk byk))
|
||||
=. bum.mas (~(put by bum.mas) dap u.app-data(byk byk))
|
||||
:: magic update string from +mo-boon, "complete old boot"
|
||||
::
|
||||
ap-abet:(ap-peep:(ap-abed:ap dap [%high [~ our]]) q.result-cage)
|
||||
@ -192,8 +186,8 @@
|
||||
|= {dap/dude byk/beak hav/vase}
|
||||
=+ sat=*seat
|
||||
%_ +>.$
|
||||
bum
|
||||
%+ ~(put by bum) dap
|
||||
bum.mas
|
||||
%+ ~(put by bum.mas) dap
|
||||
%_ sat
|
||||
mom hen
|
||||
byk byk
|
||||
@ -210,7 +204,7 @@
|
||||
^+ +>
|
||||
%+ mo-pass [%sys %core dap (scot %p p.byk) q.byk (scot r.byk) ~]
|
||||
^- note-arvo
|
||||
[%f %build our live=%.y [%core [[p q]:byk [%hoon dap %app ~]]]]
|
||||
[%f %build live=%.y [%core [[p q]:byk [%hoon dap %app ~]]]]
|
||||
::
|
||||
++ mo-away :: foreign request
|
||||
~/ %mo-away
|
||||
@ -241,7 +235,7 @@
|
||||
==
|
||||
%+ mo-pass
|
||||
[%sys %way -.q.caz ~]
|
||||
`note-arvo`[%a %want [our him] [%g %ge p.caz ~] [num roc]]
|
||||
`note-arvo`[%a %want him [%g %ge p.caz ~] [num roc]]
|
||||
::
|
||||
++ mo-baal :: error convert a
|
||||
|= art/(unit ares)
|
||||
@ -269,13 +263,13 @@
|
||||
++ mo-bale :: assign outbone
|
||||
|= him/ship
|
||||
^- {@ud _+>}
|
||||
=+ sad=(fall (~(get by sap) him) `scad`[1 ~ ~])
|
||||
=+ sad=(fall (~(get by sap.mas) him) `scad`[1 ~ ~])
|
||||
=+ nom=(~(get by q.sad) hen)
|
||||
?^ nom [u.nom +>.$]
|
||||
:- p.sad
|
||||
%_ +>.$
|
||||
sap
|
||||
%+ ~(put by sap) him
|
||||
sap.mas
|
||||
%+ ~(put by sap.mas) him
|
||||
%_ sad
|
||||
p +(p.sad)
|
||||
q (~(put by q.sad) hen p.sad)
|
||||
@ -286,7 +280,7 @@
|
||||
++ mo-ball :: outbone by index
|
||||
|= {him/ship num/@ud}
|
||||
^- duct
|
||||
(~(got by r:(~(got by sap) him)) num)
|
||||
(~(got by r:(~(got by sap.mas) him)) num)
|
||||
::
|
||||
++ mo-come :: handle locally
|
||||
|= {her/ship caz/cush}
|
||||
@ -351,7 +345,7 @@
|
||||
~& [%diff-bad-ack %mack]
|
||||
(slog (flop q.,.+>.q.+>.sih))
|
||||
=. +>.$ (mo-pass [%sys pax] %g %deal [him our] dap %pull ~)
|
||||
(mo-pass [%sys pax] %a %want [our him] [%g %gh dap ~] [num %x ~])
|
||||
(mo-pass [%sys pax] %a %want him [%g %gh dap ~] [num %x ~])
|
||||
::
|
||||
%rep :: reverse request
|
||||
?> ?=({@ @ @ ~} t.pax)
|
||||
@ -400,9 +394,9 @@
|
||||
?- -.cuf
|
||||
$coup (mo-give %mack p.cuf)
|
||||
$diff %+ mo-pass [%sys %red t.pax]
|
||||
[%a %want [our him] [%g %gh dap ~] [num %d p.p.cuf q.q.p.cuf]]
|
||||
[%a %want him [%g %gh dap ~] [num %d p.p.cuf q.q.p.cuf]]
|
||||
$quit %+ mo-pass [%sys pax]
|
||||
[%a %want [our him] [%g %gh dap ~] [num %x ~]]
|
||||
[%a %want him [%g %gh dap ~] [num %x ~]]
|
||||
$reap (mo-give %mack p.cuf)
|
||||
==
|
||||
::
|
||||
@ -461,12 +455,12 @@
|
||||
++ mo-claw :: clear queue
|
||||
|= dap/dude
|
||||
^+ +>
|
||||
?. (~(has by bum) dap) +>
|
||||
=+ suf=(~(get by wub) dap)
|
||||
?. (~(has by bum.mas) dap) +>
|
||||
=+ suf=(~(get by wub.mas) dap)
|
||||
?~ suf +>.$
|
||||
|- ^+ +>.^$
|
||||
?: =(~ kys.u.suf)
|
||||
+>.^$(wub (~(del by wub) dap))
|
||||
+>.^$(wub.mas (~(del by wub.mas) dap))
|
||||
=^ lep kys.u.suf [p q]:~(get to kys.u.suf)
|
||||
$(moz :_(moz [p.lep %slip %g %deal [q.q.q.lep our] dap r.lep]))
|
||||
:: $(+>.^$ (mo-clip(hen p.lep) dap q.lep r.lep))
|
||||
@ -475,7 +469,7 @@
|
||||
|= dap/dude
|
||||
=- ?.(=(p our) - -(r [%da now])) :: soft dependencies
|
||||
^- beak
|
||||
byk:(~(got by bum) dap)
|
||||
byk:(~(got by bum.mas) dap)
|
||||
::
|
||||
++ mo-peek
|
||||
~/ %mo-peek
|
||||
@ -488,11 +482,11 @@
|
||||
?: ?=($puff -.cub)
|
||||
%+ mo-pass
|
||||
[%sys %val (scot %p q.q.pry) dap ~]
|
||||
[%f %build our live=%.n [%vale [p q]:(mo-beak dap) +.cub]]
|
||||
[%f %build live=%.n [%vale [p q]:(mo-beak dap) +.cub]]
|
||||
?: ?=($punk -.cub)
|
||||
%+ mo-pass
|
||||
[%sys %val (scot %p q.q.pry) dap ~]
|
||||
:* %f %build our live=%.n
|
||||
:* %f %build live=%.n
|
||||
^- schematic:ford
|
||||
[%cast [p q]:(mo-beak dap) p.cub [%$ q.cub]]
|
||||
==
|
||||
@ -503,11 +497,11 @@
|
||||
++ mo-club :: local action
|
||||
|= {dap/dude pry/prey cub/club}
|
||||
^+ +>
|
||||
?: |(!(~(has by bum) dap) (~(has by wub) dap))
|
||||
?: |(!(~(has by bum.mas) dap) (~(has by wub.mas) dap))
|
||||
~& >> [%mo-not-running dap -.cub]
|
||||
:: ~& [%mo-club-qeu dap cub]
|
||||
=+ syf=(fall (~(get by wub) dap) *sofa)
|
||||
+>.$(wub (~(put by wub) dap syf(kys (~(put to kys.syf) [hen pry cub]))))
|
||||
=+ syf=(fall (~(get by wub.mas) dap) *sofa)
|
||||
+>.$(wub.mas (~(put by wub.mas) dap syf(kys (~(put to kys.syf) [hen pry cub]))))
|
||||
(mo-clip dap pry cub)
|
||||
::
|
||||
++ mo-gawk :: ames forward
|
||||
@ -530,7 +524,7 @@
|
||||
$d
|
||||
%+ mo-pass
|
||||
[%sys %rep (scot %p him) dap (scot %ud num) ~]
|
||||
[%f %build our live=%.n [%vale [p q]:(mo-beak dap) p.ron q.ron]]
|
||||
[%f %build live=%.n [%vale [p q]:(mo-beak dap) p.ron q.ron]]
|
||||
::
|
||||
$x =. +> (mo-give %mack ~) :: XX should crash
|
||||
(mo-give(hen (mo-ball him num)) %unto %quit ~)
|
||||
@ -553,7 +547,7 @@
|
||||
^+ +>
|
||||
=: ^dap dap
|
||||
^pry pry
|
||||
+>+<+ `seat`(~(got by bum) dap)
|
||||
+>+<+ `seat`(~(got by bum.mas) dap)
|
||||
==
|
||||
=+ unt=(~(get by q.zam) hen)
|
||||
=: act.tyc +(act.tyc)
|
||||
@ -573,7 +567,7 @@
|
||||
^+ +>
|
||||
=> ap-abut
|
||||
%_ +>
|
||||
bum (~(put by bum) dap +<+)
|
||||
bum.mas (~(put by bum.mas) dap +<+)
|
||||
moz :(weld (turn zip ap-aver) (turn dub ap-avid) moz)
|
||||
==
|
||||
::
|
||||
@ -610,7 +604,7 @@
|
||||
?: =(mar p.cay) [%give %unto p.q.cov]
|
||||
:+ %pass
|
||||
[%sys %pel dap ~]
|
||||
[%f %build our live=%.n [%cast [p q]:(mo-beak dap) mar [%$ cay]]]
|
||||
[%f %build live=%.n [%cast [p q]:(mo-beak dap) mar [%$ cay]]]
|
||||
::
|
||||
$pass
|
||||
:+ %pass `path`[%use dap p.q.cov]
|
||||
@ -1307,52 +1301,47 @@
|
||||
=> .(q.hic ?.(?=($soft -.q.hic) q.hic ((hard task:able) p.q.hic)))
|
||||
?- -.q.hic
|
||||
$conf
|
||||
?. (~(has by pol.all) p.p.q.hic)
|
||||
?. =(our p.p.q.hic)
|
||||
~& [%gall-not-ours p.p.q.hic]
|
||||
[~ ..^$]
|
||||
mo-abet:(mo-conf:(mo-abed:mo p.p.q.hic hen) q.p.q.hic q.q.hic)
|
||||
mo-abet:(mo-conf:(mo-abed:mo hen) q.p.q.hic q.q.hic)
|
||||
::
|
||||
$deal
|
||||
=< mo-abet
|
||||
?. (~(has by pol.all) q.p.q.hic) :: either to us
|
||||
?> (~(has by pol.all) p.p.q.hic) :: or from us
|
||||
(mo-away:(mo-abed:mo p.p.q.hic hen) q.p.q.hic q.q.hic)
|
||||
(mo-come:(mo-abed:mo q.p.q.hic hen) p.p.q.hic q.q.hic)
|
||||
?. =(our q.p.q.hic) :: either to us
|
||||
?> =(our p.p.q.hic) :: or from us
|
||||
(mo-away:(mo-abed:mo hen) q.p.q.hic q.q.hic)
|
||||
(mo-come:(mo-abed:mo hen) p.p.q.hic q.q.hic)
|
||||
::
|
||||
$init
|
||||
:: ~& [%gall-init p.q.hic]
|
||||
[~ ..^$(pol.all (~(put by pol.all) p.q.hic %*(. *mast sys hen)))]
|
||||
[~ ..^$(sys.mast.all hen)]
|
||||
::
|
||||
$sunk [~ ..^$]
|
||||
::
|
||||
$west
|
||||
?. (~(has by pol.all) p.p.q.hic)
|
||||
~& [%gall-not-ours p.q.hic]
|
||||
[~ ..^$]
|
||||
?> ?=({?($ge $gh) @ ~} q.q.hic)
|
||||
=+ dap=i.t.q.q.hic
|
||||
=+ our=p.p.q.hic
|
||||
=+ him=q.p.q.hic
|
||||
=* dap i.t.q.q.hic
|
||||
=* him p.q.hic
|
||||
?: ?=($ge i.q.q.hic)
|
||||
=+ mes=((hard {@ud rook}) r.q.hic)
|
||||
=< mo-abet
|
||||
(mo-gawk:(mo-abed:mo our hen) him dap mes)
|
||||
(mo-gawk:(mo-abed:mo hen) him dap mes)
|
||||
=+ mes=((hard {@ud roon}) r.q.hic)
|
||||
=< mo-abet
|
||||
(mo-gawd:(mo-abed:mo our hen) him dap mes)
|
||||
(mo-gawd:(mo-abed:mo hen) him dap mes)
|
||||
::
|
||||
$wegh
|
||||
:_ ..^$ :_ ~
|
||||
:^ hen %give %mass
|
||||
:- %gall
|
||||
:- %|
|
||||
%+ turn ~(tap by pol.all) :: XX single-home
|
||||
|= {our/@ mast} ^- mass
|
||||
:+ (scot %p our) %|
|
||||
:~ [%foreign [%& sap]]
|
||||
[%blocked [%| (sort ~(tap by (~(run by wub) |=(sofa [%& +<]))) aor)]]
|
||||
[%active [%| (sort ~(tap by (~(run by bum) |=(seat [%& +<]))) aor)]]
|
||||
==
|
||||
=/ =mass
|
||||
=* mas mast.all
|
||||
:+ (scot %p our) %|
|
||||
:~ [%foreign [%& sap.mast.all]]
|
||||
:+ %blocked %|
|
||||
(sort ~(tap by (~(run by wub.mast.all) |=(sofa [%& +<]))) aor)
|
||||
:+ %active %|
|
||||
(sort ~(tap by (~(run by bum.mast.all) |=(seat [%& +<]))) aor)
|
||||
==
|
||||
=/ =move [hen %give %mass %gall %| [mass ~]]
|
||||
[[move ~] ..^$]
|
||||
::
|
||||
$went !! :: XX fixme
|
||||
==
|
||||
@ -1373,19 +1362,19 @@
|
||||
?: ?& =(%u ren)
|
||||
=(~ tyl)
|
||||
=([%$ %da now] lot)
|
||||
(~(has by pol.all) his)
|
||||
(~(has by bum:(~(got by pol.all) his)) syd)
|
||||
=(our his)
|
||||
(~(has by bum.mast.all) syd)
|
||||
==
|
||||
``[%null !>(~)]
|
||||
?. (~(has by pol.all) his)
|
||||
?. =(our his)
|
||||
~
|
||||
?. =([%$ %da now] lot)
|
||||
~
|
||||
?. (~(has by bum:(~(got by pol.all) his)) syd)
|
||||
?. (~(has by bum.mast.all) syd)
|
||||
[~ ~]
|
||||
?. ?=(^ tyl)
|
||||
~
|
||||
(mo-peek:(mo-abed:mo his *duct) syd high+`his ren tyl)
|
||||
(mo-peek:mo-abed:mo syd high+`his ren tyl)
|
||||
::
|
||||
++ stay :: save w+o cache
|
||||
`axle`all
|
||||
@ -1396,8 +1385,7 @@
|
||||
^+ [*(list move) ..^$]
|
||||
~| [%gall-take tea]
|
||||
?> ?=({@ ?($sys $use) *} tea)
|
||||
=+ our=(need (slaw %p i.tea))
|
||||
=+ mow=(mo-abed:mo our hen)
|
||||
=+ mow=(mo-abed:mo hen)
|
||||
?- i.t.tea
|
||||
$sys mo-abet:(mo-cyst:mow t.t.tea q.hin)
|
||||
$use mo-abet:(mo-cook:mow t.t.tea hin)
|
||||
|
@ -56,8 +56,6 @@
|
||||
== ::
|
||||
$= own :: vault (vein)
|
||||
$: yen/(set duct) :: trackers
|
||||
:: XX use this ::
|
||||
our=ship ::
|
||||
sig=(unit oath) :: for a moon
|
||||
:: XX reconcile with .dns.eth ::
|
||||
tuf=(list turf) :: domains
|
||||
@ -601,12 +599,11 @@
|
||||
:: vane interface when that gets cleaned up a bit.
|
||||
::
|
||||
=| moz/(list move)
|
||||
=| $: :: sys: system context
|
||||
::
|
||||
$= sys
|
||||
$: :: now: current time
|
||||
=| $: $: :: our: identity
|
||||
:: now: current time
|
||||
:: eny: unique entropy
|
||||
::
|
||||
our=ship
|
||||
now=@da
|
||||
eny=@uvJ
|
||||
==
|
||||
@ -668,8 +665,8 @@
|
||||
:: {$burn p/ship q/safe}
|
||||
::
|
||||
$burn
|
||||
%^ cure hen our.tac
|
||||
abet:abet:(deal:(burb our.tac) p.tac [~ q.tac])
|
||||
%+ cure hen
|
||||
abet:abet:(deal:(burb our) p.tac [~ q.tac])
|
||||
::
|
||||
:: boot from keys
|
||||
:: $: $dawn
|
||||
@ -682,10 +679,9 @@
|
||||
:: ==
|
||||
::
|
||||
%dawn
|
||||
=* our who.seed.tac
|
||||
:: sort-of single-homed
|
||||
:: single-homed
|
||||
::
|
||||
=. our.own.sub our
|
||||
?> =(our who.seed.tac)
|
||||
:: save our boot block
|
||||
::
|
||||
=. boq.own.sub bloq.tac
|
||||
@ -705,7 +701,7 @@
|
||||
:: our initial private key, as a +tree of +rite
|
||||
::
|
||||
=/ rit (sy [%jewel (my [lyf.seed.tac key.seed.tac] ~)] ~)
|
||||
=. +>.$ $(tac [%mint our our rit])
|
||||
=. +>.$ $(tac [%mint our rit])
|
||||
:: our initial galaxy table as a +map from +life to +public
|
||||
::
|
||||
=/ kyz
|
||||
@ -723,7 +719,7 @@
|
||||
::
|
||||
=. +>.$
|
||||
?~ snap.tac +>.$
|
||||
(restore-snap hen our u.snap.tac |)
|
||||
(restore-snap hen u.snap.tac |)
|
||||
::
|
||||
=. moz
|
||||
%+ weld moz
|
||||
@ -734,7 +730,7 @@
|
||||
:: %jael init must be deferred (makes http requests)
|
||||
::
|
||||
^- (list move)
|
||||
:~ [hen %pass /(scot %p our)/init %b %wait +(now.sys)]
|
||||
:~ [hen %pass /(scot %p our)/init %b %wait +(now)]
|
||||
[hen %give %init our]
|
||||
[hen %slip %e %init our]
|
||||
[hen %slip %d %init our]
|
||||
@ -745,13 +741,12 @@
|
||||
+>.$
|
||||
::
|
||||
:: boot fake
|
||||
:: {$fake our/ship}
|
||||
:: [%fake =ship]
|
||||
::
|
||||
%fake
|
||||
=* our our.tac
|
||||
:: sort-of single-homed
|
||||
:: single-homed
|
||||
::
|
||||
=. our.own.sub our
|
||||
?> =(our ship.tac)
|
||||
:: fake keys are deterministically derived from the ship
|
||||
::
|
||||
=/ cub (pit:nu:crub:crypto 512 our)
|
||||
@ -774,7 +769,7 @@
|
||||
:: so we do this first.
|
||||
::
|
||||
=/ rit (sy [%jewel (my [1 sec:ex:cub] ~)] ~)
|
||||
=. +>.$ $(tac [%mint our our rit])
|
||||
=. +>.$ $(tac [%mint our rit])
|
||||
:: set the fake bit
|
||||
::
|
||||
=. fak.own.sub &
|
||||
@ -798,15 +793,15 @@
|
||||
:: {$hail p/ship q/remote}
|
||||
::
|
||||
$hail
|
||||
%^ cure hen our.tac
|
||||
abet:abet:(hail:(burb our.tac) p.tac q.tac)
|
||||
%+ cure hen
|
||||
abet:abet:(hail:(burb our) p.tac q.tac)
|
||||
::
|
||||
:: set ethereum source
|
||||
:: [%look p=(each ship purl)]
|
||||
::
|
||||
%look
|
||||
%^ cute hen our.tac =< abet
|
||||
(~(look et hen our.tac now.sys urb.lex sub.lex etn.lex sap.lex) src.tac)
|
||||
%+ cute hen =< abet
|
||||
(~(look et hen our now urb.lex sub.lex etn.lex sap.lex) src.tac)
|
||||
::
|
||||
:: create promises
|
||||
:: {$mint p/ship q/safe}
|
||||
@ -816,8 +811,8 @@
|
||||
?< ?& fak.own.sub
|
||||
(~(exists up q.tac) %jewel)
|
||||
==
|
||||
%^ cure hen our.tac
|
||||
abet:abet:(deal:(burb our.tac) p.tac [q.tac ~])
|
||||
%+ cure hen
|
||||
abet:abet:(deal:(burb our) p.tac [q.tac ~])
|
||||
::
|
||||
::
|
||||
:: move promises
|
||||
@ -825,11 +820,11 @@
|
||||
::
|
||||
$move
|
||||
=. +>
|
||||
%^ cure hen our.tac
|
||||
abet:abet:(deal:(burb our.tac) p.tac [~ r.tac])
|
||||
%+ cure hen
|
||||
abet:abet:(deal:(burb our) p.tac [~ r.tac])
|
||||
=. +>
|
||||
%^ cure hen our.tac
|
||||
abet:abet:(deal:(burb our.tac) q.tac [r.tac ~])
|
||||
%+ cure hen
|
||||
abet:abet:(deal:(burb our) q.tac [r.tac ~])
|
||||
+>
|
||||
::
|
||||
:: cancel all trackers from duct
|
||||
@ -844,18 +839,18 @@
|
||||
==
|
||||
::
|
||||
:: watch public keys
|
||||
:: [%pubs our=ship who=ship]
|
||||
:: [%pubs =ship]
|
||||
::
|
||||
%pubs
|
||||
%- curd =< abet
|
||||
(~(pubs ~(feed su hen our.tac urb sub etn sap) hen) who.tac)
|
||||
(~(pubs ~(feed su hen our urb sub etn sap) hen) ship.tac)
|
||||
::
|
||||
:: seen after breach
|
||||
:: [%meet our=ship who=ship]
|
||||
::
|
||||
%meet
|
||||
%^ cure hen our.tac
|
||||
[[%meet who.tac life.tac pass.tac]~ urb]
|
||||
%+ cure hen
|
||||
[[%meet ship.tac life.tac pass.tac]~ urb]
|
||||
::
|
||||
:: XX should be a subscription
|
||||
:: XX reconcile with .dns.eth
|
||||
@ -873,20 +868,20 @@
|
||||
:: {$vein $~}
|
||||
::
|
||||
$vein
|
||||
(curd abet:~(vein ~(feed su hen our.tac urb sub etn sap) hen))
|
||||
(curd abet:~(vein ~(feed su hen our urb sub etn sap) hen))
|
||||
::
|
||||
:: watch ethereum events
|
||||
:: [%vent ~]
|
||||
::
|
||||
%vent
|
||||
=. moz [[hen %give %mack ~] moz]
|
||||
(curd abet:~(vent ~(feed su hen our.tac urb sub etn sap) hen))
|
||||
(curd abet:~(vent ~(feed su hen our urb sub etn sap) hen))
|
||||
::
|
||||
:: monitor assets
|
||||
:: {$vest $~}
|
||||
::
|
||||
$vest
|
||||
(curd abet:~(vest ~(feed su hen our.tac urb sub etn sap) hen))
|
||||
(curd abet:~(vest ~(feed su hen our urb sub etn sap) hen))
|
||||
::
|
||||
:: monitor all
|
||||
:: {$vine $~}
|
||||
@ -898,17 +893,16 @@
|
||||
:: {$west p/ship q/path r/*}
|
||||
::
|
||||
$west
|
||||
=+ mes=((hard message) r.tac)
|
||||
=* our p.p.tac
|
||||
=* dem q.p.tac
|
||||
=* her p.tac
|
||||
=/ mes ((hard message) r.tac)
|
||||
?- -.mes
|
||||
::
|
||||
:: reset remote rights
|
||||
:: [%hail p=remote]
|
||||
::
|
||||
%hail
|
||||
%^ cure hen our
|
||||
abet:abet:(hail:(burb our) dem p.mes)
|
||||
%+ cure hen
|
||||
abet:abet:(hail:(burb our) her p.mes)
|
||||
::
|
||||
:: cancel trackers
|
||||
:: [%nuke ~]
|
||||
@ -920,30 +914,29 @@
|
||||
:: [%vent ~]
|
||||
::
|
||||
%vent
|
||||
$(tac [%vent our])
|
||||
$(tac [%vent ~])
|
||||
::
|
||||
::
|
||||
%vent-result
|
||||
:: ignore if not from currently configured source.
|
||||
?. &(-.source.etn =(dem p.source.etn))
|
||||
?. &(-.source.etn =(her p.source.etn))
|
||||
+>.$
|
||||
=. moz [[hen %give %mack ~] moz]
|
||||
%^ cute hen our =< abet
|
||||
(~(hear-vent et hen our now.sys urb.lex sub.lex etn.lex sap.lex) p.mes)
|
||||
%+ cute hen =< abet
|
||||
(~(hear-vent et hen our now urb.lex sub.lex etn.lex sap.lex) p.mes)
|
||||
==
|
||||
::
|
||||
:: rewind to snapshot
|
||||
:: {$wind p/@ud}
|
||||
::
|
||||
%wind
|
||||
(wind hen our.tac p.tac)
|
||||
(wind hen p.tac)
|
||||
==
|
||||
::
|
||||
++ take
|
||||
|= [tea=wire hen=duct hin=sign]
|
||||
^+ +>
|
||||
?> ?=([@ *] tea)
|
||||
=+ our=(slav %p i.tea)
|
||||
=* wir t.tea
|
||||
?- hin
|
||||
[%a %woot *]
|
||||
@ -955,20 +948,20 @@
|
||||
+>.$
|
||||
::
|
||||
[%e %sigh *]
|
||||
%^ cute hen our =< abet
|
||||
(~(sigh et hen our now.sys urb.lex sub.lex etn.lex sap.lex) wir p.hin)
|
||||
%+ cute hen =< abet
|
||||
(~(sigh et hen our now urb.lex sub.lex etn.lex sap.lex) wir p.hin)
|
||||
::
|
||||
[%b %wake ~]
|
||||
%^ cute hen our
|
||||
%+ cute hen
|
||||
:: XX cleanup
|
||||
::
|
||||
?. ?=([%init ~] wir)
|
||||
abet:~(wake et hen our now.sys urb.lex sub.lex etn.lex sap.lex)
|
||||
abet:(~(init et hen our now.sys [urb sub etn sap]:lex) our (sein our))
|
||||
abet:~(wake et hen our now urb.lex sub.lex etn.lex sap.lex)
|
||||
abet:(~(init et hen our now [urb sub etn sap]:lex) our (sein our))
|
||||
::
|
||||
[%j %vent *]
|
||||
%^ cute hen our =< abet
|
||||
(~(hear-vent et hen our now.sys urb.lex sub.lex etn.lex sap.lex) p.hin)
|
||||
%+ cute hen =< abet
|
||||
(~(hear-vent et hen our now urb.lex sub.lex etn.lex sap.lex) p.hin)
|
||||
==
|
||||
:: :: ++curd:of
|
||||
++ curd :: relative moves
|
||||
@ -980,14 +973,13 @@
|
||||
+>(sub sub, etn etn, sap sap, moz (weld (flop moz) ^moz))
|
||||
:: :: ++cure:of
|
||||
++ cure :: absolute edits
|
||||
|= {hen/duct our/ship hab/(list change) urb/state-absolute}
|
||||
|= [hen=duct hab=(list change) urb=state-absolute]
|
||||
^+ +>
|
||||
=. ^urb urb
|
||||
(curd abet:(~(apex su hen our urb sub etn sap) hab))
|
||||
:: :: ++cute:of
|
||||
++ cute :: ethereum changes
|
||||
|= $: hen=duct
|
||||
our=ship
|
||||
mos=(list move)
|
||||
ven=chain
|
||||
urb=state-absolute
|
||||
@ -1002,15 +994,15 @@
|
||||
^sap sap
|
||||
==
|
||||
%- cure(moz (weld (flop mos) moz))
|
||||
[hen our abet:(link:(burb our) ven)]
|
||||
[hen abet:(link:(burb our) ven)]
|
||||
:: :: ++wind:of
|
||||
++ wind :: rewind to snap
|
||||
|= [hen=duct our=@p block=@ud]
|
||||
|= [hen=duct block=@ud]
|
||||
^+ +>
|
||||
=. +>.$ (restore-block hen our block)
|
||||
=. +>.$ (restore-block hen block)
|
||||
%= +>.$
|
||||
moz
|
||||
=- [[hen %pass /wind/look %j %look our -] moz]
|
||||
=- [[hen %pass /wind/look %j %look -] moz]
|
||||
?- -.source.etn
|
||||
%& &+p.source.etn
|
||||
%| |+node.p.source.etn
|
||||
@ -1018,14 +1010,14 @@
|
||||
==
|
||||
:: :: ++restore-block:of
|
||||
++ restore-block :: rewind before block
|
||||
|= [hen=duct our=@p block=@ud]
|
||||
%^ cute hen our =< abet
|
||||
(~(restore-block et hen our now.sys urb.lex sub.lex etn.lex sap.lex) block)
|
||||
|= [hen=duct block=@ud]
|
||||
%+ cute hen =< abet
|
||||
(~(restore-block et hen our now urb.lex sub.lex etn.lex sap.lex) block)
|
||||
:: :: ++restore-snap:of
|
||||
++ restore-snap :: restore snapshot
|
||||
|= [hen=duct our=@p snap=snapshot look=?]
|
||||
%^ cute hen our =< abet
|
||||
%- ~(restore-snap et hen our now.sys urb.lex sub.lex etn.lex sap.lex)
|
||||
|= [hen=duct snap=snapshot look=?]
|
||||
%+ cute hen =< abet
|
||||
%- ~(restore-snap et hen our now urb.lex sub.lex etn.lex sap.lex)
|
||||
[snap look]
|
||||
--
|
||||
:: :: ++su
|
||||
@ -1104,7 +1096,7 @@
|
||||
:+ %pass
|
||||
/(scot %p our)/vent-result
|
||||
^- note:able
|
||||
[%a %want [our who] /j/(scot %p our)/vent-result %vent-result res]
|
||||
[%a %want who /j/(scot %p our)/vent-result %vent-result res]
|
||||
::
|
||||
++ extract-snap :: extract rewind point
|
||||
^- snapshot
|
||||
@ -1217,7 +1209,7 @@
|
||||
:_ moz
|
||||
:^ *duct %pass /vest/(scot %p p.hug)
|
||||
:+ %a %want
|
||||
:+ [our p.hug] /j
|
||||
:+ p.hug /j
|
||||
^- message
|
||||
[%hail |+pig]
|
||||
==
|
||||
@ -1709,7 +1701,7 @@
|
||||
|= [our=ship who=ship]
|
||||
%- put-move(source &+who)
|
||||
%+ wrap-note /vent/(scot %p who)
|
||||
[%a %want [our who] /j/(scot %p our)/vent `*`[%vent ~]]
|
||||
[%a %want who /j/(scot %p our)/vent `*`[%vent ~]]
|
||||
::
|
||||
:: +unsubscribe-from-source: stop listening to current source ship
|
||||
::
|
||||
@ -1720,7 +1712,7 @@
|
||||
%+ wrap-note /vent/(scot %p p.source)
|
||||
::TODO should we maybe have a %nuke-vent,
|
||||
:: or do we have a unique duct here?
|
||||
[%a %want [our p.source] /j/(scot %p our)/vent `*`[%nuke ~]]
|
||||
[%a %want p.source /j/(scot %p our)/vent `*`[%nuke ~]]
|
||||
::
|
||||
:: +listen-to-node: start syncing from a node
|
||||
::
|
||||
@ -2141,7 +2133,7 @@
|
||||
sap sap(last-block 0)
|
||||
moves
|
||||
?. look moves
|
||||
=- [[hen %pass /wind/look %j %look our -] moves]
|
||||
=- [[hen %pass /wind/look %j %look -] moves]
|
||||
?- -.source.etn
|
||||
%& &+p.source.etn
|
||||
%| |+node.p.source.etn
|
||||
@ -2168,7 +2160,7 @@
|
||||
:+ %pass
|
||||
/(scot %p our)/vent-result
|
||||
^- note:able
|
||||
[%a %want [our who] /j/(scot %p our)/vent-result %vent-result res]
|
||||
[%a %want who /j/(scot %p our)/vent-result %vent-result res]
|
||||
:: :: ++feed:su
|
||||
--
|
||||
--
|
||||
@ -2200,10 +2192,12 @@
|
||||
hic/(hypo (hobo task:able))
|
||||
==
|
||||
^- [(list move) _..^$]
|
||||
=^ did lex
|
||||
=- abet:(~(call of [now eny] lex) hen -)
|
||||
?. ?=($soft -.q.hic) q.hic
|
||||
=/ =task:able
|
||||
?. ?=($soft -.q.hic)
|
||||
q.hic
|
||||
((hard task:able) p.q.hic)
|
||||
=^ did lex
|
||||
abet:(~(call of [our now eny] lex) hen task)
|
||||
[did ..^$]
|
||||
:: :: ++load
|
||||
++ load :: upgrade
|
||||
@ -2271,7 +2265,7 @@
|
||||
::
|
||||
%deed
|
||||
?. ?=([@ @ ~] tyl) [~ ~]
|
||||
?. &(?=(%& -.why) =(p.why our.own.sub.lex))
|
||||
?. &(?=(%& -.why) =(p.why our))
|
||||
[~ ~]
|
||||
=/ who (slaw %p i.tyl)
|
||||
=/ lyf (slaw %ud i.t.tyl)
|
||||
@ -2345,7 +2339,7 @@
|
||||
?~ who [~ ~]
|
||||
:^ ~ ~ %atom
|
||||
!> ^- ship
|
||||
(~(sein of [now eny] lex) u.who)
|
||||
(~(sein of [our now eny] lex) u.who)
|
||||
::
|
||||
%saxo
|
||||
?. ?=([@ ~] tyl) [~ ~]
|
||||
@ -2357,7 +2351,7 @@
|
||||
?~ who [~ ~]
|
||||
:^ ~ ~ %noun
|
||||
!> ^- (list ship)
|
||||
(~(saxo of [now eny] lex) u.who)
|
||||
(~(saxo of [our now eny] lex) u.who)
|
||||
::
|
||||
%snap
|
||||
?. ?=(~ tyl) [~ ~]
|
||||
@ -2385,6 +2379,6 @@
|
||||
hin/(hypo sign)
|
||||
==
|
||||
^- [(list move) _..^$]
|
||||
=^ did lex abet:(~(take of [now eny] lex) tea hen q.hin)
|
||||
=^ did lex abet:(~(take of [our now eny] lex) tea hen q.hin)
|
||||
[did ..^$]
|
||||
--
|
||||
|
117
sys/zuse.hoon
117
sys/zuse.hoon
@ -80,7 +80,6 @@
|
||||
++ life @ud :: ship version
|
||||
++ mime {p/mite q/octs} :: mimetyped data
|
||||
++ octs {p/@ud q/@t} :: octet-stream
|
||||
++ sack {p/ship q/ship} :: incoming [our his]
|
||||
++ sock {p/ship q/ship} :: outgoing [our his]
|
||||
::+|
|
||||
::
|
||||
@ -480,16 +479,16 @@
|
||||
$% {$flog p/flog:dill} ::
|
||||
== == ::
|
||||
$: %j :: to %jael
|
||||
$% [%meet our=ship who=ship =life =pass] :: neighbor
|
||||
[%pubs our=ship who=ship] :: view public keys
|
||||
$% [%meet =ship =life =pass] :: neighbor
|
||||
[%pubs =ship] :: view public keys
|
||||
[%turf ~] :: view domains
|
||||
[%vein our=ship] :: view private keys
|
||||
[%vein ~] :: view private keys
|
||||
== == ::
|
||||
$: $g :: to %gall
|
||||
$% {$deal p/sock q/cush:gall} ::
|
||||
== == ::
|
||||
$: @tas :: to any
|
||||
$% {$west p/sack q/path r/*} ::
|
||||
$% {$west p/ship q/path r/*} ::
|
||||
== == == ::
|
||||
++ gift :: out result <-$
|
||||
$% {$mack p/(unit tang)} :: acknowledgement
|
||||
@ -530,8 +529,8 @@
|
||||
{$sunk p=ship q=life} :: report death
|
||||
{$wake ~} :: timer activate
|
||||
{$wegh ~} :: report memory
|
||||
{$west p/sack q/path r/*} :: network request
|
||||
{$want p/sock q/path r/*} :: forward message
|
||||
{$west p/ship q/path r/*} :: network request
|
||||
{$want p/ship q/path r/*} :: forward message
|
||||
== ::
|
||||
-- ::able
|
||||
::
|
||||
@ -567,17 +566,17 @@
|
||||
ryl/(map path rill) :: statements outbound
|
||||
== ::
|
||||
++ boon :: fort output
|
||||
$% {$beer p/sock} :: request public keys
|
||||
{$bock ~} :: bind to domains
|
||||
{$brew ~} :: request domains
|
||||
{$cake p/sock q/soap r/coop s/duct} :: e2e message result
|
||||
{$mead p/lane q/rock} :: accept packet
|
||||
{$milk p/sock q/soap r/*} :: e2e pass message
|
||||
{$ouzo p/lane q/rock} :: transmit packet
|
||||
{$pito p/@da} :: timeout
|
||||
{$raki p/sock q/life r/pass} :: neighbor'd
|
||||
{$sake p/ship} :: our private keys
|
||||
{$wine p/sock q/tape} :: notify user
|
||||
$% [%beer p=ship] :: request public keys
|
||||
[%bock ~] :: bind to domains
|
||||
[%brew ~] :: request domains
|
||||
[%cake p=ship q=soap r=coop s=duct] :: e2e message result
|
||||
[%mead p=lane q=rock] :: accept packet
|
||||
[%milk p=ship q=soap r=*] :: e2e pass message
|
||||
[%ouzo p=lane q=rock] :: transmit packet
|
||||
[%pito p=@da] :: timeout
|
||||
[%raki p=ship q=life r=pass] :: neighbor'd
|
||||
[%sake ~] :: our private keys
|
||||
[%wine p=ship q=tape] :: notify user
|
||||
== ::
|
||||
++ cake {p/sock q/skin r/@} :: top level packet
|
||||
++ cape :: end-to-end result
|
||||
@ -614,7 +613,7 @@
|
||||
hop/@da :: network boot date
|
||||
bad/(set @p) :: bad ships
|
||||
ton/town :: security
|
||||
zac/(map ship corn) :: flows by server
|
||||
zac/corn :: flows by server
|
||||
== ::
|
||||
++ hand @uvH :: 128-bit hash
|
||||
++ lane :: packet route
|
||||
@ -677,16 +676,13 @@
|
||||
lys/@da :: last sent
|
||||
pac/rock :: packet data
|
||||
== ::
|
||||
++ sufi :: domestic host
|
||||
$: val/wund :: private keys
|
||||
++ town :: all security state
|
||||
$: any/@ :: entropy
|
||||
val/wund :: private keys
|
||||
law/deed :: server deed
|
||||
seh/(map hand {p/ship q/@da}) :: key cache
|
||||
hoc/(map ship dore) :: neighborhood
|
||||
== ::
|
||||
++ town :: all security state
|
||||
$: any/@ :: entropy
|
||||
urb/(map ship sufi) :: all keys and routes
|
||||
== ::
|
||||
++ wund (list {p/life q/ring r/acru}) :: secrets in action
|
||||
-- ::ames
|
||||
:: ::::
|
||||
@ -745,30 +741,30 @@
|
||||
{$wris p/{$da p/@da} q/(set (pair care path))} :: many changes
|
||||
== ::
|
||||
++ task :: in request ->$
|
||||
$% {$boat ~} :: pier rebooted
|
||||
{$cred our/ship nom/@ta cew/crew} :: set permission group
|
||||
{$crew our/ship} :: permission groups
|
||||
{$crow our/ship nom/@ta} :: group usage
|
||||
$% {$boat ~} :: pier rebooted
|
||||
{$cred nom/@ta cew/crew} :: set permission group
|
||||
{$crew ~} :: permission groups
|
||||
{$crow nom/@ta} :: group usage
|
||||
{$crud p/@tas q/(list tank)} :: error with trace
|
||||
{$drop our/@p des/desk} :: cancel pending merge
|
||||
{$info our/@p des/desk dit/nori} :: internal edit
|
||||
{$drop des/desk} :: cancel pending merge
|
||||
{$info des/desk dit/nori} :: internal edit
|
||||
{$init our/@p} :: report install
|
||||
{$into des/desk all/? fis/mode} :: external edit
|
||||
$: $merg :: merge desks
|
||||
our/@p des/desk :: target
|
||||
des/desk :: target
|
||||
her/@p dem/desk cas/case :: source
|
||||
how/germ :: method
|
||||
== ::
|
||||
{$mont des/desk bem/beam} :: mount to unix
|
||||
{$dirk des/desk} :: mark mount dirty
|
||||
{$ogre pot/$@(desk beam)} :: delete mount point
|
||||
{$perm our/ship des/desk pax/path rit/rite} :: change permissions
|
||||
{$perm des/desk pax/path rit/rite} :: change permissions
|
||||
{$sunk p=ship q=life} :: report death
|
||||
{$warp wer/sock rif/riff} :: internal file req
|
||||
{$werp who/ship wer/sock rif/riff} :: external file req
|
||||
{$warp wer/ship rif/riff} :: internal file req
|
||||
{$werp who/ship wer/ship rif/riff} :: external file req
|
||||
{$wegh ~} :: report memory
|
||||
{$went wer/sack pax/path num/@ud ack/coop} :: response confirm
|
||||
{$west wer/sack pax/path res/*} :: network request
|
||||
{$went wer/ship pax/path num/@ud ack/coop} :: response confirm
|
||||
{$west wer/ship pax/path res/*} :: network request
|
||||
== ::
|
||||
-- ::able
|
||||
::
|
||||
@ -1033,8 +1029,8 @@
|
||||
[%thud ~] :: inbound cancel
|
||||
[%wegh ~] :: report memory
|
||||
[%well p=path q=(unit mime)] :: put/del .well-known
|
||||
[%went p=sack q=path r=@ud s=coop] :: response confirm
|
||||
[%west p=sack q=[path *]] :: network request
|
||||
[%went p=ship q=path r=@ud s=coop] :: response confirm
|
||||
[%west p=ship q=[path *]] :: network request
|
||||
[%wise p=ship q=prox] :: proxy notification
|
||||
== ::
|
||||
-- ::able
|
||||
@ -1249,9 +1245,6 @@
|
||||
$% :: %build: perform a build, either live or once
|
||||
::
|
||||
$: %build
|
||||
:: our: who our ship is (remove after cc-release)
|
||||
::
|
||||
our=@p
|
||||
:: live: whether we run this build live
|
||||
::
|
||||
:: A live build will subscribe to further updates and keep the
|
||||
@ -1267,11 +1260,7 @@
|
||||
[%keep compiler-cache=@ud build-cache=@ud]
|
||||
:: %kill: stop a build; send on same duct as original %build request
|
||||
::
|
||||
$: %kill
|
||||
:: our: who our ship is (remove after cc-release)s
|
||||
::
|
||||
our=@p
|
||||
==
|
||||
[%kill ~]
|
||||
:: %sunk: receive a report that a foreign ship has lost continuity
|
||||
::
|
||||
[%sunk =ship =life]
|
||||
@ -1966,8 +1955,8 @@
|
||||
{$init p/ship} :: set owner
|
||||
{$deal p/sock q/cush} :: full transmission
|
||||
{$sunk p=ship q/life} :: report death
|
||||
{$went p/sack q/path r/@ud s/coop} :: response confirm
|
||||
{$west p/sack q/path r/*} :: network request
|
||||
{$went p/ship q/path r/@ud s/coop} :: response confirm
|
||||
{$west p/ship q/path r/*} :: network request
|
||||
{$wegh ~} :: report memory
|
||||
== ::
|
||||
-- ::able
|
||||
@ -2105,11 +2094,11 @@
|
||||
$% [%hiss p=(unit user) q=mark r=cage] :: outbound user req
|
||||
== == ::
|
||||
$: %a ::
|
||||
$% [%want p=sock q=path r=*] :: send message
|
||||
$% [%want p=ship q=path r=*] :: send message
|
||||
== == ::
|
||||
$: %j ::
|
||||
$% [%vent-result p=vent-result] :: tmp workaround
|
||||
[%look our=ship src=(each ship purl:eyre)] ::
|
||||
[%look src=(each ship purl:eyre)] ::
|
||||
== == ::
|
||||
$: @tas ::
|
||||
$% [%init p=ship] :: report install
|
||||
@ -2137,8 +2126,8 @@
|
||||
action :: change
|
||||
::
|
||||
+= task :: in request ->$
|
||||
$% [%burn our=ship p=ship q=safe] :: destroy rights
|
||||
[%hail our=ship p=ship q=remote] :: remote update
|
||||
$% [%burn p=ship q=safe] :: destroy rights
|
||||
[%hail p=ship q=remote] :: remote update
|
||||
$: %dawn :: boot from keys
|
||||
=seed:able:jael :: identity params
|
||||
spon=(unit ship) :: sponsor
|
||||
@ -2148,21 +2137,21 @@
|
||||
node=(unit purl:eyre) :: gateway url
|
||||
snap=(unit snapshot) :: head start
|
||||
== ::
|
||||
[%fake our=ship] :: fake boot
|
||||
[%look our=ship src=(each ship purl:eyre)] :: set ethereum source
|
||||
[%mint our=ship p=ship q=safe] :: create rights
|
||||
[%move our=ship p=ship q=ship r=safe] :: transfer from=to
|
||||
[%fake =ship] :: fake boot
|
||||
[%look src=(each ship purl:eyre)] :: set ethereum source
|
||||
[%mint p=ship q=safe] :: create rights
|
||||
[%move p=ship q=ship r=safe] :: transfer from=to
|
||||
::TODO %next for generating/putting new private key
|
||||
[%nuke ~] :: cancel tracker from
|
||||
[%pubs our=ship who=ship] :: view public keys
|
||||
[%meet our=ship who=ship =life =pass] :: met after breach
|
||||
[%pubs =ship] :: view public keys
|
||||
[%meet =ship =life =pass] :: met after breach
|
||||
[%turf ~] :: view domains
|
||||
[%vein our=ship] :: view signing keys
|
||||
[%vent our=ship] :: view ethereum events
|
||||
[%vest our=ship] :: view public balance
|
||||
[%vein ~] :: view signing keys
|
||||
[%vent ~] :: view ethereum events
|
||||
[%vest ~] :: view public balance
|
||||
[%vine ~] :: view secret history
|
||||
[%west p=sack q=path r=*] :: remote request
|
||||
[%wind our=ship p=@ud] :: rewind before block
|
||||
[%west p=ship q=path r=*] :: remote request
|
||||
[%wind p=@ud] :: rewind before block
|
||||
== ::
|
||||
-- ::
|
||||
:: ::
|
||||
|
@ -20,7 +20,7 @@
|
||||
:* ames-gate
|
||||
now=~1234.5.6
|
||||
call-args=[hen type=*type %soft %init ~nul]
|
||||
[[hen %pass wir %j %vein ~nul] [hen %pass / %j %turf ~] ~]
|
||||
[[hen %pass wir %j %vein ~] [hen %pass / %j %turf ~] ~]
|
||||
==
|
||||
::
|
||||
results1
|
||||
@ -33,7 +33,7 @@
|
||||
==
|
||||
^- [tang _ames-gate]
|
||||
::
|
||||
=/ ames (ames-gate our=~zod now=now eny=`@`0xdead.beef scry=*sley)
|
||||
=/ ames (ames-gate our=~nul now=now eny=`@`0xdead.beef scry=*sley)
|
||||
::
|
||||
=^ moves ames-gate
|
||||
%- call:ames call-args
|
||||
|
@ -27,7 +27,7 @@
|
||||
^= call-args
|
||||
:+ duct=~[/info] type=-:!>(*task:able:clay)
|
||||
^- task:able:clay
|
||||
:^ %info ~nul %home
|
||||
:+ %info %home
|
||||
^- nori:clay
|
||||
:- %&
|
||||
^- soba:clay
|
||||
@ -50,7 +50,7 @@
|
||||
:+ %pass /castifying/~nul/home/~1111.1.1
|
||||
^- note:clay-gate
|
||||
:- %f
|
||||
[%build ~nul live=%.n [%pin ~1111.1.1 [%list ~]]]
|
||||
[%build live=%.n [%pin ~1111.1.1 [%list ~]]]
|
||||
!> i.moves
|
||||
::
|
||||
%+ expect-eq
|
||||
@ -60,7 +60,7 @@
|
||||
:+ %pass /diffing/~nul/home/~1111.1.1
|
||||
^- note:clay-gate
|
||||
:- %f
|
||||
[%build ~nul live=%.n [%pin ~1111.1.1 [%list ~]]]
|
||||
[%build live=%.n [%pin ~1111.1.1 [%list ~]]]
|
||||
!> i.t.moves
|
||||
::
|
||||
^- tang
|
||||
@ -85,9 +85,6 @@
|
||||
?. ?=([%f %build *] note)
|
||||
[%leaf "bad move, not a %build: {<move>}"]~
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(~nul) !>(our.note))
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(%.n) !>(live.note))
|
||||
::
|
||||
@ -145,9 +142,6 @@
|
||||
?. ?=([%f %build *] note)
|
||||
[%leaf "bad move, not a %build: {<move>}"]~
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(~nul) !>(our.note))
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(%.n) !>(live.note))
|
||||
::
|
||||
@ -234,9 +228,6 @@
|
||||
?. ?=([%f %build *] note)
|
||||
[%leaf "bad move, not a %build: {<move>}"]~
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(~nul) !>(our.note))
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(%.n) !>(live.note))
|
||||
::
|
||||
@ -315,7 +306,7 @@
|
||||
^= call-args
|
||||
:+ duct=~[/info2] type=-:!>(*task:able:clay)
|
||||
^- task:able:clay
|
||||
:^ %info ~nul %home
|
||||
:+ %info %home
|
||||
^- nori:clay
|
||||
:- %&
|
||||
^- soba:clay
|
||||
@ -380,7 +371,7 @@
|
||||
:+ %pass /castifying/~nul/home/~2222.2.2
|
||||
^- note:clay-gate
|
||||
:- %f
|
||||
[%build ~nul live=%.n [%pin ~2222.2.2 [%list ~]]]
|
||||
[%build live=%.n [%pin ~2222.2.2 [%list ~]]]
|
||||
!> i.moves
|
||||
::
|
||||
%+ expect-eq
|
||||
@ -390,7 +381,7 @@
|
||||
:+ %pass /diffing/~nul/home/~2222.2.2
|
||||
^- note:clay-gate
|
||||
:- %f
|
||||
[%build ~nul live=%.n [%pin ~2222.2.2 [%list ~]]]
|
||||
[%build live=%.n [%pin ~2222.2.2 [%list ~]]]
|
||||
!> i.t.moves
|
||||
::
|
||||
^- tang
|
||||
@ -415,9 +406,6 @@
|
||||
?. ?=([%f %build *] note)
|
||||
[%leaf "bad move, not a %build: {<move>}"]~
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(~nul) !>(our.note))
|
||||
::
|
||||
%+ weld
|
||||
(expect-eq !>(%.n) !>(live.note))
|
||||
::
|
||||
@ -463,7 +451,7 @@
|
||||
==
|
||||
^- [tang _clay-gate]
|
||||
::
|
||||
=/ clay-core (clay-gate our=~zod now=now eny=`@`0xdead.beef scry=scry)
|
||||
=/ clay-core (clay-gate our=~nul now=now eny=`@`0xdead.beef scry=scry)
|
||||
::
|
||||
=^ moves clay-gate (call:clay-core call-args)
|
||||
::
|
||||
@ -484,7 +472,7 @@
|
||||
==
|
||||
^- [tang _clay-gate]
|
||||
::
|
||||
=/ clay-core (clay-gate our=~zod now=now eny=`@`0xdead.beef scry=scry)
|
||||
=/ clay-core (clay-gate our=~nul now=now eny=`@`0xdead.beef scry=scry)
|
||||
::
|
||||
=^ moves clay-gate (call:clay-core call-args)
|
||||
::
|
||||
@ -502,7 +490,7 @@
|
||||
==
|
||||
^- [tang _clay-gate]
|
||||
::
|
||||
=/ clay-core (clay-gate our=~zod now=now eny=`@`0xdead.beef scry=scry)
|
||||
=/ clay-core (clay-gate our=~nul now=now eny=`@`0xdead.beef scry=scry)
|
||||
::
|
||||
=^ moves clay-gate (take:clay-core take-args)
|
||||
::
|
||||
@ -523,7 +511,7 @@
|
||||
==
|
||||
^- [tang _clay-gate]
|
||||
::
|
||||
=/ clay-core (clay-gate our=~zod now=now eny=`@`0xdead.beef scry=scry)
|
||||
=/ clay-core (clay-gate our=~nul now=now eny=`@`0xdead.beef scry=scry)
|
||||
::
|
||||
=^ moves clay-gate (take:clay-core take-args)
|
||||
::
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -41,7 +41,7 @@
|
||||
%- jael-call-with-comparator :*
|
||||
jael-gate
|
||||
now=(add ~s1 ~1234.5.6)
|
||||
call-args=[duct=[/ /term/1 wir ~] type=*type %vein ~nul]
|
||||
call-args=[duct=[/ /term/1 wir ~] type=*type %vein ~]
|
||||
^= comparator
|
||||
|= moves=(list move:jael-gate)
|
||||
;: weld
|
||||
@ -89,7 +89,7 @@
|
||||
==
|
||||
^- [tang _jael-gate]
|
||||
::
|
||||
=/ jael (jael-gate our=~zod now=now eny=`@`0xdead.beef scry=*sley)
|
||||
=/ jael (jael-gate our=~nul now=now eny=`@`0xdead.beef scry=*sley)
|
||||
::
|
||||
=^ moves jael-gate
|
||||
%- call:jael call-args
|
||||
@ -109,7 +109,7 @@
|
||||
==
|
||||
^- [tang _jael-gate]
|
||||
::
|
||||
=/ jael (jael-gate our=~zod now=now eny=`@`0xdead.beef scry=*sley)
|
||||
=/ jael (jael-gate our=~nul now=now eny=`@`0xdead.beef scry=*sley)
|
||||
::
|
||||
=^ moves jael-gate
|
||||
%- call:jael call-args
|
||||
@ -126,7 +126,7 @@
|
||||
==
|
||||
^- [tang _jael-gate]
|
||||
::
|
||||
=/ jael (jael-gate our=~zod now=now eny=`@`0xdead.beef scry=*sley)
|
||||
=/ jael (jael-gate our=~nul now=now eny=`@`0xdead.beef scry=*sley)
|
||||
::
|
||||
=^ moves jael-gate
|
||||
%- take:jael take-args
|
||||
@ -146,7 +146,7 @@
|
||||
==
|
||||
^- [tang _jael-gate]
|
||||
::
|
||||
=/ jael (jael-gate our=~zod now=now eny=`@`0xdead.beef scry=*sley)
|
||||
=/ jael (jael-gate our=~nul now=now eny=`@`0xdead.beef scry=*sley)
|
||||
::
|
||||
=^ moves jael-gate
|
||||
%- take:jael take-args
|
||||
|
Loading…
Reference in New Issue
Block a user