-
Notifications
You must be signed in to change notification settings - Fork 401
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
Protect sites names against reserved keywords #4219
Comments
Thank you a lot for the report. I don't know how to accept those name for sites, and have a predictable value name in the generated module. We can add an underscore at the end: So possible Fix1:
|
What about suffixing all sites variable by eg., |
What about changing the api to be: val get : string -> site and the generated code to be: let sites =
[ "name", Dune_site.Private_.Helpers.site ..
; ..
] You can keep aliases for site names that are valid identifiers for backwards compatibility as well. |
Seems good! |
By doing so we replace a compile-time error into an error at execution if the site doesn't exists.
It is not a problem, site is an experimental feature and 3.0 is coming.
I prefer that. Another possibility is that module name have less limitations (no keyword capitalized). So |
Ah yes, that's right. |
One could also have a rule like this: So "foo" => "foo" the advantages are that it is injective while continuing the pattern @bobot proposed in FIX1. Underscore at the beginning has an additional meaning of "suppress unused variable warning", so I slightly prefer if that's avoided. One could consider unconditionally adding "_site" at the end if we're looking for a user-friendly uniform mapping. (please take all that with a grain of salt because I know nothing about sites and how their names are to be used) |
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes #4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
a name matching "$ocaml_keyword_*" is converted into name^"_" Fixes ocaml#4219 Signed-off-by: François Bobot <francois.bobot@cea.fr>
…ator, dune-private-libs, dune and dune-build-info (2.9.0) CHANGES: - Add `(enabled_if ...)` to `(mdx ...)` (ocaml/dune#4434, @emillon) - Add support for instrumentation dependencies (ocaml/dune#4210, fixes ocaml/dune#3983, @nojb) - Add the possibility to use `locks` with the cram tests stanza (ocaml/dune#4480, @voodoos) - Allow to set up merlin in a variant of the default context (ocaml/dune#4145, @TheLortex, @voodoos) - Add `(package ...)` to `(mdx ...)` (ocaml/dune#4691, fixes ocaml/dune#3756, @emillon) - Handle renaming of `coq.kernel` library to `coq-core.kernel` in Coq 8.14 (ocaml/dune#4713, @proux01) - Fix generation of merlin configuration when using `(include_subdirs unqualified)` on Windows (ocaml/dune#4745, @nojb) - Fix bug for the install of Coq native files when using `(include_subdirs qualified)` (ocaml/dune#4753, @ejgallego) - Allow users to specify install target directories for `doc` and `etc` sections. We add new options `--docdir` and `--etcdir` to both Dune's configure and `dune install` command. (ocaml/dune#4744, fixes ocaml/dune#4723, @ejgallego, thanks to @JasonGross for reporting this issue) - Fix issue where Dune would ignore `(env ... (coq (flags ...)))` declarations appearing in `dune` files (ocaml/dune#4749, fixes ocaml/dune#4566, @ejgallego @rgrinberg) - Disable some warnings on Coq 8.14 and `(lang coq (>= 0.3))` due to the rework of the Coq "native" compilation system (ocaml/dune#4760, @ejgallego) - Fix a bug where instrumentation flags would be added even if the instrumentatation was disabled (@nojb, ocaml/dune#4770) - Fix ocaml/dune#4682: option `-p` takes now precedence on environement variable `DUNE_PROFILE` (ocaml/dune#4730, ocaml/dune#4774, @bobot, reported by @dra27 ocaml/dune#4632) - Fix installation with opam of package with dune sites. The `.install` file is now produced by a local `dune install` during the build phase (ocaml/dune#4730, ocaml/dune#4645, @bobot, reported by @kit-ty-kate ocaml/dune#4198) - Fix multiple issues in the sites feature (ocaml/dune#4730, ocaml/dune#4645 @bobot, reported by @Lelio-Brun ocaml/dune#4219, by @Kakadu ocaml/dune#4325, by @toots ocaml/dune#4415)
…ator, dune-private-libs, dune and dune-build-info (2.9.0) CHANGES: - Add `(enabled_if ...)` to `(mdx ...)` (ocaml/dune#4434, @emillon) - Add support for instrumentation dependencies (ocaml/dune#4210, fixes ocaml/dune#3983, @nojb) - Add the possibility to use `locks` with the cram tests stanza (ocaml/dune#4480, @voodoos) - Allow to set up merlin in a variant of the default context (ocaml/dune#4145, @TheLortex, @voodoos) - Add `(package ...)` to `(mdx ...)` (ocaml/dune#4691, fixes ocaml/dune#3756, @emillon) - Handle renaming of `coq.kernel` library to `coq-core.kernel` in Coq 8.14 (ocaml/dune#4713, @proux01) - Fix generation of merlin configuration when using `(include_subdirs unqualified)` on Windows (ocaml/dune#4745, @nojb) - Fix bug for the install of Coq native files when using `(include_subdirs qualified)` (ocaml/dune#4753, @ejgallego) - Allow users to specify install target directories for `doc` and `etc` sections. We add new options `--docdir` and `--etcdir` to both Dune's configure and `dune install` command. (ocaml/dune#4744, fixes ocaml/dune#4723, @ejgallego, thanks to @JasonGross for reporting this issue) - Fix issue where Dune would ignore `(env ... (coq (flags ...)))` declarations appearing in `dune` files (ocaml/dune#4749, fixes ocaml/dune#4566, @ejgallego @rgrinberg) - Disable some warnings on Coq 8.14 and `(lang coq (>= 0.3))` due to the rework of the Coq "native" compilation system (ocaml/dune#4760, @ejgallego) - Fix a bug where instrumentation flags would be added even if the instrumentatation was disabled (@nojb, ocaml/dune#4770) - Fix ocaml/dune#4682: option `-p` takes now precedence on environement variable `DUNE_PROFILE` (ocaml/dune#4730, ocaml/dune#4774, @bobot, reported by @dra27 ocaml/dune#4632) - Fix installation with opam of package with dune sites. The `.install` file is now produced by a local `dune install` during the build phase (ocaml/dune#4730, ocaml/dune#4645, @bobot, reported by @kit-ty-kate ocaml/dune#4198) - Fix multiple issues in the sites feature (ocaml/dune#4730, ocaml/dune#4645 @bobot, reported by @Lelio-Brun ocaml/dune#4219, by @Kakadu ocaml/dune#4325, by @toots ocaml/dune#4415)
Expected Behavior
Compilation success.
Actual Behavior
Compilation error.
Reproduction
dune-project
:dune
:dune build
generates and tries to build the followingSites.ml
:Specifications
dune
(output ofdune --version
): 2.8.2ocaml
(output ofocamlc --version
): 4.11.1The text was updated successfully, but these errors were encountered: