Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modules opened in the wrong order? #1900

Open
vouillon opened this issue Feb 21, 2025 · 4 comments · Fixed by ocaml/dune#11503
Open

Modules opened in the wrong order? #1900

vouillon opened this issue Feb 21, 2025 · 4 comments · Fixed by ocaml/dune#11503
Assignees
Labels

Comments

@vouillon
Copy link
Member

I get an error when I edit file link.ml even though Dune compiles it just fine.
Image

When compiling the library Wasm_of_ocaml_compiler which contains this file, I also open the library Js_of_ocaml_compiler. Both libraries contain a file generate.ml.

(library
 (name wasm_of_ocaml_compiler)
 (libraries js_of_ocaml_compiler)
 (flags
  (:standard -w -7-37 -safe-string -open Js_of_ocaml_compiler))
[...]

I suspect what happens is that merlin and dune do not perform the opens in the same order.

Adding an explicit open flag, even in the wrong order, seems to work around the issue.

 (flags
  (:standard -w -7-37 -safe-string -open Wasm_of_ocaml_compiler -open Js_of_ocaml_compiler))

I have taken a dump of the configuration.

@voodoos
Copy link
Collaborator

voodoos commented Feb 24, 2025

Thanks for the report Jérôme. That's indeed very suspicious.
I will try to find some time to investigate, meanwhile, do you think you could craft a smaller reproduction ?

@vouillon
Copy link
Member Author

  1. unzip merlin-bug.zip
  2. cd merlin-bug
  3. dune exec -- ./main.exe
  4. Open main.ml in your editor
    Image

voodoos added a commit to voodoos/dune that referenced this issue Feb 25, 2025
voodoos added a commit to voodoos/dune that referenced this issue Feb 25, 2025
voodoos added a commit to voodoos/merlin that referenced this issue Feb 25, 2025
voodoos added a commit to voodoos/merlin that referenced this issue Feb 25, 2025
@voodoos
Copy link
Collaborator

voodoos commented Feb 25, 2025

Thanks a lot, I added your example to the testsuite and proposed a change in Dune. The ordering is indeed wrong in the generated configuration. (but not in Merlin's treatment of the ordering)

@voodoos voodoos self-assigned this Feb 25, 2025
@vouillon
Copy link
Member Author

Thanks !

voodoos added a commit to voodoos/dune that referenced this issue Feb 27, 2025
voodoos added a commit to voodoos/dune that referenced this issue Feb 27, 2025
voodoos added a commit to voodoos/dune that referenced this issue Feb 27, 2025
Leonidas-from-XIV pushed a commit to voodoos/dune that referenced this issue Feb 28, 2025
Leonidas-from-XIV pushed a commit to ocaml/dune that referenced this issue Feb 28, 2025
* Preserve flags ordering in Merlin configuration files.

Fixes ocaml/merlin#1900

Signed-off-by: Ulysse Gérard <[email protected]>

* Promote expected changes in the testsuite

Signed-off-by: Ulysse Gérard <[email protected]>

* Make flag treatment clearer

Signed-off-by: Ulysse Gérard <[email protected]>

* Add changelog entry for #11503

Signed-off-by: Ulysse Gérard <[email protected]>

* Use dedicated filter opt function

Signed-off-by: Ulysse Gérard <[email protected]>

---------

Signed-off-by: Ulysse Gérard <[email protected]>
voodoos added a commit to voodoos/merlin that referenced this issue Feb 28, 2025
voodoos added a commit to voodoos/merlin that referenced this issue Mar 3, 2025
voodoos added a commit that referenced this issue Mar 3, 2025
Co-authored-by: Jerome.Vouillon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants