Semantic Diff
#9090 Fix dev module shadowing
3 commits
cd641cbc06120a7d0a0a62776a3301e536cae415..pr-9090
Compile namespace entries against the public namespace
Fix the review finding where a namespace entry compiled against dev aliases produced an interface incompatible with the exported namespace. Keep the internal namespace first for ordinary modules, and cover entry consumers with a clean and incremental build.
Isolate dependency dev namespaces in OCaml rewatch
Why
Dependency dev aliases can shadow local test modules after opening a dependency namespace. Match the Rust fix while keeping namespace-entry interfaces compatible with the namespace exported to consumers.
modifiedRepresentation namespace interfaces
text
Before
After
Local modules and consumers use the same namespace, including dev aliases. Ordinary local modules use the full namespace in lib/bs.Consumers and namespace entries use the filtered namespace in lib/ocaml.
Preserve internal namespace invalidation across publication failures. Add include-precedence assertions and a changelog fragment. Validation passed: 48 OCaml unit tests and the full shared build-system suite, including the dev-module and namespace-entry regressions.