mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-09-19 14:37:18 +03:00
Merge branch 'next/dill' into m/drum-sessions
Also cleans up some remaining merge artefacts.
This commit is contained in:
commit
36731f92e7
@ -513,590 +513,6 @@
|
||||
[sync hash zest wic]
|
||||
==
|
||||
::
|
||||
::REMOVEME
|
||||
:: ++ vats
|
||||
:: |_ [loc=desk rak=arak]
|
||||
:: ++ ral (need rail.rak)
|
||||
:: ++ vats .
|
||||
:: ++ abet
|
||||
:: ~| [%uninitialized-desk loc]
|
||||
:: ?< =(%$ loc)
|
||||
:: kiln(ark (~(put by ark) loc rak))
|
||||
:: ++ abed
|
||||
:: |= lac=desk
|
||||
:: ~_ leaf/"kiln: {<lac>} not installed"
|
||||
:: vats(loc lac, rak (~(got by ark) lac))
|
||||
:: ::
|
||||
:: ++ here ?~ rail.rak "{<loc>} (local)"
|
||||
:: "{<loc>} from {<[ship desk]:ral>}"
|
||||
:: ++ make-wire |=(step=@tas /kiln/vats/[loc]/[step])
|
||||
:: ++ from-wire
|
||||
:: |= =wire
|
||||
:: ~| wire
|
||||
:: ?> ?=([@ @ *] wire)
|
||||
:: (abed i.wire)
|
||||
:: ::
|
||||
:: ++ emit |=(card:agent:gall vats(kiln (^emit +<)))
|
||||
:: ++ emil |=((list card:agent:gall) vats(kiln (^emil +<)))
|
||||
:: ++ give
|
||||
:: |%
|
||||
:: ++ snap [%give %fact ~[/kiln/vats] %kiln-vats-snap-0 !>(ark)]
|
||||
:: ++ diff |=(d=^diff [%give %fact ~[/kiln/vats] %kiln-vats-diff-0 !>(d)])
|
||||
:: --
|
||||
:: ++ pass
|
||||
:: |%
|
||||
:: ++ pyre |=(=tang [%pass /kiln/vats %pyre tang])
|
||||
:: ++ find (warp %find [%sing %y ud+1 /])
|
||||
:: ++ sync-da (warp %sync [%sing %w da+now /])
|
||||
:: ++ sync-ud (warp %sync [%sing %w ud+aeon:ral /])
|
||||
:: ++ download (warp %download [%sing %v ud+aeon:ral /])
|
||||
:: ++ gall-lyv
|
||||
:: =/ paths=(set [care:clay path])
|
||||
:: %- sy
|
||||
:: :~ [%z /sys/hoon/hoon]
|
||||
:: [%z /sys/arvo/hoon]
|
||||
:: [%z /sys/lull/hoon]
|
||||
:: [%z /sys/zuse/hoon]
|
||||
:: [%z /sys/vane/gall/hoon]
|
||||
:: ==
|
||||
:: %+ clay-card %gall-lyv
|
||||
:: [%warp our %base ~ %mult da+now paths]
|
||||
:: ::
|
||||
:: ++ warp
|
||||
:: |= [s=term r=rave]
|
||||
:: (clay-card s %warp ship:ral desk:ral `r)
|
||||
:: ++ merge-main
|
||||
:: =/ germ (get-germ loc)
|
||||
:: =/ =aeon (dec aeon:ral)
|
||||
:: %+ clay-card %merge-main
|
||||
:: [%merg loc ship:ral desk:ral ud+aeon germ]
|
||||
:: ++ merge-kids
|
||||
:: =/ germ (get-germ %kids)
|
||||
:: =/ =aeon (dec aeon:ral)
|
||||
:: %+ clay-card %merge-kids
|
||||
:: [%merg %kids ship:ral desk:ral ud+aeon germ]
|
||||
:: ++ listen
|
||||
:: (clay-card %listen %warp our loc `[%next %z da+now /])
|
||||
:: ++ clay-card
|
||||
:: |= [step=@tas =task:clay]
|
||||
:: ^- card:agent:gall
|
||||
:: [%pass (make-wire step) %arvo %c task]
|
||||
:: ++ start-dude
|
||||
:: |= =dude
|
||||
:: ^- card:agent:gall
|
||||
:: [%pass /kiln/vats/[loc]/jolt/[dude] %arvo %g %jolt loc dude]
|
||||
:: ++ stop-dude
|
||||
:: |= =dude
|
||||
:: ^- card:agent:gall
|
||||
:: [%pass /kiln/vats/[loc]/uninstall %arvo %g %idle dude]
|
||||
:: --
|
||||
:: :: +uninstall: stop tracking apps on desk, and suspend apps
|
||||
:: ::
|
||||
:: ++ uninstall
|
||||
:: |= lac=desk
|
||||
:: ^+ kiln
|
||||
:: ?: =(%base lac)
|
||||
:: =- (^emit (pyre:pass leaf/- ~))
|
||||
:: "kiln: |uninstall: %base cannot be uninstalled"
|
||||
:: ?. (~(has by ark) lac)
|
||||
:: ~> %slog.(fmt "|uninstall: {<lac>} not installed, ignoring")
|
||||
:: kiln
|
||||
:: =. vats (abed lac)
|
||||
:: ~> %slog.(fmt "uninstalling {here}")
|
||||
:: =. vats stop-agents
|
||||
:: kiln(ark (~(del by ark) lac))
|
||||
:: :: +install: set up desk sync to .lac to install all apps from [her rem]
|
||||
:: ::
|
||||
:: ++ install
|
||||
:: |= [lac=desk her=ship rem=desk]
|
||||
:: ^+ vats
|
||||
:: =. loc lac
|
||||
:: ?: =([her rem] [our lac])
|
||||
:: (install-local lac)
|
||||
:: =/ got (~(get by ark) lac)
|
||||
:: ?: =(`[her rem] got)
|
||||
:: =. rak (need got)
|
||||
:: ~> %slog.(fmt "already tracking {here:(abed lac)}, ignoring")
|
||||
:: vats
|
||||
:: =. rak [`[~ paused=| her rem *aeon next=~] rein:(fall got *arak)]
|
||||
:: ~> %slog.(fmt "beginning install into {here}")
|
||||
:: (emil find:pass listen:pass ~)
|
||||
:: :: +install-local: install from a local desk, with no remote
|
||||
:: ::
|
||||
:: :: Also notify clients that the desk was installed.
|
||||
:: ::
|
||||
:: ++ install-local
|
||||
:: |= lac=desk
|
||||
:: ^+ vats
|
||||
:: |^ ^+ vats
|
||||
:: ?. (~(has by ark) lac)
|
||||
:: go
|
||||
:: =. vats (abed lac)
|
||||
:: ?^ rail.rak
|
||||
:: go
|
||||
:: ~> %slog.(fmt "{<lac>} already installed locally, refreshing")
|
||||
:: update-running-dudes
|
||||
:: ::
|
||||
:: ++ go
|
||||
:: =. loc lac
|
||||
:: =. rak *arak
|
||||
:: ~> %slog.(fmt "installing {<loc>} locally")
|
||||
:: =. vats update-running-dudes
|
||||
:: (emil listen:pass (diff:give %commit lac rak) ~)
|
||||
:: --
|
||||
:: :: +reset: resync after failure
|
||||
:: ::
|
||||
:: :: TODO: instead of jumping all the way back to find:pass,
|
||||
:: :: which will end up skipping all the way until the latest
|
||||
:: :: remote commit, increment the aeon so we skip only the problematic
|
||||
:: :: commit and try the commit immediately after it.
|
||||
:: ::
|
||||
:: ++ reset
|
||||
:: ^+ vats
|
||||
:: ~> %slog.(fmt "resetting tracking for {here}")
|
||||
:: =/ cad (diff:give %reset loc rak)
|
||||
:: =/ rel ral
|
||||
:: =. rail.rak `rel(aeon 0, next ~)
|
||||
:: (emil find:pass cad ~)
|
||||
:: :: +pause: stop syncing from upstream
|
||||
:: ::
|
||||
:: ++ pause
|
||||
:: |= lac=desk
|
||||
:: ^+ vats
|
||||
:: =. vats (abed lac)
|
||||
:: ?. is-tracking
|
||||
:: ~> %slog.(fmt "{<lac>} already paused, ignoring")
|
||||
:: vats
|
||||
:: ~> %slog.(fmt "{<lac>} pausing updates")
|
||||
:: =/ rel ral
|
||||
:: =. rail.rak `rel(paused &, aeon 0, next ~)
|
||||
:: vats
|
||||
:: ::
|
||||
:: :: +gall-lyv: watch gall source for reloading
|
||||
:: ++ gall-lyv
|
||||
:: =. vats (abed %base)
|
||||
:: (emit gall-lyv:pass)
|
||||
:: :: +remove-upstream: stop listening to an upstream for changes
|
||||
:: ::
|
||||
:: ++ remove-upstream
|
||||
:: |= lac=desk
|
||||
:: ^+ vats
|
||||
:: =. vats (abed lac)
|
||||
:: =. rail.rak ~
|
||||
:: vats
|
||||
:: :: +resume: restart tracking from upstream
|
||||
:: ::
|
||||
:: :: TODO: check whether kelvin is legit
|
||||
:: ::
|
||||
:: ++ resume
|
||||
:: |= lac=desk
|
||||
:: ^+ vats
|
||||
:: =. vats (abed lac)
|
||||
:: ~> %slog. %- fmt
|
||||
:: ?. paused:ral
|
||||
:: "{<lac>} already tracking, ignoring"
|
||||
:: "{<lac>} resuming updates"
|
||||
:: =/ rel ral
|
||||
:: =. rail.rak `rel(paused |)
|
||||
:: reset
|
||||
:: :: +suspend: shut down all agents, keep syncing
|
||||
:: ::
|
||||
:: ++ suspend
|
||||
:: |= lac=desk
|
||||
:: ^+ vats
|
||||
:: =/ got (~(get by ark) lac)
|
||||
:: ?: =(%base lac)
|
||||
:: =- (emit (pyre:pass leaf/- ~))
|
||||
:: "kiln: suspend: %base cannot be suspended"
|
||||
:: ?. (~(has by ark) lac)
|
||||
:: ~> %slog.(fmt "suspend: {<lac>} not installed, ignoring")
|
||||
:: vats
|
||||
:: =. vats (abed lac)
|
||||
:: =. liv.rein.rak |
|
||||
:: =. vats stop-agents
|
||||
:: (emit (diff:give %suspend loc rak))
|
||||
:: :: +revive: restart agents on a suspended desk
|
||||
:: ::
|
||||
:: ++ revive
|
||||
:: |= lac=desk
|
||||
:: ^+ vats
|
||||
:: =. vats (abed lac)
|
||||
:: =. liv.rein.rak &
|
||||
:: =. vats update-running-dudes
|
||||
:: (emit (diff:give %revive loc rak))
|
||||
:: :: +set-rein: adjust which agents are forced on or off
|
||||
:: ::
|
||||
:: ++ set-rein
|
||||
:: |= [lac=desk new=rein]
|
||||
:: ^+ vats
|
||||
:: =. vats (abed lac)
|
||||
:: =^ old rein.rak [rein.rak new]
|
||||
:: ?+ [liv.old liv.new] !!
|
||||
:: [%| %|] vats
|
||||
:: [%| %&] (revive lac)
|
||||
:: [%& %|] (suspend lac)
|
||||
:: [%& %&] update-running-dudes
|
||||
:: ==
|
||||
:: :: +bump: try to apply kernel kelvin upgrade
|
||||
:: ::
|
||||
:: :: Apply merges to revive faded agents on all desks.
|
||||
:: :: If .force, suspends stale agents. Else, any stale desk
|
||||
:: :: will cause a crash.
|
||||
:: ::
|
||||
:: ++ bump
|
||||
:: |= [kel=weft except=(set desk) force=?]
|
||||
:: ^+ kiln
|
||||
:: =/ ded (find-blocked kel except)
|
||||
:: =? kiln force (suspend-many ded)
|
||||
:: ?: |(force =(~ ded))
|
||||
:: ?: !=(zuse+zuse kel)
|
||||
:: (bump-one kel %base)
|
||||
:: (bump-many (all-desks-but (~(uni in except) ded)))
|
||||
:: =- (^emit (pyre:pass leaf/- ~))
|
||||
:: "kiln: desks blocked upgrade to {<zuse/zuse>}: {<ded>}"
|
||||
:: ::
|
||||
:: ++ all-desks-but |=(not=(set desk) (~(dif in ~(key by ark)) not))
|
||||
:: ::
|
||||
:: ++ find-blocked
|
||||
:: |= [kel=weft except=(set desk)]
|
||||
:: ^- (set desk)
|
||||
:: (~(dif in (get-blockers kel)) (~(put in except) %base))
|
||||
:: ::
|
||||
:: ++ suspend-many
|
||||
:: |= dead=(set desk)
|
||||
:: ^+ kiln
|
||||
:: =/ ded ~(tap in dead)
|
||||
:: |- ^+ kiln
|
||||
:: ?~ ded kiln
|
||||
:: $(ded t.ded, kiln abet:(suspend i.ded))
|
||||
:: ::
|
||||
:: ++ bump-many
|
||||
:: |= live=(set desk)
|
||||
:: ^+ kiln
|
||||
:: :: ensure %base is always reloaded first
|
||||
:: ::
|
||||
:: =/ liv
|
||||
:: %+ sort ~(tap in live)
|
||||
:: |= [a=desk b=desk]
|
||||
:: ^- ?
|
||||
:: ?: =(%base a) &
|
||||
:: ?: =(%base b) |
|
||||
:: (lte `@`a `@`b)
|
||||
:: ::
|
||||
:: |- ^+ kiln
|
||||
:: ?~ liv kiln
|
||||
:: $(liv t.liv, kiln (bump-one zuse+zuse i.liv))
|
||||
:: ::
|
||||
:: ++ bump-one
|
||||
:: |= [kel=weft =desk]
|
||||
:: ^+ kiln
|
||||
:: ~> %slog.(fmt "bump {<desk>} to {<[lal num]:kel>}")
|
||||
:: =< abet ^+ vats
|
||||
:: =. vats (abed desk)
|
||||
:: =/ kul (read-kelvin-local our desk now)
|
||||
:: ?~ kul
|
||||
:: ~> %slog.(fmt "{here} not yet installed")
|
||||
:: vats
|
||||
:: ?: =(kel u.kul)
|
||||
:: ~> %slog.(fmt "{here} already at {<[lal num]:kel>}")
|
||||
:: update-running-dudes
|
||||
:: =^ tem rail.rak (crank-next kel)
|
||||
:: ?^ tem
|
||||
:: (emit merge-main:pass)
|
||||
:: =- (emit (pyre:pass leaf/- ~))
|
||||
:: "kiln: {here} killed upgrade to {<[lal num]:kel>}"
|
||||
:: :: +stop-agents: internal helper to suspend agents on .loc
|
||||
:: ::
|
||||
:: :: Will not shut down %hood or %dojo.
|
||||
:: ::
|
||||
:: ++ stop-agents
|
||||
:: ^+ vats
|
||||
:: =/ ded (get-apps-live our loc now)
|
||||
:: =. ded (skip ded |=(d=dude ?=(?(%hood %dojo) d)))
|
||||
:: (stop-dudes ded)
|
||||
:: ::
|
||||
:: ++ take
|
||||
:: |= [=wire syn=sign-arvo]
|
||||
:: ^+ kiln
|
||||
:: ?> ?=([@ @ *] wire)
|
||||
:: ?: ?=(%jolt i.t.wire)
|
||||
:: kiln
|
||||
:: ?: ?=(%listen i.t.wire)
|
||||
:: (take-listen wire syn)
|
||||
:: =< abet
|
||||
:: =. vats (from-wire wire)
|
||||
:: ?+ i.t.wire
|
||||
:: ~> %slog.(fmt "vats-bad-take {<wire>}")
|
||||
:: vats
|
||||
:: %find (take-find syn)
|
||||
:: %sync (take-sync syn)
|
||||
:: %download (take-download syn)
|
||||
:: %merge-main (take-merge-main syn)
|
||||
:: %merge-kids (take-merge-kids syn)
|
||||
:: %gall-lyv (take-gall-lyv syn)
|
||||
:: ==
|
||||
:: ::
|
||||
:: ++ take-find
|
||||
:: |= syn=sign-arvo
|
||||
:: ^+ vats
|
||||
:: ?> ?=(%writ +<.syn)
|
||||
:: ?. is-tracking
|
||||
:: vats
|
||||
:: ?~ p.syn
|
||||
:: ~> %slog.(fmt "cancelled (1) install into {here}, aborting")
|
||||
:: vats(ark (~(del by ark) loc))
|
||||
:: ~> %slog.(fmt "activated install into {here}")
|
||||
:: (emit sync-da:pass)
|
||||
:: ::
|
||||
:: ++ take-sync
|
||||
:: |= syn=sign-arvo
|
||||
:: ^+ vats
|
||||
:: ?> ?=(%writ +<.syn)
|
||||
:: =* rit u.p.syn
|
||||
:: ?. is-tracking
|
||||
:: vats
|
||||
:: ?~ p.syn
|
||||
:: ~> %slog.(fmt "cancelled (1) install into {here}, retrying")
|
||||
:: reset
|
||||
:: =? rail.rak ?=(%w p.p.rit) `%*(. ral aeon ud:;;(cass:clay q.q.r.rit))
|
||||
:: ~> %slog.(fmt "downloading update for {here}")
|
||||
:: (emit download:pass)
|
||||
:: ::
|
||||
:: ++ take-download
|
||||
:: |= syn=sign-arvo
|
||||
:: ^+ vats
|
||||
:: ?> ?=(%writ +<.syn)
|
||||
:: ?. is-tracking
|
||||
:: vats
|
||||
:: ?~ p.syn
|
||||
:: ~> %slog.(fmt "cancelled (2) install into {here}, retrying")
|
||||
:: reset
|
||||
:: ~> %slog.(fmt "finished downloading update for {here}")
|
||||
:: ?. (get-remote-diff our loc now [ship desk aeon]:ral)
|
||||
:: ~> %slog.(fmt "remote is identical to {here}, skipping")
|
||||
:: =. rail.rak `%*(. ral aeon +(aeon:ral))
|
||||
:: =. vats update-running-dudes
|
||||
:: (emil sync-ud:pass (diff:give %commit loc rak) ~)
|
||||
:: =/ old-weft `weft`[%zuse zuse]
|
||||
:: =/ new-weft
|
||||
:: ?: =(our ship:ral)
|
||||
:: (need (read-kelvin-local our desk:ral now)) :: TODO error handling
|
||||
:: (read-kelvin-foreign [ship desk aeon]:ral)
|
||||
:: :: don't try to read from the local desk's bill file if
|
||||
:: :: there are no commits to the local desk (aeon 0)
|
||||
:: ::
|
||||
:: =/ yon =<(ud .^(cass cw+/(scot %p our)/[loc]/(scot %da now)))
|
||||
:: =? vats &(liv.rein.rak !=(0 yon))
|
||||
:: %- stop-dudes
|
||||
:: =< idle
|
||||
:: (adjust-dudes [our loc now] rein.rak)
|
||||
:: =. rail.rak `%*(. ral aeon +(aeon:ral))
|
||||
:: |^ ^+ vats
|
||||
:: ?: =(%base loc)
|
||||
:: do-base
|
||||
:: ?: (gth num.new-weft num.old-weft)
|
||||
:: kelvin-retreat
|
||||
:: ?: =(num.new-weft num.old-weft)
|
||||
:: kelvin-same
|
||||
:: kelvin-advance
|
||||
:: ::
|
||||
:: ++ kelvin-retreat
|
||||
:: ^+ vats
|
||||
:: ~> %slog.(fmt "cannot install {here}, old kelvin {<new-weft>}")
|
||||
:: ~> %slog.(fmt "will retry at foreign kelvin {<old-weft>}")
|
||||
:: =/ =diff [%block loc rak new-weft blockers=(sy %base ~)]
|
||||
:: (emil sync-ud:pass (diff:give diff) ~)
|
||||
:: ::
|
||||
:: ++ kelvin-advance
|
||||
:: ^+ vats
|
||||
:: ~> %slog.(fmt "future version {<new-weft>}, enqueueing")
|
||||
:: :: retry upgrade if not blocked anymore
|
||||
:: =. rail.rak `%*(. ral next (snoc next:ral [(dec aeon:ral) new-weft]))
|
||||
:: =. ark (~(put by ark) loc rak)
|
||||
:: =/ =diff [%block loc rak new-weft blockers=(sy %base ~)]
|
||||
:: =. vats (emil sync-ud:pass (diff:give diff) ~)
|
||||
:: =/ base=arak (~(got by ark) %base)
|
||||
:: ?~ rail.base
|
||||
:: vats
|
||||
:: =/ rel u.rail.base
|
||||
:: ?. &(?=(^ next.rel) =(~ (get-blockers weft.i.next.rel)))
|
||||
:: vats
|
||||
:: ~> %slog.(fmt "unblocked system update, updating")
|
||||
:: =. kiln (bump-one weft.i.next.rel %base)
|
||||
:: vats
|
||||
:: ::
|
||||
:: ++ kelvin-same
|
||||
:: ^+ vats
|
||||
:: ~> %slog.(fmt "merging into {here}")
|
||||
:: ?> ?=(^ rail.rak)
|
||||
:: =. next.u.rail.rak ~
|
||||
:: (emil ~[merge-main sync-ud]:pass)
|
||||
:: ::
|
||||
:: ++ do-base
|
||||
:: ^+ vats
|
||||
:: =/ blockers
|
||||
:: ?: =(new-weft old-weft)
|
||||
:: ~
|
||||
:: (get-blockers new-weft)
|
||||
:: ::
|
||||
:: ?. =(~ blockers)
|
||||
:: ~> %slog.(fmt "OTA blocked on {<blockers>}")
|
||||
:: =. rail.rak
|
||||
:: `%*(. ral next (snoc next:ral [(dec aeon:ral) new-weft]))
|
||||
:: =/ =diff [%block loc rak new-weft blockers]
|
||||
:: (emil sync-ud:pass (diff:give diff) ~)
|
||||
:: ~> %slog.(fmt "applying OTA to {here}, kelvin: {<new-weft>}")
|
||||
:: ?> ?=(^ rail.rak)
|
||||
:: =. next.u.rail.rak ~
|
||||
:: =. wef
|
||||
:: ?: =(old-weft new-weft) ~
|
||||
:: `new-weft
|
||||
:: (emil ~[merge-main sync-ud]:pass)
|
||||
:: --
|
||||
:: ::
|
||||
:: ++ take-listen
|
||||
:: |= [=wire syn=sign-arvo]
|
||||
:: ^+ kiln
|
||||
:: ?> ?=([@ %writ ~ *] syn)
|
||||
:: =/ lac=desk (head wire)
|
||||
:: :: ignore spurious updates from clay on desks we've uninstalled
|
||||
:: ::
|
||||
:: ?. (~(has by ark) lac)
|
||||
:: kiln
|
||||
:: =. vats (from-wire wire)
|
||||
:: take-commit
|
||||
:: ::
|
||||
:: ++ take-commit
|
||||
:: ^+ kiln
|
||||
:: =. kiln
|
||||
:: =< abet
|
||||
:: ~> %slog.(fmt "commit detected at {here}")
|
||||
:: =. rail.rak
|
||||
:: ?~ rail.rak ~
|
||||
:: `[(get-publisher our loc now) +.u.rail.rak]
|
||||
:: =. vats (emil listen:pass (diff:give %commit loc rak) ~)
|
||||
:: ?. liv.rein.rak
|
||||
:: ~> %slog.(fmt "{<loc>} not running")
|
||||
:: vats
|
||||
:: update-running-dudes
|
||||
:: ?. =(%base loc)
|
||||
:: kiln
|
||||
:: (bump-many (all-desks-but (get-unblockers ark)))
|
||||
:: ::
|
||||
:: ++ take-merge-main
|
||||
:: |= syn=sign-arvo
|
||||
:: ^+ vats
|
||||
:: ?> ?=(%mere +<.syn)
|
||||
:: ?: ?=([%| %ali-unavailable *] p.syn)
|
||||
:: =+ "kiln: merge into {here} failed, maybe because sunk; restarting"
|
||||
:: %- (slog leaf/- p.p.syn)
|
||||
:: =. vats (emit (diff:give %merge-sunk loc rak p.p.syn))
|
||||
:: reset
|
||||
:: ?: ?=(%| -.p.syn)
|
||||
:: =+ "kiln: merge into {here} failed, waiting for next revision"
|
||||
:: %- (slog leaf/- p.p.syn)
|
||||
:: =. vats (emit (diff:give %merge-fail loc rak p.p.syn))
|
||||
:: vats
|
||||
:: ~> %slog.(fmt "merge into {<loc>} succeeded")
|
||||
:: ?. =(%base loc)
|
||||
:: vats
|
||||
:: ~> %slog.(fmt "merging %base into %kids")
|
||||
:: (emit merge-kids:pass)
|
||||
:: ::
|
||||
:: ++ take-merge-kids
|
||||
:: |= syn=sign-arvo
|
||||
:: ^+ vats
|
||||
:: ?> ?=(%mere +<.syn)
|
||||
:: ?: ?=([%| %ali-unavailable *] p.syn)
|
||||
:: ~> %slog.(fmt "OTA to %kids failed, maybe peer sunk; restarting")
|
||||
:: =. vats (emit (diff:give %merge-sunk %kids rak p.p.syn))
|
||||
:: reset
|
||||
:: ?- -.p.syn
|
||||
:: %& ~> %slog.(fmt "OTA to %kids succeeded")
|
||||
:: (emit (diff:give %commit %kids rak))
|
||||
:: %| ~> %slog.(fmt "OTA to %kids failed {<p.p.syn>}")
|
||||
:: (emit (diff:give %merge-fail %kids rak p.p.syn))
|
||||
:: ==
|
||||
:: ::
|
||||
:: ++ take-gall-lyv
|
||||
:: |= syn=sign-arvo
|
||||
:: ^+ vats
|
||||
:: =. vats gall-lyv
|
||||
:: =/ vets ~(tap in ~(key by ark))
|
||||
:: |-
|
||||
:: ?~ vets vats
|
||||
:: =. vats (abed i.vets)
|
||||
:: =. vats update-running-dudes
|
||||
:: $(vets t.vets)
|
||||
:: ::
|
||||
:: ++ update-running-dudes
|
||||
:: ^+ vats
|
||||
:: =/ local [our loc now]
|
||||
:: =/ dif (adjust-dudes local rein.rak)
|
||||
:: =. vats (start-dudes jolt.dif)
|
||||
:: =. vats (stop-dudes idle.dif)
|
||||
:: vats
|
||||
:: ::
|
||||
:: ++ start-dudes
|
||||
:: |= daz=(list dude)
|
||||
:: (emil (turn daz start-dude:pass))
|
||||
:: ::
|
||||
:: ++ stop-dudes
|
||||
:: |= daz=(list dude)
|
||||
:: (emil (turn daz stop-dude:pass))
|
||||
:: :: +crank-next: pop stale items from .next until one matches
|
||||
:: ::
|
||||
:: ++ crank-next
|
||||
:: |= new=weft
|
||||
:: ^+ [match=*(unit rung) rail.rak]
|
||||
:: ?~ rail.rak
|
||||
:: ~| [%no-rail-for desk=loc]
|
||||
:: !!
|
||||
:: =/ rog next.u.rail.rak
|
||||
:: =- [match `u.rail.rak(next next)]
|
||||
:: |- ^- [match=(unit rung) next=(list rung)]
|
||||
:: ?~ rog [~ next.u.rail.rak]
|
||||
:: ?: =(new weft.i.rog)
|
||||
:: [`i.rog t.rog]
|
||||
:: $(rog t.rog)
|
||||
:: ::
|
||||
:: ++ is-tracking
|
||||
:: ^- ?
|
||||
:: ?~ rail.rak |
|
||||
:: !paused.u.rail.rak
|
||||
:: --
|
||||
:: :: +get-blockers: find desks that would block a kernel update
|
||||
:: ::
|
||||
:: ++ get-blockers
|
||||
:: |= kel=weft
|
||||
:: ^- (set desk)
|
||||
:: %- ~(gas in *(set desk))
|
||||
:: %+ murn ~(tap by ark)
|
||||
:: |= [=desk =arak]
|
||||
:: ?: =(%base desk)
|
||||
:: ~
|
||||
:: ?. liv.rein.arak
|
||||
:: ~
|
||||
:: ?: =(`kel (read-kelvin-local our desk now))
|
||||
:: ~
|
||||
:: ?~ rail.arak
|
||||
:: `desk
|
||||
:: ?: (lien next.u.rail.arak |=([* k=weft] =(k kel)))
|
||||
:: ~
|
||||
:: `desk
|
||||
:: :: +get-unblockers: find desks which shouldn't block a kernel upgrade
|
||||
:: ::
|
||||
:: ++ get-unblockers
|
||||
:: |= ark=(map desk arak)
|
||||
:: =/ base=(set desk) (sy %base %kids ~)
|
||||
:: %- ~(gas in base)
|
||||
:: %+ murn ~(tap by ark)
|
||||
:: |= [loc=desk ark=arak]
|
||||
:: ^- (unit desk)
|
||||
:: ?. liv.rein.ark `loc
|
||||
:: ?~ rail.ark `loc
|
||||
:: ?: paused.u.rail.ark `loc
|
||||
:: ~
|
||||
:: +get-germ: select merge strategy into local desk
|
||||
::
|
||||
:: If destination desk doesn't exist, need a %init merge. Otherwise,
|
||||
|
@ -1940,7 +1940,7 @@ u3m_init(size_t len_i)
|
||||
|
||||
u3l_log("boot: mapping %zuMB failed", len_i >> 20);
|
||||
u3l_log("see urbit.org/using/install/#about-swap-space"
|
||||
" for adding swap space\r\n");
|
||||
" for adding swap space");
|
||||
if ( -1 != (c3_ps)map_v ) {
|
||||
u3l_log("if porting to a new platform, try U3_OS_LoomBase %p",
|
||||
map_v);
|
||||
|
@ -1439,11 +1439,6 @@ u3_term_io_hija(void)
|
||||
_term_it_send_csi(uty_u, 'r', 2, 1, uty_u->tat_u.siz.row_l - 1);
|
||||
_term_it_send_csi(uty_u, 'S', 1, 1);
|
||||
_term_it_send_csi(uty_u, 'H', 2, uty_u->tat_u.siz.row_l - 1, 1);
|
||||
// c3_assert(c3_write(uty_u->fid_i, "\r", 1) == 1);
|
||||
// {
|
||||
// uv_buf_t* buf_u = &uty_u->ufo_u.out.el_u;
|
||||
// c3_assert(c3_write(uty_u->fid_i, buf_u->base, buf_u->len) == buf_u->len);
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user