Merge pull request #941 from urbit/single-home-vanes

single-home the vanes
This commit is contained in:
Joe Bryan 2018-12-13 18:44:26 -05:00 committed by GitHub
commit f8905a0640
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 787 additions and 1088 deletions

View File

@ -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)
==
::

View File

@ -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 !>(-)])
==
::

View File

@ -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))

View File

@ -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
::

View File

@ -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)}

View File

@ -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)
--

View File

@ -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

View File

@ -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)
==
==

View File

@ -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]
[~ ..^$]

View File

@ -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

View File

@ -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)]
--

View File

@ -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)

View File

@ -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 ..^$]
--

View File

@ -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
== ::
-- ::
:: ::

View File

@ -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

View File

@ -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

View File

@ -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