Conversation
|
Looks good in outline, but I will leave some review comments in due course. I've had a lot of trouble with my ocamllsp setup involving the need to use a new merlin with the current system, so I will try running with this patch for a few days. @lukemaurer Perhaps you could try rebasing your coverage PR onto this one. |
Probably best to wait until this is in; #352 is going to have to change significantly in the rebase, and anything that changes here is likely to have fiddly ripple effects. I can say that this supersedes #361 (by a wide margin), since it never runs |
|
With this PR, what version of |
Currently, it's the same version as needed currently. (I'd quite like to be able to build with standard Dune, though. I'll have a look and see whether the patches are still needed) |
4649799 to
ddd238e
Compare
|
I still have some hacking to do on the macos CI run, but this is ready to go once CI passes. I verified that it installs the same files as the current build, in the same places. The only differences are:
|
b049032 to
213d953
Compare
454150b flambda-backend: Speed up testsuite (#658) 8362f9e flambda-backend: Speed up builds (#585) a527cab flambda-backend: Update backends for changes from ocaml-jst ce88833 Merge flambda-backend changes b7506bb Revert "Cherry-pick of ocaml/ocaml 1eeb0e7fe595f5f9e1ea1edbdf785ff3b49feeeb (#12)" 183f688 Add config option to enable/disable stack allocation (#22) ee7c849 If both the type and mode of an ident are wrong, complain about the type. (#19) 44bade0 Allow submoding during module inclusion checks (#21) de3bec9 Add subtyping between arrows of related modes (#20) fe8a98b flambda-backend: Save Mach as Cfg after Selection (#624) 2b205d8 flambda-backend: Clean up algorithms (#611) 93d8615 Enable the local keywords even when the local extension is off (#18) 524f0b4 flambda-backend: Initial refactoring of To_cmm (#619) 81dd85e Documentation for local allocations b05519f Fix a GC bug in local stack scanning (#17) 9f879de Fix __FUNCTION__ (#15) 0bf75de flambda-backend: Refactor and correct the "is pure" and "can raise" (port upstream PR#10354 and PR#10387) (#555) d234bfd flambda-backend: Cpp mangling is now a configuration option (#614) 20fc614 flambda-backend: Check that stack frames are not too large (#10085) (#561) 5fc2e95 flambda-backend: Allow CSE of immutable loads across stores (port upstream PR#9562) (#562) 2a650de flambda-backend: Backport commit fc95347 from trunk (#584) a78975e Optimise "include struct ... end" in more cases (ocaml/ocaml#11134) b819c66 Cherry-pick of ocaml/ocaml 1eeb0e7fe595f5f9e1ea1edbdf785ff3b49feeeb (#12) bb363d4 Optimise the allocation of optional arguments (#11) 31651b8 flambda-backend: Improved ARM64 code generation (port upstream PR#9937) (#556) f0b6d68 flambda-backend: Simplify processing and remove dead code (error paths) in asmlink (port upstream PR#9943) (#557) 90c6746 flambda-backend: Improve code-generation for inlined comparisons (port upstream PR#10228) (#563) git-subtree-dir: ocaml git-subtree-split: 454150b
454150b flambda-backend: Speed up testsuite (oxcaml#658) 8362f9e flambda-backend: Speed up builds (oxcaml#585) a527cab flambda-backend: Update backends for changes from ocaml-jst git-subtree-dir: ocaml git-subtree-split: 454150b
This patch started life as an attempt to remove some of the redundancy in the flambda-backend build, which currently builds most targets three times. It grew to the point where I ended up rewriting the Makefile completely, with the following properties:
PATH(stock OPAM or flambda-backend builds will do)The major change is that the build no longer does the
stage0/stage1/stage2process of building the compiler and supporting tools three times. Instead, a pre-installed OCaml 4.12 compiler is used instead of stage0, and then the build proceeds using three dune workspaces:The installed artifacts are those build as part of runtime_stdlib and main. Note that the runtime and stdlib are only built once, and the bytecode is never used (instead, we use a .opt compiler from stock OCaml).
There are three commits in this patch:
The major changes are to
Makefile.in. There are also identical small changes to everydunefile, as it is no longer necessary to explicitly link againststdlib.Still left to do:
make installinstalls the same stuffHACKING