mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-17 20:01:32 +03:00
60 lines
1.4 KiB
Plaintext
60 lines
1.4 KiB
Plaintext
::
|
|
:::: /hoon/metal/gen
|
|
::
|
|
/? 310
|
|
::
|
|
::::
|
|
!:
|
|
:- %say
|
|
|= $: {now/@da * bec/beak}
|
|
*
|
|
==
|
|
:- %noun
|
|
::
|
|
:: sys: root path to boot system, `/~me/[desk]/now/sys`
|
|
::
|
|
=+ sys=`path`/(scot %p p.bec)/[q.bec]/(scot %da now)/sys
|
|
::
|
|
:: compiler-source: hoon source file producing compiler, `sys/hoon`
|
|
::
|
|
=+ compiler-source=.^(@t %cx (welp sys /hoon/hoon))
|
|
::
|
|
:: compiler-hoon: compiler as hoon expression
|
|
::
|
|
~& %ivory-parsing
|
|
=+ compiler-hoon=(ream compiler-source)
|
|
~& %ivory-parsed
|
|
::
|
|
:: arvo-source: hoon source file producing arvo kernel, `sys/arvo`
|
|
::
|
|
=+ arvo-source=.^(@t %cx (welp sys /arvo/hoon))
|
|
::
|
|
:: whole-hoon: arvo within compiler
|
|
::
|
|
=+ whole-hoon=`hoon`[%tsbn compiler-hoon [%tsbn [%$ 7] (ream arvo-source)]]
|
|
::
|
|
:: compile the whole schmeer
|
|
::
|
|
~& %ivory-compiling
|
|
=+ whole-formula=q:(~(mint ut %noun) %noun whole-hoon)
|
|
~& %ivory-compiled
|
|
::
|
|
:: 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]
|