This commit is contained in:
Philip Monk 2019-02-21 15:57:51 -08:00
parent 3e1d742deb
commit 99b6111597
No known key found for this signature in database
GPG Key ID: B66E1F02604E44EC
5 changed files with 82 additions and 27 deletions

View File

@ -139,9 +139,13 @@
::
:- %child-sync
%+ compose-tests
%+ compose-tests
(star ~marbud)
(touch-file ~bud)
:: %+ compose-tests
:: %+ compose-tests
%+ compose-tests
(galaxy ~bud)
:: (reload-vane ~bud %clay)
(raw-ship ~marbud)
:: (touch-file ~bud)
(check-file-touched ~marbud)
::
:- %individual-breach

View File

@ -109,6 +109,25 @@
|= [a=test-core b=test-core]
^- test-core
=/ done-with-a |
=>
|%
++ filter-a
|= [now=@da events=(list ph-event)]
^- (quip ph-event _..filter-a)
=+ ^- [done=(list ph-event) other-events=(list ph-event)]
%+ skid events
|= e=ph-event
=(%test-done -.e)
?~ done
[other-events ..filter-a]
?> ?=(%test-done -.i.done)
?. p.i.done
[[%test-done |]~ ..filter-a]
=. done-with-a &
=/ snap-event [%snap-ships label:a ships:a]
=^ events-start b (start:b now)
[(welp other-events [snap-event events-start]) ..filter-a]
--
|%
::
:: Cache lookup label
@ -131,7 +150,8 @@
=. done-with-a &
=/ restore-event [%restore-snap label:a]
=^ events-start b (start:b now)
[[restore-event events-start] ..start]
=^ events ..filter-a (filter-a now restore-event events-start)
[events ..start]
=^ events a (start:a now)
[events ..start]
::
@ -149,20 +169,8 @@
=^ events b (route:b now who ovo)
[events ..start]
=^ events a (route:a now who ovo)
=+ ^- [done=(list ph-event) other-events=(list ph-event)]
%+ skid events
|= e=ph-event
=(%test-done -.e)
?~ done
[other-events ..start]
?> ?=(%test-done -.i.done)
~& [%transitioning label]
?. p.i.done
[[%test-done |]~ ..start]
=. done-with-a &
=/ snap-event [%snap-ships label:a ships:a]
=^ events-start b (start:b now)
[(welp other-events [snap-event events-start]) ..start]
=^ events ..filter-a (filter-a now events)
[events ..start]
--
::
:: Don't use directly, or else you might not have a parent.
@ -310,6 +318,35 @@
(on-dojo-output her who ovo ">=" cb)
==
--
::
:: Reload vane from filesystem
::
:: Ship must have been started.
::
++ reload-vane
|= [her=ship vane=term]
^- test-core
|%
++ label :((cury cat 3) 'reload-vane-' (scot %p her) '-' vane)
++ ships ~
++ start
|= now=@da
^- (pair (list ph-event) _..start)
=/ pax
/(scot %p our)/home/(scot %da now)/sys/vane/[vane]/hoon
:_ ..start
%- zing
:~ (dojo her "|mount %")
(insert-file her pax .^(@t %cx pax))
[%test-done &]~
==
::
++ route
|= [now=@da who=ship ovo=unix-effect]
^- (quip ph-event _..start)
`..start
--
::
++ scry-aqua
|* [a=mold now=@da pax=path]
.^ a

View File

@ -644,7 +644,7 @@
::
=/ pit=vase !>(..is) ::
=/ vil=vile (viol p.pit) :: cached reflexives
=| $: lac=? :: laconic bit
=| $: lac=_| :: laconic bit
eny=@ :: entropy
our=ship :: identity
bud=vase :: %zuse

View File

@ -1171,6 +1171,7 @@
?~ hat
+>.$
wake:(print-changes:(checkout-ankh u.hat) wen lem)
~& [%edit our hen]
?. =(~ dok)
~& %already-applying-changes +>
::
@ -2376,6 +2377,7 @@
++ apply-changes :: apply-changes:ze
|= lar/(list {p/path q/misu}) :: store changes
^- (map path blob)
~& [%apply-changes our hen]
=+ ^= hat :: current state
?: =(let.dom 0) :: initial commit
~ :: has nothing
@ -3768,6 +3770,17 @@
wrapped-task
((hard task:able) p.wrapped-task)
::
:: only one of these should be going at once, so queue
::
?: &(?=(?(%info %into %merg) -.req) |(=(now tip.ruf) ?=(^ cue.ruf)))
=. cue.ruf (~(put to cue.ruf) [hen req])
=/ wait=(list move)
?~(cue.ruf ~ [hen %pass /queued-request %b %wait now]~)
[wait ..^$]
(handle-task hen req)
::
++ handle-task
|= [hen=duct req=task:able]
^+ [*(list move) ..^$]
?- -.req
$boat
@ -3823,19 +3836,13 @@
[mos ..^$]
::
$info
:: second write at :now gets enqueued with a timer to be run in next event
::
?: =(now tip.ruf)
=. cue.ruf (~(put to cue.ruf) [hen req])
=/ =move [hen %pass /queued-request %b %wait now]
::
[~[move] ..^$]
:: set the last date to now so we'll know to enqueue a second write
::
=. tip.ruf now
::
?: =(%$ des.req)
[~ ..^$]
=> .(ruf `raft`ruf) :: TMI
=^ mos ruf
=/ den ((de our now ski hen ruf) our des.req)
abet:(edit:den now dit.req)
@ -3877,6 +3884,7 @@
$merg :: direct state up
?: =(%$ des.req)
[~ ..^$]
=> .(ruf `raft`ruf) :: TMI
=^ mos ruf
=/ den ((de our now ski hen ruf) our des.req)
abet:abet:(start:(me:ze:den [her.req dem.req] ~ &) cas.req how.req)
@ -4246,7 +4254,12 @@
~| [%mismatched-ducts %queued queued-duct %timer hen]
?> =(hen queued-duct)
::
(call hen [-:!>(*task:able) queued-task])
=/ wait
?~ cue.ruf
~
[hen %pass /queued-request %b %wait now]~
=^ moves ..^$ (handle-task hen queued-task)
[(weld wait moves) ..^$]
:: =^ mos=(list move) une
:: wake:(un our now hen ruf)
:: [mos ..^^$]

View File

@ -5751,6 +5751,7 @@
::
=? state ?=(^ last-sent.live.duct-status)
=/ old-build=^build build(date date.u.last-sent.live.duct-status)
~& [%x-live-15 our (build-to-tape build) (build-to-tape old-build)]
::
(remove-anchor-from-root old-build [%duct duct])
::