Parallelise building dynlink_compilerlibs
#3250
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This performs two weird tricks that together knock ~30 seconds off the build time in dev mode and ~40 seconds outside dev mode:
To build
dynlink_compilerlibs
, copy bothparser.ml
andparser.mli
from the main compiler source rather than justparser.ml
. Copying justparser.ml
means that the native build depends on the .cmi produced by the bytecode build.Explicitly add the .cma and .cmxa files for
dynlink
andflambda2_from_lambda
to theinstall
alias. It's not clear why this helps, but it appears that Dune is being excessively lazy in discovering installable targets, waiting untilocamlcommon
is built before it even considers any targets in these libraries, including those that don't depend onocamlcommon
(and take quite a while to build). Redundantly adding targets toinstall
seems to be the nudge Dune needs.