builder.hoon 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. /* hoon-138-hoon %hoon /lib/hoon-138/hoon
  2. /* wrapper-hoon %hoon /lib/wrapper/hoon
  3. /* kernel-hoon %hoon /lib/kernel/hoon
  4. !.
  5. ::
  6. :: Bootstrap builder: to build the bootstrap formula for Choo using
  7. :: Urbit Ford
  8. ::
  9. :: sync files into a desk %choo
  10. :: dojo> =choo -build-file /=choo=/lib/builder/hoon
  11. :: dojo> .choo/jam choo
  12. ::
  13. :: copy <your-fakezod>/.urb/put/choo.jam to choo/bootstrap/choo.jam
  14. ^- *
  15. ~& "compiling hoon"
  16. =/ hoon-knob=[t=type form=nock]
  17. ~> %bout
  18. (~(mint ut %noun) %noun (ream hoon-138-hoon))
  19. ~& "compiling wrapper"
  20. =/ wrapper-knob=[t=type form=nock]
  21. ~> %bout
  22. (~(mint ut t.hoon-knob) %noun (ream wrapper-hoon))
  23. ~& "compiling kernel"
  24. =/ kernel-knob=[t=type form=nock]
  25. ~> %bout
  26. (~(mint ut t.wrapper-knob) %noun (rain /lib/choo/kernel/hoon kernel-hoon))
  27. =/ trap-nock=nock
  28. [%7 [%7 form.hoon-knob form.wrapper-knob] form.kernel-knob]
  29. ~& %built-trap-nock
  30. trap-nock
  31. :: TODO: use this once we can execute trap in NockApp
  32. ::=> [trap=trap-nock hash=(mug trap-nock)]
  33. ::|. .*([.*(0 trap) hash] [%9 2 %10 [6 %0 3] %0 2])