Merge pull request #4072 from urbit/jb/moar-what

arvo: embrace filesystem, add %lull
This commit is contained in:
Joe Bryan 2020-12-04 00:20:20 -08:00 committed by GitHub
commit 5e2b197633
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 203 additions and 423 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5402f3b52a34bda8a7189be0644bb6e31c738f358edc272ed4e542f597ed1c07
size 7294878
oid sha256:80f25c7953348649f4151c43b03a8025abf458054c66c110839c4c4388c53d06
size 7345051

View File

@ -1,13 +0,0 @@
:: Helm: Reload %zuse and all vanes
::
:::: /hoon/reboot/hood/gen
::
/? 310
::
::::
::
:- %say
|= $: [now=@da eny=@uvJ bec=beak]
[arg=~ ~]
==
[%helm-reload ~[%z %a %b %c %d %e %g %i %j]]

View File

@ -1,14 +0,0 @@
:: Helm: Reload vane/s from desk
::
:::: /hoon/reload-desk/hood/gen
::
/? 310
::
::::
::
:- %say
|= $: [now=@da eny=@uvJ bec=beak]
[arg=[desk (list term)] ~]
==
:- %helm-reload-desk
arg

View File

@ -1,14 +0,0 @@
:: Helm: Reload vane/s
::
:::: /hoon/reload/hood/gen
::
/? 310
::
::::
::
:- %say
|= $: [now=@da eny=@uvJ bec=beak]
[arg=(list term) ~]
==
:- %helm-reload
arg

View File

@ -1,13 +0,0 @@
:: Helm: Reload hoon/hoon and all vanes
::
:::: /hoon/reset/hood/gen
::
/? 310
::
::::
::
:- %say
|= $: [now=@da eny=@uvJ bec=beak]
[arg=~ ~]
==
[%helm-reset ~]

View File

@ -56,6 +56,7 @@
%what
[/sys/hoon hoon/compiler-source]
[/sys/arvo hoon/arvo-source]
[/sys/lull hoon/.^(@ %cx (weld sys /lull/hoon))]
[/sys/zuse hoon/.^(@ %cx (weld sys /zuse/hoon))]
==
:: installed: Arvo gate (formal instance) with %zuse installed

View File

@ -1,26 +0,0 @@
:: Produce a raw event to reload a vane
::
:: Try: .event/ovo +reload-event %c, then restart urbit with
:: -I pier/.urb/put/event.ovo
::
:- %say
|= $: [now=@da eny=@uvJ bek=beak]
[[tam=term ~] ~]
==
:- %ovo
=/ top `path`/(scot %p p.bek)/[q.bek]/(scot r.bek)
=/ nam
=/ van=(list [term ~])
:- zus=[%zuse ~]
~(tap by dir:.^(arch %cy (welp top /sys/vane)))
?. =(1 (met 3 tam))
tam
=/ zaz=(list [p=knot ~])
(skim van |=([a=term ~] =(tam (end 3 a))))
?> ?=([[@ ~] ~] zaz)
`term`p.i.zaz
=/ tip (end 3 nam)
=/ bip ?:(=('z' tip) %$ tip)
=/ way ?:(=('z' tip) (welp top /sys/[nam]) (welp top /sys/vane/[nam]))
=/ fil .^(@ %cx (welp way /hoon))
[//arvo %veer bip way fil]

View File

@ -154,47 +154,6 @@
?> ?=([@t ~] pax)
(flog %text "hi {(trip i.pax)} {?~(cop "" "un")}successful")
::
++ poke-reload |=(all=(list term) (poke-reload-desk %home all))
++ poke-reload-desk :: reload vanes
|: $:,[syd=desk all=(list term)] =< abet
%- emil
%+ turn all
=+ top=`path`/(scot %p our.bowl)/[syd]/(scot %da now.bowl)
=/ van=(list [term ~])
:- zus=[%zuse ~]
~(tap by dir:.^(arch %cy (welp top /sys/vane)))
|= nam=@tas
=. nam
?. =(1 (met 3 nam))
nam
=/ zaz=(list [p=knot ~])
(skim van |=([a=term ~] =(nam (end 3 a))))
?> ?=([[@ ~] ~] zaz)
`term`p.i.zaz
=+ tip=(end 3 nam)
=+ zus==('z' tip)
=+ way=?:(zus (welp top /sys/[nam]) (welp top /sys/vane/[nam]))
=+ fil=.^(@ %cx (welp way /hoon))
[%pass /reload %arvo %d %flog %veer ?:(=('z' tip) %$ tip) way fil]
:: +poke-reset: send %lyra to initiate kernel upgrade
::
:: And reinstall %zuse and the vanes with %veer.
:: Trigger with |reset.
::
++ poke-reset
|= hood-reset=~
=< abet
%- emil
^- (list card:agent:gall)
=/ top=path /(scot %p our.bowl)/home/(scot %da now.bowl)/sys
=/ hun .^(@t %cx (welp top /hoon/hoon))
=/ arv .^(@t %cx (welp top /arvo/hoon))
~! *task:able:dill
:- [%pass /reset %arvo %d %flog %lyra `hun arv]
%+ turn
(module-ova:pill top)
|=([=wire =flog:dill] [%pass wire %arvo %d %flog flog])
::
++ poke-trim
|= pri=@ud =< abet
(emit %pass /pack %arvo %d %flog %crop pri)
@ -253,9 +212,6 @@
%helm-pack =;(f (f !<(_+<.f vase)) poke-pack)
%helm-pass =;(f (f !<(_+<.f vase)) poke-pass)
%helm-rekey =;(f (f !<(_+<.f vase)) poke-rekey)
%helm-reload =;(f (f !<(_+<.f vase)) poke-reload)
%helm-reload-desk =;(f (f !<(_+<.f vase)) poke-reload-desk)
%helm-reset =;(f (f !<(_+<.f vase)) poke-reset)
%helm-send-hi =;(f (f !<(_+<.f vase)) poke-send-hi)
%helm-serve =;(f (f !<(_+<.f vase)) poke-serve)
%helm-trim =;(f (f !<(_+<.f vase)) poke-trim)

View File

@ -17,29 +17,6 @@
[%boot ? $%($>(%fake task:able:jael) $>(%dawn task:able:jael))]
unix-task
==
:: +module-ova: vane load operations
::
:: sys: full path to /sys directory
::
++ module-ova
|= sys=path
^- (list [wire [%veer term path cord]])
%+ turn
^- (list (pair term path))
:~ [%$ /zuse] :: standard library
[%a /vane/ames] :: network
[%b /vane/behn] :: timer
[%c /vane/clay] :: revision control
[%d /vane/dill] :: console
[%e /vane/eyre] :: http server
[%g /vane/gall] :: applications
[%i /vane/iris] :: http client
[%j /vane/jael] :: identity and security
==
|= [=term =path]
=/ pax (weld sys path)
=/ txt .^(@ %cx (weld pax /hoon))
[[%vane path] [%veer term pax txt]]
:: +file-ovum: userspace filesystem load
::
:: bas: full path to / directory

View File

@ -18,6 +18,7 @@
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: volume 3, Arvo models and skeleton ::::::
:::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
=> ..ride
=>
|%
+| %global
@ -88,7 +89,7 @@
+| %interface
::
:: $ball: dynamic kernel action
:: $curd: tagged, untyped event
:: $card: tagged, untyped event
:: $duct: causal history
:: +hobo: %soft task builder
:: $goof: crash label and trace XX fail/ruin/crud/flaw/lack/miss
@ -108,7 +109,7 @@
:: +wite: kernel action/error builder
::
+$ ball (wite [vane=term task=maze] maze)
+$ curd (cask)
+$ card (cask)
+$ duct (list wire)
++ hobo
|$ [a]
@ -121,7 +122,7 @@
(pair cord (each * (list mass)))
+$ monk (each ship (pair @tas @ta))
+$ move [=duct =ball]
+$ ovum (pair wire curd)
+$ ovum [=wire =card]
::
+$ roof (room vase) :: namespace
+$ rook (room meta) :: meta-namespace
@ -212,14 +213,20 @@
+$ grub
$: :: who: identity once we know it
:: eny: entropy once we learn it
:: bod: %zuse once we receive it
:: lac: laconicity as we want it
:: ver: the Outside as we see it
:: fat: source when we attain it
:: lul: %lull when we acquire it
:: zus: %zuse once we receive it
:: van: vanes while we desire it
::
who=(unit ship)
eny=(unit @)
lac=?
ver=(unit vere)
fat=(unit (axal (cask)))
bod=(unit (trap vase))
lul=(unit (trap vase))
zus=(unit (trap vase))
van=(map term (trap vase))
==
+$ heir
@ -248,10 +255,12 @@
==
$= mod
$: :: fat: filesystem
:: lul: %lull
:: zus: %zuse
:: van: vanes
::
fat=(axal (cask))
lul=vase
zus=vase
van=(map term vane)
==
@ -271,21 +280,17 @@
==
::
+$ waif
:: %lyra: upgrade kernel
:: %trim: trim state, spam to all
:: %vega: notify vanes post upgrade
:: %what: update from files
:: %whey: produce $mass :: XX remove, scry
:: %verb: toggle laconicity
:: %veer: upgrade module
::
$% [%lyra hun=(unit @t) van=@t]
[%trim p=@ud]
$% [%trim p=@ud]
[%vega ~]
[%what p=(list (pair path (cask)))]
[%whey ~]
[%verb p=(unit ?)]
[%veer lal=@tas pax=path txt=@t]
==
+$ wasp
:: %crud: reroute $ovum with $goof
@ -297,7 +302,7 @@
[%wyrd p=vere]
==
+$ wisp
$% $>(?(%verb %veer %what) waif)
$% $>(?(%verb %what) waif)
$>(?(%wack %wyrd) wasp)
[%whom p=ship]
==
@ -494,11 +499,8 @@
:: $hoof: hoon source
:: $news: collated updates
:: $oped: module updates
:: $seed: next kernel source
::
:: XX replace top-level structures
::
+$ card (cask)
+$ ovum [=wire =card]
+$ hoof @t
+$ news
$: :: sys: installs + replacements
@ -508,7 +510,8 @@
use=(map path (cask))
==
+$ oped
$: zus=(unit hoof)
$: lul=(unit hoof)
zus=(unit hoof)
van=(list (cask hoof))
==
+$ seed [hun=(unit hoof) arv=hoof]
@ -595,8 +598,20 @@
++ adorn
|= [del=news all=?]
^- (pair oped _fat)
:: lull: shared structures
::
=^ lul fat
?^ hav=(~(get by sys.del) /sys/lull)
:- `(sole u.hav)
(~(put de fat) /sys/lull u.hav)
:_ fat
~| %adorn-no-lull
?.(all ~ `(sole (need fil:(~(get de fat) /sys/lull))))
:: zuse: shared library
::
:: %lull is the subject of %zuse; force all if we have a new %lull
::
=. all |(all ?=(^ lul))
=^ zus fat
?^ hav=(~(get by sys.del) /sys/zuse)
:- `(sole u.hav)
@ -608,8 +623,9 @@
::
:: %zuse is the subject of the vanes; force all if we have a new %zuse
::
=. all |(all ?=(^ zus))
=| nav=(map term hoof)
=? nav |(all ?=(^ zus))
=? nav all
%- ~(gas by nav)
%+ turn
~(tap by dir:(~(get de fat) /sys/vane))
@ -628,7 +644,7 @@
[[`@tas`nam (sole q)] (~(put de taf) p q)]
::
=; van
[[zus van] fat]
[[lul zus van] fat]
%+ sort ~(tap by (~(gas by nav) new))
|=([[a=@tas *] [b=@tas *]] (aor a b))
-- :: adapt
@ -1218,9 +1234,14 @@
|= [del=news all=?]
^+ ..pith
=^ job=oped fat.mod.sol (~(adorn adapt fat.mod.sol) del all)
=? lul.mod.sol ?=(^ lul.job)
$:(smit:va "lull" pit /sys/lull/hoon u.lul.job)
=? zus.mod.sol ?=(^ zus.job)
$:(smit:va "zuse" pit /sys/zuse/hoon u.zus.job)
%- (wyrd kel.ver.zen [zuse/;;(@ud q:(slap zus.mod.sol limb/%zuse)) ~])
$:(smit:va "zuse" lul.mod.sol /sys/zuse/hoon u.zus.job)
%- %+ wyrd kel.ver.zen
:~ lull/;;(@ud q:(slap lul.mod.sol limb/%lull))
zuse/;;(@ud q:(slap zus.mod.sol limb/%zuse))
==
%= ..pith
van.mod
%+ roll van.job
@ -1239,10 +1260,6 @@
^+ ..pith
?^ dud ~>(%mean.'pith: goof' !!)
?- -.waif
%lyra =; wat $(waif wat)
:+ %what [/sys/arvo hoon/van.waif]
?~ hun.waif ~
[[/sys/hoon hoon/u.hun.waif] ~]
::
:: %trim: clear state
::
@ -1255,10 +1272,6 @@
::
%vega (emit $/~ (spam /arvo !>(waif))) :: XX also out
%verb ..pith(lac.fad ?~(p.waif !lac.fad u.p.waif))
::
%veer =/ pax
sys/?:(?=(%$ lal.waif) /zuse /vane/[(grow lal.waif)])
$(waif what/[[pax hoon/txt.waif] ~])
::
%what ~(kel what p.waif)
%whey ..pith(out [[//arvo mass/whey] out])
@ -1274,9 +1287,11 @@
==
~
?+ s.bem ~
[%whey ~] ``mass/!>(whey)
[%zen %lag ~] ``noun/!>(lag.zen)
[%zen %vere ~] ``noun/!>(ver.zen)
[%whey ~] ``mass/!>(whey)
[%fad %lac ~] ``noun/!>(lac.fad)
[%zen %lag ~] ``noun/!>(lag.zen)
[%zen %ver ~] ``noun/!>(ver.zen)
[%mod %fat *] ``noun/!>((~(get de fat.mod) t.t.s.bem))
==
::
++ poke
@ -1285,7 +1300,7 @@
?~ wire.ovum
~>(%mean.'pith: bad wire' !!)
::
?. ?=(?(%crud %wack %wyrd) -.card.ovum)
?. ?=(?(%crud %wack %wyrd) p.card.ovum)
(emit $/~ [*duct (gest ovum)] ~)
::
=/ buz ~> %mean.'pith: bad wasp'
@ -1312,7 +1327,8 @@
^- (list (pair term @))
:~ hoon/hoon-version
arvo/arvo
zuse/;;(@ q:(slap zus.mod limb/%zuse))
lull/;;(@ud q:(slap lul.mod limb/%lull))
zuse/;;(@ud q:(slap zus.mod limb/%zuse))
==
=? lag.zen !=(rev.ver.zen rev.p.buz) ~&(%unlagging |)
..pith(ver.zen p.buz)
@ -1329,16 +1345,6 @@
++ xeno
|= =ovum
^+ this
:: XX update clients to %pass to arvo, remove
::
?: ?=(?(%lyra %veer %verb %whey) -.card.ovum)
%- call
~> %mean.'xeno: bad waif'
;;(waif:pith card.ovum)
::
:: XX uncomment to restore previous routing
::
:: =. wire.ovum $/wire.ovum
this(out [ovum out])
--
--
@ -1510,7 +1516,8 @@
^- (list (pair term @))
:~ hoon/hoon-version
arvo/arvo
zuse/;;(@ q:(slap zus.mod limb/%zuse))
lull/;;(@ud q:(slap lul.mod limb/%lull))
zuse/;;(@ud q:(slap zus.mod limb/%zuse))
==
:: restore working state and resume
::
@ -1559,7 +1566,7 @@
now.sol now
==
::
~| poke+-.q.ovo
~| poke/p.card.ovo
=/ zef=(each (pair (list ovum) soul) (trap ^))
loop:(~(poke le:part [pit vil] sol) ovo)
?- -.zef
@ -1587,28 +1594,59 @@
:: with +wish and vane installation with the %veer event.
::
=> |%
++ mint
|= [vax=vase lal=term pax=path txt=@t]
^- (trap vase)
=/ cap ?:(?=(%$ lal) "zuse" "vane {<lal>}")
(smit:va:part cap vax pax txt)
::
++ molt
|= [now=@da grub]
^- (unit heir)
?. &(?=(^ who) ?=(^ eny) ?=(^ ver) ?=(^ fat) ?=(^ bod))
?. &(?=(^ who) ?=(^ eny) ?=(^ ver) ?=(^ fat) ?=(^ lul) ?=(^ zus))
~
=/ zus $:u.bod
=/ lul $:u.lul
=/ zus $:u.zus
%- %+ wyrd kel.u.ver
^- (list (pair term @))
:~ hoon/hoon-version
arvo/arvo
lull/;;(@ud q:(slap lul limb/%lull))
zuse/;;(@ud q:(slap zus limb/%zuse))
==
=/ nav %- ~(run by van)
|=(a=(trap vase) (settle:va:part (slym $:a zus)))
:^ ~ arvo *debt
[[u.who now u.eny] [lac] [u.ver |] u.fat zus nav]
[[u.who now u.eny] [lac] [u.ver |] u.fat lul zus nav]
::
++ what
|= [grub fil=(list (pair path (cask)))]
^- grub
=* gub +<-
=/ taf (fall fat *(axal (cask)))
=/ del (~(group adapt:part taf) fil)
=/ tub (~(usurp adapt:part taf) del)
?: &(?=(^ dir.taf) ?=(^ tub))
~>(%mean.'arvo: larval reboot' !!) :: XX support
::
:: require, and unconditionally adopt, initial kernel source
::
=? taf =(~ dir.taf) :: XX TMI
~| %larval-need-kernel
?> &(?=(^ tub) ?=(^ hun.p.u.tub))
(~(gas de taf) q.u.tub)
::
=^ job=oped:part taf (~(adorn adapt:part taf) del |)
=? lul ?=(^ lul.job)
`(smit:va:part "lull" pit /sys/lull/hoon u.lul.job)
=? zus ?=(^ zus.job)
?. ?=(^ lul)
~|(%larval-need-lull !!)
`(smit:va:part "zuse" $:u.lul /sys/zuse/hoon u.zus.job)
=? van !=(~ van.job) :: XX TMI
?. ?=(^ zus)
~|(%larval-need-zuse !!)
%+ roll van.job
|= [[(cask hoof:part)] =_van]
^+ van
=/ way (wilt p)
%+ ~(put by van) way
(smit:va:part "vane {<way>}" $:u.zus /sys/vane/[p]/hoon q)
gub(fat `taf)
--
::
:: larval state, as a discriminable sample
@ -1630,70 +1668,38 @@
++ poke :: +47
|= [now=@da ovo=ovum]
^- ^
~| poke/p.card.ovo
=/ wip
~| [p.ovo p.q.ovo]
~> %mean.'arvo: bad wisp'
;;(wisp q.ovo)
;;(wisp card.ovo)
::
=. ..poke
|- ^+ ..poke
?- -.wip
%verb ..poke(lac ?~(p.wip !lac u.p.wip))
::
%veer =/ pax
sys/?:(?=(%$ lal.wip) /zuse /vane/[(grow lal.wip)])
$(q.ovo what/[[pax hoon/txt.wip] ~])
::
%wack ..poke(eny `p.wip)
::
%what =/ taf (fall fat *(axal (cask)))
=/ del (~(group adapt:part taf) p.wip)
=/ tub (~(usurp adapt:part taf) del)
?: &(?=(^ dir.taf) ?=(^ tub))
~>(%mean.'arvo: larval reboot' !!) :: XX support
::
:: require, and unconditionally adopt, initial kernel source
::
=? taf =(~ dir.taf) :: XX TMI
~| %larval-need-kernel
?> &(?=(^ tub) ?=(^ hun.p.u.tub))
(~(gas de taf) q.u.tub)
::
=^ job taf [p q]:(~(adorn adapt:part taf) del |)
=? bod ?=(^ zus.job)
`(mint pit %$ /sys/zuse/hoon u.zus.job)
%= ..poke
fat `taf
van
%+ roll van.job
|= [[(cask hoof:part)] =_van]
^+ van
?> ?=(^ bod)
=/ way (wilt p)
(~(put by van) way (mint $:u.bod way /sys/vane/[p]/hoon q))
==
::
%what ..poke(gub (what gub p.wip))
%whom ..poke(who ~|(%whom-once ?>(?=(~ who) `p.wip)))
::
%wyrd %- %+ wyrd kel.p.wip
^- (list (pair term @))
:* hoon/hoon-version
arvo/arvo
?~ bod ~
[zuse/;;(@ud q:(slap $:u.bod limb/%zuse)) ~]
?~ lul ~
:- lull/;;(@ud q:(slap $:u.lul limb/%lull))
?~ zus ~
[zuse/;;(@ud q:(slap $:u.zus limb/%zuse)) ~]
==
..poke(ver `p.wip)
==
::
?~ hir=(molt now gub)
[~ ..poke]
::
:: upgrade once we've accumulated necessary state
::
?~ hir=(molt now gub)
[~ ..poke]
~> %slog.[0 leaf+"arvo: metamorphosis"]
(load u.hir)
::
++ wish :: +22
|= txt=*
q:(slap ?~(bod pit $:u.bod) (ream ;;(@t txt)))
q:(slap ?~(zus pit $:u.zus) (ream ;;(@t txt)))
--

4
pkg/arvo/sys/lull.hoon Normal file
View File

@ -0,0 +1,4 @@
=> ..is
|%
++ lull %lull-kelvin
--

View File

@ -127,6 +127,7 @@
+$ reef-cache
$: hoon=vase
arvo=vase
lull=vase
zuse=vase
==
::
@ -284,7 +285,10 @@
+$ move [p=duct q=(wind note gift:able)] :: local move
+$ note :: out request $->
$~ [%b %wait *@da] ::
$% $: %a :: to %ames
$% $: %$ :: to arvo
$>(%what waif) ::
== ::
$: %a :: to %ames
$>(%plea task:able:ames) ::
== ::
$: %b :: to %behn
@ -1394,15 +1398,11 @@
:: promote and fill in ankh
:: promote and fill in mime cache
::
=/ sys-changes (need-sys-update changes)
?: ?& =(%home syd)
!updated
|(!=(~ sys-changes) !=(~ (need-vane-update changes)))
==
(sys-update yoki new-data changes)
?: &(=(%home syd) !updated)
(sys-update yoki new-data)
:: clear caches if zuse reloaded
::
=/ is-zuse-new=? !=(~ sys-changes)
=/ is-zuse-new=? (need-reef-update changes)
=. fod.dom
?: is-zuse-new
*ford-cache
@ -1547,89 +1547,67 @@
(~(put by $(builds t.builds)) i.builds)
::
++ build-reef
=> |%
+$ reef-step
:: vary: source or dependencies changed
:: deep: source and dependencies match kernel
::
[vary=? deep=?]
--
::
|= $: fer=(unit reef-cache)
invalid=(set path)
data=(map path (each page lobe))
==
^- reef-cache
?: =(%home syd)
[!>(..ride) !>(..is) !>(..zuse)]
|^
?: |(?=(~ fer) (~(has in invalid) /sys/hoon/hoon))
=/ [home=? hoon=vase]
?: (same-as-home /sys/hoon/hoon)
&+!>(..ride)
|+build-hoon
:- hoon
=/ [home=? arvo=vase]
?: &(home (same-as-home /sys/arvo/hoon))
&+!>(..is)
|+(build-arvo hoon)
:- arvo
?: &(home (same-as-home /sys/zuse/hoon))
!>(..zuse)
(build-zuse arvo)
:- hoon.u.fer
?: (~(has in invalid) /sys/arvo/hoon)
=/ [home=? arvo=vase]
?: &((same-as-home /sys/hoon/hoon) (same-as-home /sys/arvo/hoon))
&+!>(..is)
|+(build-arvo hoon.u.fer)
:- arvo
?: &(home (same-as-home /sys/zuse/hoon))
!>(..zuse)
(build-zuse arvo)
:- arvo.u.fer
?: (~(has in invalid) /sys/zuse/hoon)
?: ?& (same-as-home /sys/hoon/hoon)
(same-as-home /sys/arvo/hoon)
(same-as-home /sys/zuse/hoon)
|^ ^- reef-cache
=/ [tep=reef-step ref=reef-cache]
?^ fer
[[vary=| deep=&] u.fer]
[[vary=& deep=&] *reef-cache]
::
=^ hon tep (build tep /sys/hoon hoon.ref !>(**) !,(*hoon ..ride))
=^ rav tep (build tep /sys/arvo arvo.ref hon !,(*hoon ..part))
=^ lul tep (build tep /sys/lull lull.ref rav !,(*hoon .))
=^ zus tep (build tep /sys/zuse zuse.ref rav !,(*hoon .))
[hon rav lul zus]
::
++ build
|= [tep=reef-step pax=path pre=vase sub=vase pro=hoon]
^- (pair vase reef-step)
=/ ful (weld pax /hoon)
?. ?| vary.tep
(~(has in invalid) ful)
==
!>(..zuse)
(build-zuse arvo.u.fer)
zuse.u.fer
::
++ build-hoon
%- road |.
~> %slog.0^leaf+"clay: building hoon on {<syd>}"
[pre tep]
=. vary.tep &
=/ src (path-to-cord data ful)
::
?: &(deep.tep (deep pax src))
[(slap !>(..zuse) pro) tep]
::
=/ nam=term ?.(?=([@ta @ta *] pax) %$ i.t.pax)
~> %slog.0^leaf+"clay: building %{(trip nam)} on %{(trip syd)}"
=/ gen
~> %mean.%hoon-parse-fail
(path-to-hoon data /sys/hoon/hoon)
~> %mean.%hoon-compile-fail
(slot 7 (slap !>(0) gen))
~_ leaf+"%{(trip nam)}-parse-fail"
(rain ful src)
~_ leaf+"%{(trip nam)}-compile-fail"
[(slap (slap sub gen) pro) tep(deep |)]
::
++ build-arvo
|= hoon=vase
%- road |.
~> %slog.0^leaf+"clay: building arvo on {<syd>}"
=/ gen
~> %mean.%arvo-parse-fail
(path-to-hoon data /sys/arvo/hoon)
~> %mean.%arvo-compile-fail
(slap (slap hoon gen) !,(*^hoon ..is))
::
++ build-zuse
|= arvo=vase
%- road |.
~> %slog.0^leaf+"clay: building zuse on {<syd>}"
=/ gen
~> %mean.%zuse-parse-fail
(path-to-hoon data /sys/zuse/hoon)
~> %mean.%zuse-compile-fail
(slap arvo gen)
::
++ same-as-home
|= =path
++ deep
|= [pax=path src=cord]
^- ?
=/ our-lobe=lobe
=/ datum (~(got by data) path)
?- -.datum
%& (page-to-lobe %hoon (page-to-cord p.datum))
%| p.datum
==
=/ =dome dom:(~(got by dos.rom) %home)
=/ =yaki (~(got by hut.ran) (~(got by hit.dome) let.dome))
=(`our-lobe (~(get by q.yaki) path))
:: XX use roof
::
:: =/ dat (rof `[our ~ ~] $/[[our $/da/now] mod/fat/pax])
:: ?: |(?=(~ dat) ?=(~ u.dat)) |
:: =/ nod !<((axal (cask)) q.u.u.dat)
::
=/ dat
;; (unit (unit (axal (cask))))
((sloy-light ski) [hoon-version %noun] %$ our %$ da/now mod/fat/pax)
?: |(?=(~ dat) ?=(~ u.dat)) |
=* nod u.u.dat
&(?=(^ fil.nod) ?=(%hoon p.u.fil.nod) =(src q.u.fil.nod))
--
::
++ page-to-cord
@ -1883,104 +1861,50 @@
test-ankh (~(got by dir.test-ankh) ta)
==
::
:: Find /sys changes; does not reload on first commit
:: Find reef dependency changes
::
++ need-sys-update
++ need-reef-update
|= changes=(map path (each page lobe))
^- (map path (each page lobe))
~+
?: =(0 let.dom)
~
%- malt
%+ skim ~(tap by changes)
^- ?
%+ lien ~(tap by changes)
|= [=path *]
?| =(/sys/hoon/hoon path)
=(/sys/arvo/hoon path)
=(/sys/lull/hoon path)
=(/sys/zuse/hoon path)
==
::
++ need-vane-update
|= changes=(map path (each page lobe))
^- (map path (each page lobe))
~+
?: =(0 let.dom)
~
%- malt
%+ skim ~(tap by changes)
|= [=path *]
=(/sys/vane (scag 2 path))
::
:: Delay current update until sys update is complete
::
++ sys-update
|= $: =yoki
data=(map path (each page lobe))
changes=(map path (each page lobe))
==
^+ ..park
=/ updates
%- ~(uni by (need-sys-update changes))
(need-vane-update changes)
?> =(~ pud)
=. pud `[syd yoki]
|^ %. [hen %slip %c %pork ~]
=< emit
?: (~(has by updates) /sys/hoon/hoon)
(reset &)
?: (~(has by updates) /sys/arvo/hoon)
(reset |)
?: (~(has by updates) /sys/zuse/hoon)
reboot
=/ vanes=(list [=path *]) ~(tap by updates)
|- ^+ ..park
?~ vanes
..park
?. ?=([%sys %vane * %hoon ~] path.i.vanes)
~& [%strange-sys-update path.i.vanes]
$(vanes t.vanes)
=. ..park (reload i.t.t.path.i.vanes)
$(vanes t.vanes)
emit:(pass-what files)
::
++ reset
|= new-hoon=?
++ files
^- (list (pair path (cask)))
%+ murn
~(tap by data)
|= [pax=path dat=(each page lobe)]
^- (unit (pair path (cask)))
=/ xap (flop pax)
?> ?=(^ xap)
?. ?=(%hoon i.xap) ~
:^ ~ (flop t.xap) %hoon
?- -.dat
%& (page-to-cord p.dat)
%| (lobe-to-cord p.dat)
==
::
++ pass-what
|= fil=(list (pair path (cask)))
^+ ..park
?. new-hoon
=/ arvo=@t (path-to-cord data /sys/arvo/hoon)
=. ..park (pass-lyra hoon=~ arvo)
reboot
=/ hoon=@t (path-to-cord data /sys/hoon/hoon)
=/ arvo=@t (path-to-cord data /sys/arvo/hoon)
=. ..park (pass-lyra `hoon arvo)
reboot
::
++ pass-lyra
|= [hoon=(unit @t) arvo=@t]
^+ ..park
(emit hen %pass /reset %d %flog %lyra hoon arvo)
::
++ reboot
=/ zuse=@t (path-to-cord data /sys/zuse/hoon)
=. ..park
%- emit
[hen %pass /reboot %d %flog %veer %$ /sys/zuse/hoon zuse]
reload-all
::
++ reload-all
=/ vanes=(list term)
~[%ames %behn %clay %dill %eyre %gall %iris %jael]
|- ^+ ..park
?~ vanes
..park
=. ..park (reload i.vanes)
$(vanes t.vanes)
::
++ reload
|= =term
=/ vane=@t (path-to-cord data /sys/vane/[term]/hoon)
%- emit
=/ tip (end 3 term)
=/ =path /sys/vane/[term]/hoon
[hen %pass /reload %d %flog %veer tip path vane]
(emit hen %pass /what %$ what/fil)
--
--
::

View File

@ -33,7 +33,10 @@
+$ move [p=duct q=(wind note gift:able)] :: local move
+$ note :: out request $->
$~ [%d %verb ~] ::
$% $: %c ::
$% $: %$ ::
$>(?(%verb %whey) waif) ::
== ::
$: %c ::
$> $? %merg :: merge desks
%perm :: change permissions
%warp :: wait for clay hack
@ -44,9 +47,7 @@
$> $? %crud ::
%heft ::
%init :: XX obsolete?
%lyra ::
%text ::
%veer ::
%verb ::
== ::
task:able:dill ::
@ -117,13 +118,11 @@
%crud :: (send `dill-belt`[%cru p.kyz q.kyz])
(crud p.kyz q.kyz)
%blew (send %rez p.p.kyz q.p.kyz)
%heft (dump %whey ~)
%lyra (dump kyz)
%heft (pass /whey %$ whey/~)
%meld (dump kyz)
%pack (dump kyz)
%crop (dump trim+p.kyz)
%veer (dump kyz)
%verb (dump kyz)
%verb (pass /verb %$ kyz)
==
::
++ crud

View File

@ -29,7 +29,7 @@
:: it's important to keep %zuse minimal. models and
:: engines not used outside a vane should stay inside
:: that vane.
~% %zuse +> ~
~% %zuse ..is ~
=>
:: :: ::
:::: :: :: (1) models
@ -1098,13 +1098,9 @@
[%burl p=@t] :: activate url
[%init p=@p] :: set owner
[%logo ~] :: logout
[%lyra hoon=(unit @t) arvo=@t] :: upgrade kernel
[%meld ~] :: unify memory
[%pack ~] :: compact memory
[%trim p=@ud] :: trim kernel state
[%veer p=@ta q=path r=@t] :: install vane
[%verb ~] :: verbose mode
[%whey ~] :: memory report
== ::
+$ task :: in request ->$
$~ [%vega ~] ::
@ -1121,13 +1117,11 @@
[%hook ~] :: this term hung up
[%harm ~] :: all terms hung up
$>(%init vane-task) :: after gall ready
[%lyra hoon=(unit @t) arvo=@t] :: upgrade kernel
[%meld ~] :: unify memory
[%noop ~] :: no operation
[%pack ~] :: compact memory
[%talk p=tank] ::
[%text p=tape] ::
[%veer p=@ta q=path r=@t] :: install vane
[%view session=~] :: watch session blits
$>(%trim vane-task) :: trim state
$>(%vega vane-task) :: report upgrade
@ -1190,11 +1184,9 @@
$% [%crop p=@ud] :: trim kernel state
[%crud p=@tas q=(list tank)] ::
[%heft ~] ::
[%lyra hoon=(unit @t) arvo=@t] :: upgrade kernel
[%meld ~] :: unify memory
[%pack ~] :: compact memory
[%text p=tape] ::
[%veer p=@ta q=path r=@t] :: install vane
[%verb ~] :: verbose mode
== ::
-- ::dill

View File

@ -696,6 +696,7 @@
# define c3__low c3_s3('l','o','w')
# define c3__lsh c3_s3('l','s','h')
# define c3__lt c3_s2('l','t')
# define c3__lull c3_s4('l','u','l','l')
# define c3__lunt c3_s4('l','u','n','t')
# define c3__mack c3_s4('m','a','c','k')
# define c3__mach c3_s4('m','a','c','h')

View File

@ -793,7 +793,7 @@ _pier_wyrd_card(u3_pier* pir_u)
//
u3_noun ver = u3nq(u3i_string(VERE_NAME), VERE_MAJOR, VERE_MINOR, VERE_PATCH);
u3_noun kel = u3nl(u3nc(c3__zuse, VERE_ZUSE), // XX god_u->zus_w
// u3nc(c3__lull, PIER_LULL), // XX define
u3nc(c3__lull, u3i_string("lull-kelvin")), // XX define
u3nc(c3__arvo, u3i_string("arvo-kelvin")), // XX from both king and serf?
u3nc(c3__hoon, 141), // god_u->hon_y
u3nc(c3__nock, 4), // god_u->noc_y