I managed to build camlboot and ocaml@4.07 with your patches. > Would be fantastic if you could report build time for camlboot > too :). Build time (on a quad-core i7 laptop): ``` $ time ./pre-inst-env guix build camlboot --no-offload . . . successfully built /gnu/store/ddi5n28hsrgvb89r8vjs0rfvapxfbaj2-camlboot-0.0.0-0.506280c.drv /gnu/store/79bqayhrc6qfr2k7pfk7fn6lim0f8cfx-camlboot-0.0.0-0.506280c real 322m35.119s user 0m1.523s sys 0m0.140s ``` ocaml@4.07 with your patches applied: ``` $ time ./pre-inst-env guix build ocaml@4.07 --no-offload successfully built /gnu/store/sdxybpxzjhib5ijn3fx3r29ycp5vvafd-ocaml-4.07.1.drv /gnu/store/cniid9xi3dck7kdpfm77h56h1s0701fm-ocaml-4.07.1 real 17m52.923s user 0m9.268s sys 0m1.013s ``` ocaml@4.07 at master: ``` $ time ./pre-inst-env guix build ocaml@4.07 --no-offload --check successfully built /gnu/store/v599h0bhpyh2rq4nrnqqf56lwbsf0f71-ocaml-4.07.1.drv successfully built /gnu/store/v599h0bhpyh2rq4nrnqqf56lwbsf0f71-ocaml-4.07.1.drv /gnu/store/s7j0vl88zakkdcyvw1jw8cypfzi6ljnd-ocaml-4.07.1 real 21m44.000s user 0m14.546s sys 0m1.217s ``` > The result should be almost identical to our current ocaml-4.07, > though there are some due to different output directory being > embedded. Checked some random files in both ocaml's with diffoscope and can confirm that differences seem to be mostly different output directories. Haven't run diffoscope on everything as that would take quite some time... -pukkamustard >> >>Fantastic! Thank you and thanks to the camlboot project! I will >>try and >>build this tonight. >> >>Julien Lepiller writes: >> >>> Hi Guix! >>> >>> This small series adds camlboot, a project to reimplement a >>> bootstrap >>> for OCaml, which lets us remove the pre-built >>> boot/ocaml{c,lex} >>> :) >>> >>> The first patch builds the bootstraped ocamlc and ocamllex. >>> This >>> takes >>> around 4 hours to build. The second patch rebuilds them using >>> the source >>> code for ocaml 4.07.1, instead of the modified sources used in >>> camlboot, and reuse them to run the main Makefile (make >>> world.opt). >>> >>> As a result, we have identical files for this bootstrap and >>> the >>> unbootstrapped OCaml (up to output store paths and hash of >>> some >>> files >>> that get embedded in native files, which differ because of the >>> different output path).