Conversation
3c3054f to
0442ff6
Compare
|
dune 3.23.1 will hopefully restore compatibility with ocaml 4.13. See ocaml/dune#14443 |
4ee0d13 to
7c38303
Compare
|
Can this be merged ? |
I think it is ready. But I'm wondering whether this should go in Js_of_ocaml 9.4. Maybe I can make a separate PR with just the last commit, which ensures a consistent behavior with all versions of dune? |
I don't understand what you mean. With this PR, one now depend on dune.3.23.1. |
|
We don't really need dune 3.23.1 for the next release. So, maybe we should wait a bit before merging this PR? |
I see what you mean. Changes in this PR are about |
|
@vouillon, should we push the other commits now ? (gen-rules + updated deps in tests) |
102d7c0 to
20acd27
Compare
Dune 3.23 forces sandboxing on user rules, so gen.exe runs from _build/.sandbox/<hash>/default/<dir> instead of the project tree. The previous prefix walker (stop when parent ends with _build) then yielded <hash>/default/<dir>/, which both shows up in the generated ;; comment and shifts the Hashtbl.hash-based name suffix, making the runtest diff against the checked-in dune.inc fail. Take the project-relative directory as argv.(1) (replacing the previously unused library-name argument) so the prefix is stable regardless of where dune runs the action.
The current release of ocaml-dune-lint is not compatible with dune 3.23.
Under dune 3.23 sandboxing, rules that run a *.bc.wasm.js file also need to depend on the companion *.bc.wasm.assets/ directory so that the .wasm files are copied into the sandbox.
Under dune 3.23 sandboxing, rules invoking js_of_ocaml or wasm_of_ocaml with --toplevel need their .cmi files brought into the sandbox. For locally built cmis, declare them as deps. For library cmis, add a cmi_include_dirs.txt rule (mirroring the existing one for toplevel.bc) that uses ocamlfind to produce -I flags, and pass the result via read-strings.
Under dune 3.23 sandboxing, wc.ml needs to be brought into the
sandbox. Inline the dep with %{dep:wc.ml} on the command line.
It uses `js_of_ocaml --build-config` to manage config details.
oxcaml-dune-patches pins dune <= 3.21, but the project requires dune >= 3.23. opam re-checks dependency constraints on every install, so a one-shot --ignore-constraints-on=dune flag isn't enough. Re-pin the package with the dune version constraint stripped, so subsequent installs let dune resolve to 3.23.x normally.
It uses
js_of_ocaml --build-configto manage config details.Blocked on: