mirror of
https://github.com/urbit/shrub.git
synced 2024-11-28 13:54:20 +03:00
Merge pull request #4072 from urbit/jb/moar-what
arvo: embrace filesystem, add %lull
This commit is contained in:
commit
5e2b197633
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5402f3b52a34bda8a7189be0644bb6e31c738f358edc272ed4e542f597ed1c07
|
||||
size 7294878
|
||||
oid sha256:80f25c7953348649f4151c43b03a8025abf458054c66c110839c4c4388c53d06
|
||||
size 7345051
|
||||
|
@ -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]]
|
@ -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
|
@ -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
|
@ -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 ~]
|
@ -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
|
||||
|
@ -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]
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
4
pkg/arvo/sys/lull.hoon
Normal file
@ -0,0 +1,4 @@
|
||||
=> ..is
|
||||
|%
|
||||
++ lull %lull-kelvin
|
||||
--
|
@ -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)
|
||||
--
|
||||
--
|
||||
::
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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')
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user