:: Produce a glass pill :: :::: /hoon/glass/gen :: /? 310 :: :::: :: :- %say |= $: {now/@da eny/@uvJ bec/beak} * == =< [%noun ~] => |% ++ wasp :: arvo effect $% {$wack p/@uvJ} :: add entropy {$what p/(list (pair path (pair term noun)))} :: reset reptile {$whom p/@p} :: id and boot == -- :: :: deterministic test :: =. eny 0v0 :: :: build arvo with existing compiler :: |^ ^- * :: :: neo: root path to boot system, `/~me/[desk]/now/neo` :: =+ neo=`path`/(scot %p p.bec)/[q.bec]/(scot %da now)/neo :: :: arvo-source: hoon source file producing arvo kernel, `neo/arvo` :: =+ arvo-source=.^(@t %cx (welp neo /arvo/hoon)) :: :: arvo-twig: parsed arvo source :: ~& [%parsing `@p`(mug arvo-source)] =+ arvo-twig=(ream arvo-source) ~& %parsed :: :: arvo-kernel: a living urbit :: ~& [%compiling `@p`(mug arvo-twig)] =+ arvo-kernel=+:(slap !>(..ream) arvo-twig) ~& %compiled :: :: events: list of events to feed our urbit :: ~& %loading =+ events=main-events ~& [%loaded `@p`(mug events)] :: :: execute events :: =+ number=0 |- ^- * ?~ events arvo-kernel ~& number+number %= $ events t.events number +(number) arvo-kernel .*(arvo-kernel(+< i.events) -.arvo-kernel) == :: ++ main-events =. now ~2017.3.1 =+ mov=main-moves |- ^- (list (pair @da ovum)) ?~ mov ~ :- [now i.mov] $(mov t.mov, now (add now (bex 48))) :: ++ main-moves ^- (list ovum) :~ [[%$ ~] [%what boot-files]] :: [[%$ ~] [%whom ~zod]] == ++ boot-files ^- (list (pair path (pair term noun))) :: :: userspace: :: :: /app %gall applications :: /gen :dojo generators :: /lib %ford libraries :: /mar %ford marks :: /sur %ford structures :: /ren %ford renderers :: /web %eyre web content :: /sys system files :: /neo new system files :: (user-files /neo ~) :: ++ user-files :: userspace loading |= :: sal: all spurs to load from :: sal/(list spur) ^- (list (pair path (pair term noun))) :: :: hav: all user files :: =| hav/(list (pair path (pair term noun))) |- ^+ hav ?~ sal ~ =. hav $(sal t.sal) :: :: tyl: spur :: =/ tyl i.sal |- ^+ hav :: :: pax: full path at `tyl` :: lon: directory at `tyl` :: =/ pax (en-beam:format bec tyl) =/ lon .^(arch %cy pax) =? hav ?=(^ fil.lon) :: :: install only hoon files for now :: ?. ?=({$hoon *} tyl) hav :_(hav [(flop `path`t.tyl) [%hoon .^(@t %cx pax)]]) :: =/ all ~(tap by dir.lon) |- ^+ hav ?~ all hav $(all t.all, hav ^$(tyl [p.i.all tyl])) --