clay: add +tire subscription for app state

This commit is contained in:
Philip Monk 2022-08-23 14:16:25 -08:00
parent 50c22343b6
commit 9a4d754429
2 changed files with 132 additions and 8 deletions

View File

@ -747,6 +747,7 @@
[%note p=@tD q=tank] :: debug message
[%ogre p=@tas] :: delete mount point
[%rule red=dict wit=dict] :: node r+w permissions
[%tire p=(each rock:tire wave:tire)] :: app state
[%writ p=riot] :: response
[%wris p=[%da p=@da] q=(set (pair care path))] :: many changes
== ::
@ -776,8 +777,9 @@
[%park des=desk yok=yoki ran=rang] :: synchronous commit
[%perm des=desk pax=path rit=rite] :: change permissions
[%pork ~] :: resume commit
[%rein des=desk liv=? ren=(map dude:gall ?)] :: live
[%rein des=desk liv=zest ren=(map dude:gall ?)] :: live
[%stir arg=*] :: debug
[%tire p=(unit ~)] :: app state subscribe
[%tomb =clue] :: tombstone specific
$>(%trim vane-task) :: trim state
$>(%vega vane-task) :: report upgrade
@ -928,6 +930,87 @@
t=@da :: date
== ::
+$ zest $~(%dead ?(%dead %live %next)) :: how live
:: ::
++ tire :: app state
|% ::
+$ rock (map desk [=zest wic=(set weft)]) ::
+$ wave ::
$% [%wait =desk =weft] :: blocked
[%warp =desk =weft] :: unblocked
[%zest =desk =zest] :: running
== ::
::
++ wash :: patch
|= [=rock =wave]
^+ rock
?- -.wave
%wait
=/ got=[=zest wic=(set weft)]
(~(gut by rock) desk.wave *zest ~)
(~(put by rock) desk.wave got(wic (~(put in wic.got) weft.wave)))
::
%warp
%- ~(run by rock)
|= [=zest wic=(set weft)]
[zest (~(del in wic) weft.wave)]
::
%zest
?: ?=(%dead zest.wave)
(~(del by rock) desk.wave)
=/ got=[=zest wic=(set weft)]
(~(gut by rock) desk.wave *zest ~)
(~(put by rock) desk.wave got(zest zest.wave))
==
::
++ walk :: diff
|= [a=rock b=rock]
^- (list wave)
=/ adds (~(dif by b) a)
=/ dels (~(dif by a) b)
=/ bots (~(int by a) b)
;: welp
^- (list wave)
%- zing
%+ turn ~(tap by adds)
|= [=desk =zest wic=(set weft)]
^- (list wave)
:- [%zest desk zest]
%+ turn ~(tap in wic)
|= =weft
[%wait desk weft]
::
^- (list wave)
%+ turn ~(tap by dels)
|= [=desk =zest wic=(set weft)]
^- wave
[%zest desk %dead]
::
^- (list wave)
%- zing
%+ turn ~(tap by bots)
|= [=desk * *]
^- (list wave)
=/ aa (~(got by a) desk)
=/ bb (~(got by b) desk)
=/ wadds (~(dif in wic.bb) wic.aa)
=/ wdels (~(dif in wic.aa) wic.bb)
;: welp
?: =(zest.aa zest.bb)
~
[%zest desk zest.bb]~
::
%+ turn ~(tap by wadds)
|= =weft
^- wave
[%wait desk weft]
::
%+ turn ~(tap by wdels)
|= =weft
^- wave
[%warp desk weft]
==
==
--
::
:: +page-to-lobe: hash a page to get a lobe.
::

View File

@ -268,6 +268,8 @@
mon=(map term beam) :: mount points
hez=(unit duct) :: sync duct
cez=(map @ta crew) :: permission groups
tyr=(set duct) :: app subs
tur=rock:tire :: last tire
pud=(unit [=desk =yoki]) :: pending update
bug=[veb=@ mas=@] :: verbosity
== ::
@ -1785,7 +1787,7 @@
::
=/ kel=weft (get-kelvin yoki)
?. |(=(%base syd) =(kel [%zuse zuse]))
=. wic (~(put by wic) kel yoki)
=. wic.dom (~(put by wic.dom) kel yoki)
%- (slog leaf+"clay: wait-for-kelvin, {<[need=zuse/zuse have=kel]>}" ~)
..park
::
@ -1886,12 +1888,12 @@
(emil (weld moves-1 moves-2))
?. ?=(%live liv.dom.dojo.i.desks)
$(desks t.desks)
?~ wat=(~(get by wic.dom.dojo) kel)
?~ wat=(~(get by wic.dom.dojo.i.desks) kel)
:: XX should crash here
::
$(desks t.desks)
=/ den ((de now rof duct ruf) our desk)
=^ moves-3 ruf abet:(park-main:den | u.wat *rang)
=/ den ((de now rof hen ruf) our desk.i.desks)
=^ moves-3 ruf abet:(park-main:den | u.wat *^rang)
=. moves-2 (weld moves-2 moves-3)
$(desks t.desks)
..park
@ -4346,6 +4348,7 @@
=. sat (apply-precedence sat)
=^ agents ..abet (build-agents sat)
=. ..abet (build-marks (turn sat head))
=. ..abet tare
(emit hen %pass /lu/load %g %load agents)
:: +override: apply rein to bill
::
@ -4475,6 +4478,30 @@
=^ =dais nub.f (build-dais:f i.marks)
$(marks t.marks)
$(desks t.desks)
::
++ tore
^- rock:tire
%- ~(run by dos.rom)
|= =dojo
[liv.dom.dojo ~(key by wic.dom.dojo)]
::
++ tare
?: =(~ tyr)
..abet
=/ tor tore
=/ waves=(list wave:tire) (walk:tire tur tor)
?~ waves
..abet
=. tur tor
%- emil
%- zing
%+ turn ~(tap in tyr)
|= =duct
^- (list move)
%+ turn waves
|= =wave:tire
^- move
[duct %give %tire %| wave]
--
--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@ -4703,6 +4730,14 @@
=^ m2 ruf abet:goad:(lu now rof hen ruf)
[(weld m1 m2) ..^$]
==
::
%tire
?~ p.req
=. tyr.ruf (~(del in tyr.ruf) hen)
`..^$
=. tyr.ruf (~(put in tyr.ruf) hen)
:_ ..^$
[hen %give %tire %& tore:(lu now rof hen ruf)]~
::
%tomb (tomb-clue:tomb hen clue.req)
%trim
@ -5290,7 +5325,10 @@
|= raf=raft-11
^- raft-12
raf(pud [pud.raf 0 0])
:: +raft-12-to-13: add .liv and .ren to $dome's
:: +raft-12-to-13:
::
:: add .liv and .ren to $dome's
:: add .tyr and .tur to $raft
::
++ raft-12-to-13
|= raf=raft-12
@ -5300,10 +5338,13 @@
::
=; rof
rof(dos.rom (~(jab by dos.rom.rof) %base |=(d=dojo d(liv.dom %live))))
^- raft-13
%= raf
dos.rom (~(run by dos.rom.raf) dojo-11-to-13)
hoy (~(run by hoy.raf) rung-11-to-13)
hoy (~(run by hoy.raf) rung-11-to-13)
|6 [&7.raf ~ ~ |7.raf]
==
::
++ dojo-11-to-13
|= doj=dojo-11
^- dojo
@ -5322,7 +5363,7 @@
++ dome-11-to-13
|= dom=dome-11
^- dome
dom(fod [fod.dom liv=%dead ren=~])
dom(fod [fod.dom ~ liv=%dead ren=~])
--
--
::