Merge pull request #900 from urbit/dual-boot-cc-release

dual boot with cc-release
This commit is contained in:
Joe Bryan 2018-11-28 12:39:40 -05:00 committed by GitHub
commit 98be1f889a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 178 additions and 91 deletions

View File

@ -33,7 +33,7 @@ mkdir prev
|autoload | |autoload |
|mount % |mount %
. .
[ $? = 0 ] && cp -r ../sys prev/zod/home/ [ $? = 0 ] && cp -r ../sys prev/zod/home/ && cp ../gen/solid.hoon prev/zod/home/gen/
} || { } || {
: Pilling: Parent-pill pier not available, trying preceding pill commit : Pilling: Parent-pill pier not available, trying preceding pill commit
HASH2=$(git -C .. log -2 $HASH --format=%H -- sys/ | tail -1) HASH2=$(git -C .. log -2 $HASH --format=%H -- sys/ | tail -1)

View File

@ -1 +1 @@
https://ci-piers.urbit.org/zod-49b2824783cfeeb8517ba58e06718cb6c55cccdf.tgz https://ci-piers.urbit.org/zod-8411424685019d1728002d71c109560b9fd13f2a.tgz

View File

@ -270,11 +270,15 @@
:: ::
=/ pax (en-beam:format bec tyl) =/ pax (en-beam:format bec tyl)
=/ lon .^(arch %cy pax) =/ lon .^(arch %cy pax)
:: XX this serialization should use marks
::
=? hav ?=(^ fil.lon) =? hav ?=(^ fil.lon)
?. ?=({$hoon *} tyl) ?. ?= ?($css $hoon $js $json $md $txt $udon $umd)
-.tyl
:: ::
:: install only hoon files for now :: install only files with whitelisted marks
:: ::
~& ignoring+pax
hav hav
:: ::
:: cot: file as plain-text octet-stream :: cot: file as plain-text octet-stream
@ -282,7 +286,15 @@
=; cot [[(flop `path`tyl) `[/text/plain cot]] hav] =; cot [[(flop `path`tyl) `[/text/plain cot]] hav]
^- octs ^- octs
?- tyl ?- tyl
{$hoon *} {$json *}
=/ dat .^(json %cx pax)
(as-octt:mimes:html (en-json:html dat))
::
{$txt *}
=/ dat .^(wain %cx pax)
(as-octs:mimes:html (of-wain:format dat))
::
*
=/ dat .^(@t %cx pax) =/ dat .^(@t %cx pax)
[(met 3 dat) dat] [(met 3 dat) dat]
== ==

View File

@ -39,4 +39,21 @@
=+ whole-formula=q:(~(mint ut %noun) %noun whole-hoon) =+ whole-formula=q:(~(mint ut %noun) %noun whole-hoon)
~& %ivory-compiled ~& %ivory-compiled
:: ::
whole-formula :: zuse-ovo: standard library installation event
::
=/ zuse-ovo=ovum
=/ pax (weld sys /zuse)
=/ txt .^(@ %cx (weld pax /hoon))
[/vane/zuse [%veer %$ pax txt]]
::
:: installed: Arvo gate (formal instance) with %zuse installed
::
~& %zuse-installing
=/ installed
.*(0 [%7 whole-formula [%9 2 %10 [6 %1 now zuse-ovo] %0 1]])
~& %zuse-installed
::
:: produce a formula that evaluates :whole-formula (for jet registration),
:: then ignores that result and produces :installed
::
[%7 whole-formula %1 installed]

View File

@ -10,59 +10,84 @@
:::: ::::
!: !:
:- %say :- %say
|= $: {now/@da eny/@uvJ bec/beak} |= $: [now=@da eny=@uvJ bec=beak]
{arg/$@(~ {top/path ~}) dub/_|} arg=$@(~ [top=path ~])
dub=_|
== ==
?~ arg $(arg ~[top=`path`/(scot %p p.bec)/[q.bec]/(scot %da now)/sys])
::
:- %noun :- %noun
=+ pax=`path`(weld top.arg `path`[%hoon ~]) :: sys: root path to boot system, `/~me/[desk]/now/sys`
=+ arp=`path`(weld top.arg `path`[%arvo ~]) ::
=/ sys=path
?^ arg top.arg
/(scot %p p.bec)/[q.bec]/(scot %da now)/sys
::
=/ compiler-path (weld sys /hoon)
=/ arvo-path (weld sys /arvo)
~& %solid-start ~& %solid-start
=+ txt=.^(@t %cx (weld pax `path`[%hoon ~])) =/ compiler-src .^(@t %cx (weld compiler-path /hoon))
=+ rax=.^(@t %cx (weld arp `path`[%hoon ~])) =/ arvo-src .^(@t %cx (weld arvo-path /hoon))
=+ ^= ken =/ arvo-formula
=- ?:(?=(%& -.res) p.res (mean (flop p.res))) ~& %solid-loaded
^= res %- mule |. =/ compiler-hoon (rain compiler-path compiler-src)
~& %solid-loaded ?. dub
=+ gen=(rain pax txt) :: compile arvo against hoon, with our current compiler
::
=/ whole-hoon=hoon
[%tsbn compiler-hoon [%tsbn [%$ 7] (rain arvo-path arvo-src)]]
~& %solid-parsed ~& %solid-parsed
=+ one=(~(mint ut %noun) %noun gen) =/ whole-formula q:(~(mint ut %noun) %noun whole-hoon)
~& %solid-compiled ~& %solid-arvo
?. dub whole-formula
=+ two=(~(mint ut p.one) %noun (rain arp rax)) :: compile arvo against hoon, with a freshly compiled hoon (via +ride)
~& %solid-arvo ::
[7 q.one q.two] ~& %solid-parsed
=+ zax=(cat 3 '=> ' (cat 3 txt (cat 3 ' ' rax))) =/ compiler-formula q:(~(mint ut %noun) %noun compiler-hoon)
~& %solid-double-loading ~& %solid-compiled
=+ all=.*(0 q.one) =/ whole-src
~& %solid-double-loaded (rap 3 ['=> ' compiler-src '=> +7 ' arvo-src ~])
~& %solid-double-loaded
=/ whole-formula
=< + =< +
.*(all [9 2 [0 2] [1 %noun zax] [0 7]]) .* 0
:+ %7
compiler-formula
[%9 2 %10 [6 %1 %noun whole-src] [%0 1]]
~& %solid-double-compiled
whole-formula
:: ::
~& [%solid-kernel `@ux`(mug ken)] ~& [%solid-kernel `@ux`(mug arvo-formula)]
:- ken :: module-ova: vane load operations.
=+ all=.*(0 ken)
=+ ^= vay ^- (list {p/@tas q/path})
:~ [%$ /zuse]
[%f /vane/ford]
[%b /vane/behn]
[%d /vane/dill]
[%a /vane/ames]
[%c /vane/clay]
[%g /vane/gall]
[%e /vane/eyre]
[%j /vane/jael]
==
|- ^+ all
?~ vay all
=+ pax=(weld top.arg q.i.vay)
=+ txt=.^(@ %cx (weld pax `path`[%hoon ~]))
=+ sam=[now `ovum`[[%gold ~] [%veer p.i.vay pax txt]]]
~& [%solid-veer i.vay]
:: +poke at +10
:: ::
=+ gat=.*(all .*(all [0 10])) =/ module-ova=(list ovum)
=+ nex=+:.*([-.gat [sam +>.gat]] -.gat) |^ :~ (vent %$ /zuse)
$(vay t.vay, all nex) (vent %a /vane/ames)
(vent %b /vane/behn)
(vent %c /vane/clay)
(vent %d /vane/dill)
(vent %e /vane/eyre)
(vent %f /vane/ford)
(vent %g /vane/gall)
(vent %j /vane/jael)
==
++ vent
|= [abr=term den=path]
^- ovum
=/ pax (weld sys den)
=/ txt .^(@ %cx (weld pax /hoon))
[[%vane den] [%veer abr pax txt]]
--
:: installed: Arvo gate (formal interface) with %zuse and vanes installed
::
=/ installed
=< q
%^ spin
module-ova
.*(0 arvo-formula)
|= [ovo=ovum ken=*]
[~ .*(ken [%9 2 %10 [6 %1 now ovo] %0 1])]
::
:: produce a pair of :arvo-formula (for jet registration) and
:: the Arvo core (structural interface), which is the context
:: of the formal Arvo interface gate :installed
::
[arvo-formula .*(installed [%0 7])]

View File

@ -1,7 +1,11 @@
:::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::: :::::: Postface :::::: :::::: :::::: Postface ::::::
:::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::
=> +7 ~> %slog.[0 leaf+"arvo-boot"]
=< |= {now/@da ovo/*}
^- *
~> %slog.[0 leaf+"arvo-event"]
.(+> +:(poke now ovo))
~> %slog.[0 leaf+"%arvo-assembly"] ~> %slog.[0 leaf+"%arvo-assembly"]
=- ~> %slog.[0 leaf+"%arvo-assembled"] =- ~> %slog.[0 leaf+"%arvo-assembled"]
- -
@ -113,6 +117,10 @@
?~ u.bop [~ ~] ?~ u.bop [~ ~]
[~ ~ +.q.u.u.bop] [~ ~ +.q.u.u.bop]
:: ::
++ symp :: symbol or empty
|= a=* ^- @tas
?.(&(?=(@ a) ((sane %tas) a)) %$ a)
::
++ vent :: vane core ++ vent :: vane core
|= {lal/@tas vil/vile bud/vase sew/(pair worm vase)} |= {lal/@tas vil/vile bud/vase sew/(pair worm vase)}
~% %vent +>+ ~ ~% %vent +>+ ~
@ -220,7 +228,7 @@
== ==
^= har ^- (each (pair arvo worm) term) ^= har ^- (each (pair arvo worm) term)
=^ caq p.sew (~(spot wa p.sew) 3 wec) =^ caq p.sew (~(spot wa p.sew) 3 wec)
?+ q.caq [%| (cat 3 %funk (@tas q.caq))] ?+ q.caq [%| (cat 3 %funk (symp q.caq))]
:: ::
{$pass p/* q/@tas r/{p/@tas q/*}} {$pass p/* q/@tas r/{p/@tas q/*}}
%- (bond |.([%| p.r.q.caq])) %- (bond |.([%| p.r.q.caq]))
@ -317,7 +325,7 @@
(slix (slid [%& [%atom %tas `org] org] hil)) (slix (slid [%& [%atom %tas `org] org] hil))
== ==
?~ pru ?~ pru
~& [%swim-lost lal (@tas +>-.hil)] ~& [%swim-lost lal (symp +>-.hil)]
[[~ p.sew] q.sew] [[~ p.sew] q.sew]
=^ pro p.sew (need pru) =^ pro p.sew (need pru)
=^ moz p.sew (~(slap wa p.sew) pro [%limb %p]) =^ moz p.sew (~(slap wa p.sew) pro [%limb %p])
@ -425,22 +433,21 @@
$pass $pass
~? &(!lac !=(%$ p.gum)) ~? &(!lac !=(%$ p.gum))
:^ %pass [p.gum p.q.r.gum] :^ %pass [p.gum p.q.r.gum]
[(@tas +>-.q.q.r.gum) p.r.gum] [(symp +>-.q.q.r.gum) p.r.gum]
q.gum q.gum
[p.q.r.gum ~ [[p.gum p.r.gum] q.gum] q.q.r.gum] [p.q.r.gum ~ [[p.gum p.r.gum] q.gum] q.q.r.gum]
:: ::
$give $give
?> ?=(^ q.gum) ?. &(?=(^ q.gum) ?=(^ i.q.gum))
?. ?=(^ i.q.gum) ~| [%jack-bad-duct q.gum]
~& [%jack-bad-duct q.gum] ~| [%jack-bad-card p.gum (symp +>-.p.r.gum)]
~& [%jack-bad-card +>-.p.r.gum]
!! !!
~? &(!lac |(!=(%blit +>-.p.r.gum) !=(%d p.gum))) ~? &(!lac |(!=(%blit +>-.p.r.gum) !=(%d p.gum)))
[%give p.gum (@tas +>-.p.r.gum) `duct`q.gum] [%give p.gum (symp +>-.p.r.gum) `duct`q.gum]
[i.i.q.gum [~ t.i.q.gum] t.q.gum p.r.gum] [i.i.q.gum [~ t.i.q.gum] t.q.gum p.r.gum]
:: ::
$slip $slip
~? !lac [%slip p.gum (@tas +>-.q.p.r.gum) q.gum] ~? !lac [%slip p.gum (symp +>-.q.p.r.gum) q.gum]
[p.p.r.gum ~ q.gum q.p.r.gum] [p.p.r.gum ~ q.gum q.p.r.gum]
== ==
:: ::
@ -554,41 +561,51 @@
^- * ^- *
=- ?:(?=(%& -.res) p.res ((slog p.res) ~)) =- ?:(?=(%& -.res) p.res ((slog p.res) ~))
^= res %- mule |. ^= res %- mule |.
=+ pax=(weld hap `path`[%hoon ~]) =/ pax (weld hap /hoon)
=+ wax=(weld zup `path`[%hoon ~]) =/ wax (weld zup /hoon)
~& [%vega-start-hoon hap] ~& [%vega-start-hoon hap]
=+ src=((hard @t) (need (peek now cx+pax))) =/ src ((hard @t) (need (peek now cx+pax)))
=+ arv=((hard @t) (need (peek now cx+wax))) =/ arv ((hard @t) (need (peek now cx+wax)))
=+ gen=(rain hap src) :: construct =>(hoon =>(+7 arvo))
::
=/ gen=hoon
:+ %tsbn (rain hap src)
:+ %tsld (rain zup arv)
[%$ 7]
~& %vega-parsed ~& %vega-parsed
=+ one=(~(mint ut %noun) %noun gen) =/ fol q:(~(mint ut %noun) %noun gen)
~& %vega-compiled ~& %vega-compiled
~& [%vega-arvo zup] :: evaluate :fol to produce the Arvo gate,
=+ two=(~(mint ut p.one) %noun (rain zup arv)) :: then produce the Arvo core at +7
~& %vega-minted ::
.*(0 [7 q.one q.two]) .*(0 [%7 fol %0 7])
:: ::
++ vega :: reboot kernel ++ vega :: reboot kernel
|= {now/@da ova/(list ovum) hap/path zup/path} |= {now/@da ova/(list ovum) hap/path zup/path}
^- (unit {p/(list ovum) q/*}) ^- (unit {p/(list ovum) q/*})
=- ?:(?=(%| -.res) ((slog p.res) ~) `p.res) =- ?:(?=(%| -.res) ((slog p.res) ~) `p.res)
^= res %- mule |. ^= res %- mule |.
=+ ken=(veke now hap zup) =/ ken (veke now hap zup)
~& [%vega-kernel `@ux`(mug ken)] ~& [%vega-kernel `@ux`(mug ken)]
=+ ^= nex =/ nex
:: +peek at +47 :: call +peek at +47
:: ::
=+ gat=.*(ken .*(ken [0 47])) %- need
(need ((hard (unit @)) .*([-.gat [[now ~] +>.gat]] -.gat))) %- (hard (unit @))
.*(ken [%9 2 %10 [6 %1 now ~] [%9 47 %0 1]])
~& [%vega-compiled hoon-version nex] ~& [%vega-compiled hoon-version nex]
?> (lte nex hoon-version) ?> (lte nex hoon-version)
:: entropy, pending effects, vanes
::
=/ sam [eny ova q.niz]
:: +load at +46 or +come at +22 :: +load at +46 or +come at +22
:: ::
=+ gat=.*(ken .*(ken [0 ?:(=(nex hoon-version) 46 22)])) =/ axe ?:(=(nex hoon-version) 46 22)
=+ sam=[eny ova q.niz] =/ out
=+ raw=.*([-.gat [sam +>.gat]] -.gat) .*(ken [%9 2 %10 [6 %1 sam] [%9 axe %0 1]])
=+ yep=((list ovum) -.raw) :: add a reset notification to the pending effects
[[[~ %vega hap] yep] +.raw] ::
[[[~ %vega hap] ((list ovum) -.out)] +.out]
:: ::
++ veer :: install vane/tang ++ veer :: install vane/tang
|= {now/@da fav/curd} |= {now/@da fav/curd}

View File

@ -1300,6 +1300,8 @@
:: ::
%ouzo %ouzo
:: ~& [%send now p.bon `@p`(mug (shaf %flap q.bon))] :: ~& [%send now p.bon `@p`(mug (shaf %flap q.bon))]
~| [%ames-bad-duct duct=gad.fox lane=p.bon]
?> ?=(^ gad.fox)
:_ fox :_ fox
[[gad.fox [%give %send p.bon q.bon]] ~] [[gad.fox [%give %send p.bon q.bon]] ~]
:: ::

View File

@ -185,7 +185,10 @@
=. tym (raze tym) =. tym (raze tym)
=/ nex=(unit @da) ?~(p.tym ~ (some p:~(get up p.tym))) =/ nex=(unit @da) ?~(p.tym ~ (some p:~(get up p.tym)))
:_ tym :_ tym
?:(=(old nex) ~ [gad %give %doze nex]~) ?: =(old nex) ~
~| [%behn-bad-duct duct=gad doze=nex]
?> ?=(^ gad)
[gad %give %doze nex]~
:: ::
$wait $wait
=/ old=(unit @da) ?~(p.tym ~ (some p:~(get up p.tym))) =/ old=(unit @da) ?~(p.tym ~ (some p:~(get up p.tym)))
@ -193,7 +196,10 @@
=. tym (raze tym) =. tym (raze tym)
=/ nex=(unit @da) ?~(p.tym ~ (some p:~(get up p.tym))) =/ nex=(unit @da) ?~(p.tym ~ (some p:~(get up p.tym)))
:_ tym :_ tym
?:(=(old nex) ~ [gad %give %doze nex]~) ?: =(old nex) ~
~| [%behn-bad-duct duct=gad doze=nex]
?> ?=(^ gad)
[gad %give %doze nex]~
:: ::
$wake $wake
|- ^+ [*(list move) tym] |- ^+ [*(list move) tym]
@ -203,6 +209,8 @@
~& %weird-wake [~ tym] ~& %weird-wake [~ tym]
=/ nex ~(get up p.tym) =/ nex ~(get up p.tym)
?: (lte now p.nex) ?: (lte now p.nex)
~| [%behn-bad-duct duct=gad doze=nex]
?> ?=(^ gad)
[[gad %give %doze `p.nex]~ tym] [[gad %give %doze `p.nex]~ tym]
=^ mof tym $(p.tym ~(pop up p.tym)) =^ mof tym $(p.tym ~(pop up p.tym))
[[`move`[q.nex %give %wake ~] mof] tym] [[`move`[q.nex %give %wake ~] mof] tym]

View File

@ -3765,6 +3765,9 @@
|= {p/path r/rule} |= {p/path r/rule}
(~(has in who.r) |+nom.req) (~(has in who.r) |+nom.req)
-- --
::
$crud
[[[hen %slip %d %flog req] ~] ..^$]
:: ::
$drop $drop
=^ mos ruf =^ mos ruf

View File

@ -4692,6 +4692,7 @@
:: ::
%ride [%cnts ~[[%& 1] %is] ~] %ride [%cnts ~[[%& 1] %is] ~]
%ride arvo-hoon %ride arvo-hoon
%ride [%$ 7]
%ride hoon-hoon %ride hoon-hoon
[%$ %noun !>(~)] [%$ %noun !>(~)]
== ==

View File

@ -1273,6 +1273,7 @@
$crew `%c $crew `%c
$crow `%c $crow `%c
$deal `%g $deal `%g
$dirk `%c
$drop `%c $drop `%c
$flog `%d $flog `%d
$info `%c $info `%c

View File

@ -745,6 +745,7 @@
{$cred our/ship nom/@ta cew/crew} :: set permission group {$cred our/ship nom/@ta cew/crew} :: set permission group
{$crew our/ship} :: permission groups {$crew our/ship} :: permission groups
{$crow our/ship nom/@ta} :: group usage {$crow our/ship nom/@ta} :: group usage
{$crud p/@tas q/(list tank)} :: error with trace
{$drop our/@p des/desk} :: cancel pending merge {$drop our/@p des/desk} :: cancel pending merge
{$info our/@p des/desk dit/nori} :: internal edit {$info our/@p des/desk dit/nori} :: internal edit
{$init our/@p} :: report install {$init our/@p} :: report install

View File

@ -3535,7 +3535,7 @@
(expect-ford-empty ford-gate ~nul) (expect-ford-empty ford-gate ~nul)
== ==
:: ::
++ disabled-test-reef-slow ++ test-reef-slow
:: ::
=/ hoon-parsed=hoon =/ hoon-parsed=hoon
(rain /~nul/base/~1234.5.6/sys/hoon/hoon hoon-scry) (rain /~nul/base/~1234.5.6/sys/hoon/hoon hoon-scry)
@ -3552,7 +3552,7 @@
=/ pit=vase !>(~) =/ pit=vase !>(~)
=/ hoon-compiled=vase (slap pit hoon-parsed) =/ hoon-compiled=vase (slap pit hoon-parsed)
~& %hoon-compiled ~& %hoon-compiled
=/ arvo-compiled=vase (slap hoon-compiled arvo-parsed) =/ arvo-compiled=vase (slap (slot 7 hoon-compiled) arvo-parsed)
~& %arvo-compiled ~& %arvo-compiled
=/ pit-compiled=vase (slap arvo-compiled [%cnts ~[[%& 1] %is] ~]) =/ pit-compiled=vase (slap arvo-compiled [%cnts ~[[%& 1] %is] ~])
~& %pit-compiled ~& %pit-compiled