-
Notifications
You must be signed in to change notification settings - Fork 409
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
Do not automatically add the .opt suffix when calling binaries #3051
Do not automatically add the .opt suffix when calling binaries #3051
Conversation
I thought we had fixed this in #2543 |
There are two ways to fix this:
|
I forgot to mention this but I'm using dune master (the same issue appears in dune 2.1.2)
Doesn't the bash method also bring the same issue than the original |
But have things changed again since the merging of #2543 ? That PR was actually motivated by this issue with |
Apparently |
I re-read the diff and I don't see where this was fixed. From what I can tell, the .opt detection was moved to |
I thought |
I guess we can fix this and introduce a private |
That seems good to me. Let's look for |
@kit-ty-kate do you have time to update the PR? Otherwise I can take care of it. |
a414dc8
to
126d2df
Compare
@rgrinberg I updated the PR against master |
Signed-off-by: Rudi Grinberg <[email protected]>
8d9913f
to
4cd24a6
Compare
@kit-ty-kate I meant updating the PR so that .opt detection is limited to internal tools. In any case, I updated the PR myself. Thanks to all! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Me too! |
…lugin, dune-private-libs and dune-glob (2.2.0) CHANGES: - `dune test` is now a command alias for `dune runtest`. This is to make the CLI less idiosyncratic (ocaml/dune#3006, @shonfeder) - Allow to set menhir flags in the `env` stanza using the `menhir_flags` field. (ocaml/dune#2960, fix ocaml/dune#2924, @bschommer) - By default, do not show the full command line of commands executed by `dune` when `dune` is executed inside `dune`. This is to make integration tests more reproducible (ocaml/dune#3042, @diml) - `dune subst` now works even without opam files (ocaml/dune#2955, fixes ocaml/dune#2910, @fangyi-zhou and @diml) - Hint when trying to execute an executable defined in the current directory without using the `./` prefix (ocaml/dune#3041, fixes ocaml/dune#1094, @voodoos). - Extend the list of modifiers that can be nested under `with-accepted-exit-codes` with `chdir`, `setenv`, `ignore-<outputs>`, `with-stdin-from` and `with-<outputs>-to` (ocaml/dune#3027, fixes ocaml/dune#3014, @voodoos) - It is now an error to have a preprocessing dependency on a ppx rewriter library that is not marked as `(kind ppx_rewriter)` (ocaml/dune#3039, @snowleopard). - Fix permissions of files promoted to the source tree when using the shared cache. In particular, make them writable by the user (ocaml/dune#3043, fixes ocaml/dune#3026, @diml) - Only detect internal OCaml tools with `.opt` extensions. Previously, this detection applied to other binaries as well (@kit-ty-kate, @rgrinberg, ocaml/dune#3051). - Give the user a proper error message when they try to promote into a source directory that doesn't exist. (ocaml/dune#3073, fix ocaml/dune#3069, @rgrinberg) - Correctly build vendored packages in `-p` mode. These packages were incorrectly filtered out before. (ocaml/dune#3705, @diml) - Do not install vendored packages (ocaml/dune#3704, @diml) - `make` now prints a message explaining the main targets available (ocaml/dune#3085, fix ocaml/dune#3078, @diml) - Add a `byte_complete` executable mode to build programs as self-contained bytecode programs (ocaml/dune#3076, fixes ocaml/dune#1519, @diml)
…lugin, dune-private-libs and dune-glob (2.2.0) CHANGES: - `dune test` is now a command alias for `dune runtest`. This is to make the CLI less idiosyncratic (ocaml/dune#3006, @shonfeder) - Allow to set menhir flags in the `env` stanza using the `menhir_flags` field. (ocaml/dune#2960, fix ocaml/dune#2924, @bschommer) - By default, do not show the full command line of commands executed by `dune` when `dune` is executed inside `dune`. This is to make integration tests more reproducible (ocaml/dune#3042, @diml) - `dune subst` now works even without opam files (ocaml/dune#2955, fixes ocaml/dune#2910, @fangyi-zhou and @diml) - Hint when trying to execute an executable defined in the current directory without using the `./` prefix (ocaml/dune#3041, fixes ocaml/dune#1094, @voodoos). - Extend the list of modifiers that can be nested under `with-accepted-exit-codes` with `chdir`, `setenv`, `ignore-<outputs>`, `with-stdin-from` and `with-<outputs>-to` (ocaml/dune#3027, fixes ocaml/dune#3014, @voodoos) - It is now an error to have a preprocessing dependency on a ppx rewriter library that is not marked as `(kind ppx_rewriter)` (ocaml/dune#3039, @snowleopard). - Fix permissions of files promoted to the source tree when using the shared cache. In particular, make them writable by the user (ocaml/dune#3043, fixes ocaml/dune#3026, @diml) - Only detect internal OCaml tools with `.opt` extensions. Previously, this detection applied to other binaries as well (@kit-ty-kate, @rgrinberg, ocaml/dune#3051). - Give the user a proper error message when they try to promote into a source directory that doesn't exist. (ocaml/dune#3073, fix ocaml/dune#3069, @rgrinberg) - Correctly build vendored packages in `-p` mode. These packages were incorrectly filtered out before. (ocaml/dune#3705, @diml) - Do not install vendored packages (ocaml/dune#3704, @diml) - `make` now prints a message explaining the main targets available (ocaml/dune#3085, fix ocaml/dune#3078, @diml) - Add a `byte_complete` executable mode to build programs as self-contained bytecode programs (ocaml/dune#3076, fixes ocaml/dune#1519, @diml)
When I tried to fix
elpi
regarding #3050, I switch the use of the(system "camlp5o ...")
function to(run camlp5o ...)
but the following error message appeared:Since camlp5 installs binaries with the
.opt
suffix, dune automatically uses them, however the semantics is a bit different than the ones in the ocaml compiler this feature was used for.I believe this is safe anyway because since OCaml 4.04 the ocaml executables are native by default. See https://github.com/ocaml/ocaml/blob/646d30404e6b5fa0d49aea3860cbf4efe3910601/Changes#L4316