clay,hood: seems to boot for real now

This commit is contained in:
Ted Blackman 2021-07-17 02:54:20 +03:00
parent df250a0eae
commit 4f3e99f797
5 changed files with 58 additions and 31 deletions

View File

@ -100,19 +100,18 @@
|= =path |= =path
^- step:agent:gall ^- step:agent:gall
?+ path (on-watch:def +<) ?+ path (on-watch:def +<)
[%drum *] =^(c drum.state (peer:drum-core +<) [c this]) [%drum *] =^(c drum.state (peer:drum-core t.path) [c this])
[%kiln *] =^(c kiln.state (peer:kiln-core +<) [c this]) [%kiln *] =^(c kiln.state (peer:kiln-core t.path) [c this])
== ==
:: ::
++ on-agent ++ on-agent
|= [=wire =sign:agent:gall] |= [=wire syn=sign:agent:gall]
^- step:agent:gall ^- step:agent:gall
?+ wire ~|([%hood-bad-wire wire] !!) ?+ wire ~|([%hood-bad-wire wire] !!)
[%drum *] =^(c drum.state (take-agent:drum-core +<) [c this]) [%drum *] =^(c drum.state (take-agent:drum-core t.wire syn) [c this])
[%helm *] =^(c helm.state (take-agent:helm-core +<) [c this]) [%helm *] =^(c helm.state (take-agent:helm-core t.wire syn) [c this])
[%kiln *] =^(c kiln.state (take-agent:kiln-core +<) [c this]) [%kiln *] =^(c kiln.state (take-agent:kiln-core t.wire syn) [c this])
== ==
:: TODO: symmetry between adding and stripping wire prefixes
:: ::
++ on-arvo ++ on-arvo
|= [=wire syn=sign-arvo] |= [=wire syn=sign-arvo]

View File

@ -179,13 +179,13 @@
++ take-agent ++ take-agent
|= [=wire =sign:agent:gall] |= [=wire =sign:agent:gall]
?+ wire ~|([%drum-bad-take-agent wire -.sign] !!) ?+ wire ~|([%drum-bad-take-agent wire -.sign] !!)
[%drum %phat *] [%phat *]
?- -.sign ?- -.sign
%poke-ack (take-coup-phat t.t.wire p.sign) %poke-ack (take-coup-phat t.wire p.sign)
%watch-ack (reap-phat t.t.wire p.sign) %watch-ack (reap-phat t.wire p.sign)
%kick (quit-phat t.t.wire) %kick (quit-phat t.wire)
%fact %fact
%+ diff-sole-effect-phat t.t.wire %+ diff-sole-effect-phat t.wire
?> ?=(%sole-effect p.cage.sign) ?> ?=(%sole-effect p.cage.sign)
!<(sole-effect q.cage.sign) !<(sole-effect q.cage.sign)
== ==

View File

@ -222,8 +222,8 @@
++ take-agent ++ take-agent
|= [=wire =sign:agent:gall] |= [=wire =sign:agent:gall]
?+ wire ~|([%helm-bad-take-agent wire -.sign] !!) ?+ wire ~|([%helm-bad-take-agent wire -.sign] !!)
[%helm %hi *] ?> ?=(%poke-ack -.sign) [%hi *] ?> ?=(%poke-ack -.sign)
(coup-hi t.t.wire p.sign) (coup-hi t.wire p.sign)
== ==
:: ::
++ take-bound ++ take-bound

View File

@ -407,8 +407,9 @@
^+ vats ^+ vats
=/ onto ?>(?=([%gall %onto *] syn) p.syn) =/ onto ?>(?=([%gall %onto *] syn) p.syn)
?- -.onto ?- -.onto
%& ?> ?=([@ @ ~] wire) %& ~_ leaf/"kiln: %onto bad wire {<wire>}"
=+ ;;([=desk =dude:gall] [i i.t]:wire) ?> ?=([@ @ @ ~] wire)
=+ ;;([=desk =dude:gall] [i i.t.t]:wire)
?. (is-fish dude desk) ?. (is-fish dude desk)
vats vats
=/ =cage [%drum-link !>([our dude])] =/ =cage [%drum-link !>([our dude])]
@ -666,10 +667,13 @@
++ take-agent ++ take-agent
|= [=wire =sign:agent:gall] |= [=wire =sign:agent:gall]
?+ wire ~|([%kiln-bad-take-agent wire -.sign] !!) ?+ wire ~|([%kiln-bad-take-agent wire -.sign] !!)
[%kiln %fancy *] ?> ?=(%poke-ack -.sign) [%fancy *]
(take-coup-fancy t.t.wire p.sign) ?> ?=(%poke-ack -.sign)
[%kiln %spam *] ?> ?=(%poke-ack -.sign) (take-coup-fancy t.wire p.sign)
(take-coup-spam t.t.wire p.sign) ::
[%spam *]
?> ?=(%poke-ack -.sign)
(take-coup-spam t.wire p.sign)
== ==
:: ::
++ take-arvo ++ take-arvo

View File

@ -493,6 +493,7 @@
?: (~(has in cycle.nub) vale+path) ?: (~(has in cycle.nub) vale+path)
~|(cycle+vale+path^stack.nub !!) ~|(cycle+vale+path^stack.nub !!)
=. cycle.nub (~(put in cycle.nub) vale+path) =. cycle.nub (~(put in cycle.nub) vale+path)
::~> %slog.0^leaf/"ford: read file {(spud path)}"
?^ change=(~(get by changes) path) ?^ change=(~(get by changes) path)
=^ page nub =^ page nub
?: ?=(%& -.u.change) ?: ?=(%& -.u.change)
@ -523,6 +524,7 @@
=^ top stack.nub pop-stack =^ top stack.nub pop-stack
=. naves.cache.nub (~(put by naves.cache.nub) mak [vase.res top]) =. naves.cache.nub (~(put by naves.cache.nub) mak [vase.res top])
[vase.res nub] [vase.res nub]
~> %slog.0^leaf/"ford: make mark {<mak>}"
=^ cor=vase nub (build-fit %mar mak) =^ cor=vase nub (build-fit %mar mak)
=/ gad=vase (slap cor limb/%grad) =/ gad=vase (slap cor limb/%grad)
?@ q.gad ?@ q.gad
@ -597,6 +599,7 @@
=. marks.cache.nub (~(put by marks.cache.nub) mak [dais.res top]) =. marks.cache.nub (~(put by marks.cache.nub) mak [dais.res top])
[dais.res nub] [dais.res nub]
=^ nav=vase nub (build-nave mak) =^ nav=vase nub (build-nave mak)
~> %slog.0^leaf/"ford: make dais {<mak>}"
:_ nub :_ nub
^- dais ^- dais
|_ sam=vase |_ sam=vase
@ -651,6 +654,7 @@
[vase.res nub] [vase.res nub]
:: try +grow; is there a +grow core with a .b arm? :: try +grow; is there a +grow core with a .b arm?
:: ::
~> %slog.0^leaf/"ford: make cast {<a>} -> {<b>}"
=^ old=vase nub (build-fit %mar a) =^ old=vase nub (build-fit %mar a)
?: =/ ram (mule |.((slap old !,(*hoon grow)))) ?: =/ ram (mule |.((slap old !,(*hoon grow))))
?: ?=(%| -.ram) %.n ?: ?=(%| -.ram) %.n
@ -710,6 +714,7 @@
=. tubes.cache.nub (~(put by tubes.cache.nub) [a b] [tube.res top]) =. tubes.cache.nub (~(put by tubes.cache.nub) [a b] [tube.res top])
[tube.res nub] [tube.res nub]
=^ gat=vase nub (build-cast a b) =^ gat=vase nub (build-cast a b)
~> %slog.0^leaf/"ford: make tube {<a>} -> {<b>}"
:_(nub |=(v=vase (slam gat v))) :_(nub |=(v=vase (slam gat v)))
:: ::
++ lobe-to-page ++ lobe-to-page
@ -798,6 +803,7 @@
=. stack.nub =. stack.nub
=- [(sy - ~) stack.nub] =- [(sy - ~) stack.nub]
?:(?=(%| -.dep) dep [& dir.p.dep]) ?:(?=(%| -.dep) dep [& dir.p.dep])
~> %slog.0^leaf/"ford: make file {(spud path)}"
=^ cag=cage nub (read-file path) =^ cag=cage nub (read-file path)
?> =(%hoon p.cag) ?> =(%hoon p.cag)
=/ tex=tape (trip !<(@t q.cag)) =/ tex=tape (trip !<(@t q.cag))
@ -1508,13 +1514,18 @@
:: promote and fill in ankh :: promote and fill in ankh
:: promote and fill in mime cache :: promote and fill in mime cache
:: ::
?: &(=(%base syd) !updated) =/ invalid (~(uni in deletes) ~(key by changes))
?: &(=(%base syd) !updated (~(any in invalid) is-kernel-path))
(sys-update yoki new-data) (sys-update yoki new-data)
::
=? updated updated (did-kernel-update invalid)
=> ?. updated .
~>(%slog.0^leaf/"clay: rebuilding {<syd>} after after kernel update" .)
:: clear caches if zuse reloaded :: clear caches if zuse reloaded
:: ::
=. fod.dom =. fod.dom
?: updated *ford-cache ?: updated *ford-cache
(promote-ford fod.dom deletes ~(key by changes)) (promote-ford fod.dom invalid)
=? ank.dom updated *ankh =? ank.dom updated *ankh
=? changes updated (changes-for-upgrade q.old-yaki deletes changes) =? changes updated (changes-for-upgrade q.old-yaki deletes changes)
:: ::
@ -1565,7 +1576,14 @@
=. ..park (emil (print q.old-yaki data)) =. ..park (emil (print q.old-yaki data))
:: ::
wake:(ergo mim) wake:(ergo mim)
:: +is-kernel-path: should changing .pax cause a kernel or vane reload?
:: ::
++ is-kernel-path |=(pax=path ?=([%sys *] pax))
::
++ did-kernel-update
|= invalid=(set path)
%- ~(any in invalid)
|=(p=path &((is-kernel-path p) !?=([%sys %vane *] p)))
:: +get-kelvin: read the desk's kernel version from /sys/kelvin :: +get-kelvin: read the desk's kernel version from /sys/kelvin
:: ::
++ get-kelvin ++ get-kelvin
@ -1654,13 +1672,13 @@
:: Make sure to invalidate any paths whose '-'s or '/'s could be :: Make sure to invalidate any paths whose '-'s or '/'s could be
:: converted in an import; i.e. /mar, /lib, and /sur hoon files. :: converted in an import; i.e. /mar, /lib, and /sur hoon files.
:: ::
:: If anything in the kernel other than a vane updated,
:: clear the cache.
::
++ promote-ford ++ promote-ford
|= [=ford-cache deletes=(set path) changes=(set path)] |= [=ford-cache invalid=(set path)]
^+ ford-cache ^+ ford-cache
?: (~(has in changes) /sys/kelvin) ::
~> %slog.0^'clay: desk kelvin changed, clearing ford cache'
*^ford-cache
=/ invalid=(set path) (~(uni in deletes) changes)
=. invalid =. invalid
%- ~(gas in invalid) %- ~(gas in invalid)
%- zing %- zing
@ -1678,6 +1696,8 @@
%+ turn (tail (spud pux)) :: lose leading '/' %+ turn (tail (spud pux)) :: lose leading '/'
|=(c=@tD `@tD`?:(=('/' c) '-' c)) :: convert '/' to '-' |=(c=@tD `@tD`?:(=('/' c) '-' c)) :: convert '/' to '-'
:: ::
~> %slog.0^leaf/"ford: {<~(wyt in invalid)>} cache invalidations"
::
:* ((invalidate path vase) files.ford-cache invalid) :* ((invalidate path vase) files.ford-cache invalid)
((invalidate mark vase) naves.ford-cache invalid) ((invalidate mark vase) naves.ford-cache invalid)
((invalidate mark dais) marks.ford-cache invalid) ((invalidate mark dais) marks.ford-cache invalid)
@ -3660,19 +3680,23 @@
|= [=aeon =path] |= [=aeon =path]
^- [(unit (unit (each cage lobe))) ford-cache] ^- [(unit (unit (each cage lobe))) ford-cache]
?. =(aeon let.dom) ?. =(aeon let.dom)
~> %slog.0^leaf/"clay: %a unknown aeon {<[aeon path]>}"
[~ fod.dom] [~ fod.dom]
=/ cached=(unit [=vase *]) (~(get by files.fod.dom) path) =/ cached=(unit [=vase *]) (~(get by files.fod.dom) path)
?^ cached ?^ cached
:_(fod.dom [~ ~ %& %vase !>(vase.u.cached)]) :_(fod.dom [~ ~ %& %vase !>(vase.u.cached)])
=/ x (read-x aeon path) =/ x (read-x aeon path)
?~ x ?~ x
~> %slog.0^leaf/"clay: %a can't resolve file at path {<path>}"
[~ fod.dom] [~ fod.dom]
?~ u.x ?~ u.x
~> %slog.0^leaf/"clay: %a no file at path {<path>}"
[[~ ~] fod.dom] [[~ ~] fod.dom]
:: should never happen at current aeon :: should never happen at current aeon
?: ?=(%| -.u.u.x) ?: ?=(%| -.u.u.x)
[~ fod.dom] [~ fod.dom]
=^ =vase fod.dom =^ =vase fod.dom
~_ leaf/"clay: %a build failed {<path>}"
%- wrap:fusion %- wrap:fusion
(build-file:(ford:fusion static-ford-args) path) (build-file:(ford:fusion static-ford-args) path)
:_(fod.dom [~ ~ %& %vase !>(vase)]) :_(fod.dom [~ ~ %& %vase !>(vase)])