Parallel builds of the ocaml compiler


#1

Rebuilding ocaml itself seems to be fairly slow on my machine because it doesn’t run a parallel build. Is it okay to do “make -j 4 world.opt” and the like, or is that unsupported? INSTALL.adoc is silent on the matter. Similarly is using parallel make supported for the manual?


#2

Parallel builds are known to work well from a clean state (after make clean or make partialclean), but known to be somewhat flaky when used incrementally. I don’t think there is any shared knowledge on the status of parallel build for the manual, your experience reports are welcome.


#3

I did add some precautions to make sure that parallel builds would work correctly while cleaning up the manual’s makefiles, and I tried building it with make -j 4 a few times, so I think it should work reliably.


#4

It would be interesting to figure out why. Regardless, we should probably document that they work correctly if the system starts from a clean state.


#5

When installing a new opam switch, does the compiler get built in parallel? If not, I would vote for enabling that to save everyone some time…


#6

Although it seems to be poorly documented (and that should be fixed!), the .opam/config file defines a jobs: parameter, and it appears (though I can’t quickly confirm) that opam init sets it appropriately for your system.


#7

Even though it’s available in opam files I don’t think you should use that parameter for your build system. IIRC that variable is the maximal number of packages opam itself will build in parallel (dependency order allowing).


#8

Ah, that is indeed somewhat different.