Fix bad interaction between env stanza and vendored projects#1408
Fix bad interaction between env stanza and vendored projects#14083 commits merged intomasterfrom unknown repository
Conversation
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
|
@avsm - I have a feeling this may break the platform build, or at least its propagation of warnings flags? |
|
Yeah, we are using the toplevel |
|
I suppose we could add a way to make it clear that the default will cross-project boundaries, such as a |
|
In the meantime, this PR fixes an inconsistency between projects that have a top-level env stanzas and those that don't, so it should be merged. |
|
yes agree this should be merged -- however it would be good to highlight the change in backwards compatibility prominently as it could cause surprising side-effects as vendored projects shift to using |
|
I opened #1419 to discuss alternative possibilities. |
CHANGES: - Do not fail if the output of `ocamlc -config` doesn't include `standard_runtime` (ocaml/dune#1326, @diml) - Let `Configurator.V1.C_define.import` handle negative integers (ocaml/dune#1334, @Chris00) - Re-execute actions when a target is modified by the user inside `_build` (ocaml/dune#1343, fix ocaml/dune#1342, @diml) - Pass `--set-switch` to opam (ocaml/dune#1341, fix ocaml/dune#1337, @diml) - Fix bad interaction between multi-directory libraries the `menhir` stanza (ocaml/dune#1373, fix ocaml/dune#1372, @diml) - Integration with automatic formatters (ocaml/dune#1252, fix ocaml/dune#1201, @emillon) - Better error message when using `(self_build_stubs_archive ...)` and `(c_names ...)` or `(cxx_names ...)` simultaneously. (ocaml/dune#1375, fix ocaml/dune#1306, @nojb) - Improve name detection for packages when the prefix isn't an actual package (ocaml/dune#1361, fix ocaml/dune#1360, @rgrinberg) - Support for new menhir rules (ocaml/dune#863, fix ocaml/dune#305, @fpottier, @rgrinberg) - Do not remove flags when compiling compatibility modules for wrapped mode (ocaml/dune#1382, fix ocaml/dune#1364, @rgrinberg) - Fix reason support when using `staged_pps` (ocaml/dune#1384, @charlesetc) - Add support for `enabled_if` in `rule`, `menhir`, `ocamllex`, `ocamlyacc` (ocaml/dune#1387, @diml) - Exit gracefully when a signal is received (ocaml/dune#1366, @diml) - Load all defined libraries recursively into utop (ocaml/dune#1384, fix ocaml/dune#1344, @rgrinberg) - Allow to use libraries `bytes`, `result` and `uchar` without `findlib` installed (ocaml/dune#1391, @nojb) - Take argument to self_build_stubs_archive into account. (ocaml/dune#1395, @nojb) - Fix bad interaction between `env` customization and vendored projects: when a vendored project didn't have its own `env` stanza, the `env` stanza from the enclosing project was in effect (ocaml/dune#1408, @diml) - Fix stop early bug when scanning for watermarks (ocaml/dune#1423, @diml)
When a vendored project didn't have its own
envstanza, theenvstanza from the enclosing project was in effect. This patch fixes this.I added a test for this case in the
envtest and also refactored a bit to make it easier to understand. The patch also moves the filling of the env table inSuper_context.tfromSuper_context.createtoSuper_context.Env.get. The code is a bit more straightforward and lazy this way.