
#12653: reexported-modules sometimes gets mangled, causes problems for bootstrap -------------------------------------+------------------------------------- Reporter: ezyang | Owner: Type: bug | Status: new Priority: highest | Milestone: 8.0.2 Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- There is a pretty bad bug in Cabal 1.24's support for reexported modules (https://github.com/haskell/cabal/pull/3906) which means that, under some circumstances, Cabal library will output `reexported-modules` in a form that ghc-pkg will misinterpret. The particular instance I've seen is GHC's build system incorrectly concluding that GHC.Lexeme is provided by ghc- boot rather than ghc-boot-th (because the reexport wasn't parsed correctly). It does not actually seem possible to work around this given a GHC 8.0.1 bootstrap, because we need to register ghc-boot using the bootstrapping ghc-pkg, which will output the package configuration in mangled form. So my advice is: 1. Fix this bug for GHC 8.0.2, so that at least 8.0.2 bootstrap will work even if we have reexported modules in the bootstrap libraries 2. Stop using reexports in ghc-boot; they're not being used for any good reason and will help avoid the bug. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12653 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler