urbit/pkg/arvo/gen/brass.hoon

62 lines
1.3 KiB
Plaintext
Raw Normal View History

:: Produce a brass pill
2017-06-02 01:47:24 +03:00
::
:::: /hoon/brass/gen
::
/? 310
/+ pill
2017-06-02 01:47:24 +03:00
::
::::
!:
:- %say
2020-11-19 10:44:28 +03:00
|= $: [now=@da eny=@uvJ bec=beak]
arg=$@(~ [top=path ~])
~
2017-06-02 01:47:24 +03:00
==
:- %noun
2020-12-07 05:35:24 +03:00
^- pill:pill
2017-06-02 01:47:24 +03:00
::
:: sys: root path to boot system, `/~me/[desk]/now/sys`
::
2020-11-19 10:44:28 +03:00
=/ sys=path
?^ arg top.arg
/(scot %p p.bec)/[q.bec]/(scot %da now)/sys
2017-06-02 01:47:24 +03:00
::
:: compiler-source: hoon source file producing compiler, `sys/hoon`
::
=+ compiler-source=.^(@t %cx (welp sys /hoon/hoon))
2017-06-02 01:47:24 +03:00
::
:: compiler-twig: compiler as hoon expression
::
2018-12-04 21:42:58 +03:00
~& %brass-parsing
2020-12-07 05:35:24 +03:00
=+ compiler-twig=(rain /sys/hoon/hoon compiler-source)
2018-12-04 21:42:58 +03:00
~& %brass-parsed
2017-06-02 01:47:24 +03:00
::
:: compiler-formula: compiler as nock formula
::
2018-12-04 21:42:58 +03:00
~& %brass-compiling
2017-06-02 01:47:24 +03:00
=+ compiler-formula=q:(~(mint ut %noun) %noun compiler-twig)
2018-12-04 21:42:58 +03:00
~& %brass-compiled
2017-06-02 01:47:24 +03:00
::
:: arvo-source: hoon source file producing arvo kernel, `sys/arvo`
::
=+ arvo-source=.^(@t %cx (welp sys /arvo/hoon))
::
:: boot-ova: startup events
2017-06-02 01:47:24 +03:00
::
2020-12-07 05:35:24 +03:00
=/ boot-ova=(list)
:~ aeon:eden:part
boot:eden:part
compiler-formula
compiler-source
arvo-source
==
:: a pill is a 3-tuple of event-lists: [boot kernel userspace]
::
2020-11-19 10:44:28 +03:00
=/ bas=path (flop (tail (flop sys)))
2020-12-07 05:35:24 +03:00
:+ %pill %brass
:+ boot-ova
2020-12-07 05:35:24 +03:00
:~ (boot-ovum:pill compiler-source arvo-source)
(file-ovum2:pill bas)
2020-11-19 10:44:28 +03:00
==
[(file-ovum:pill bas) ~]