nixpkgs/pkgs/development/compilers/ocaml
Sergei Trofimovich 238d634e4b ocaml: enable parallel building
Enable parallel building for ocaml-4.08 and above. tested as:

    $ nix build -f. ocaml-ng.ocamlPackages_{4_{00_1,01_0,02,03,04,05,06,07,08,09,10,11,12,13},latest}.ocaml --keep-going

ocaml build system supports parallel building, but but for multiple
top-level targets at the same time as it usually spawns subprocess
$(MAKE) that occasionally conflict with one another. To work it around
we use tiny Makefile with a single rule that calls top-level targets
sequentially as makefile calls:

    nixpkgs_world_bootstrap_world_opt:
       $(MAKE) world
       $(MAKE) bootstrap
       $(MAKE) world.opt

On a 16-core machine ocaml-4.12 build speeds up from 6m55s to 1m35s.

Releases 4_00_1, 4_01_0, 4_04 and 4_05 still have some race in them.
Thus this change enables parallel builds only for ocaml-4.06 and above.

Adapted from #142723

upstreams's CI tests the parallel makefile: https://github.com/ocaml/ocaml/issues/10235#issuecomment-782100584
The limit was chosen to be 4.08 because it was released in 2019, not too
long before the above link.
2022-02-27 12:00:00 +00:00
..
4.00.1.nix pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
4.01.0.nix
4.02.nix
4.03.nix
4.04.nix
4.05.nix
4.06.nix
4.07.nix
4.08.nix
4.09.nix
4.10.nix ocamlPackages.ocaml: 4.10.0 -> 4.10.2 2021-02-26 20:27:13 -08:00
4.11.nix ocaml-ng.ocamlPackages_4_11.ocaml: 4.11.1 → 4.11.2 2021-03-03 18:05:12 +01:00
4.12.nix OCaml 4.12.--beta1 -> 4.12.0 2021-02-25 21:25:10 +01:00
4.13.nix ocaml-ng.ocamlPackages_4_13.ocaml: 4.13.0 → 4.13.1 2021-10-11 16:01:29 +02:00
ber-metaocaml.nix pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
builder.sh
configure-3.08.0
fix-clang-build-on-osx.diff
generic.nix ocaml: enable parallel building 2022-02-27 12:00:00 +00:00
gnused-on-osx-fix.patch
Makefile.nixpkgs ocaml: enable parallel building 2022-02-27 12:00:00 +00:00
metaocaml-3.09.nix pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
mips64.patch
ocamlbuild.patch