Refactor the core component building logic
1. Refactors the duplicated `buildExtraSources` function from `gbuild` and `buildOrReplLib` into a standalone monadic computation in the context of building a component. This refactor allows us to share the code for building an extra source amongst the two functions. 2. Creates a new module Distribution.Simple.GHC.Build.Modules which, in the same spirit as ...GHC.Build.ExtraModules, defines an action which builds all the Haskell modules of the component being built. This function clarifies and re-implements the logic of building Haskell modules in the different possible ways, while accounting for Template Haskell special "way requirements", which was previously duplicated in a non-obvious manner in gbuild and buildOrReplLib. The Note [Building Haskell modules accounting for TH] in that module explains the big picture, and the implementation is re-done in light of it. 3. Re-work the linker invocations, focusing on preserving existing behaviour before simplifying or fixing bugs any further. Fixes #9389.
Showing
- Cabal/Cabal.cabal 5 additions, 2 deletionsCabal/Cabal.cabal
- Cabal/src/Distribution/Simple/Build.hs 53 additions, 50 deletionsCabal/src/Distribution/Simple/Build.hs
- Cabal/src/Distribution/Simple/Build/Inputs.hs 74 additions, 0 deletionsCabal/src/Distribution/Simple/Build/Inputs.hs
- Cabal/src/Distribution/Simple/GHC.hs 32 additions, 42 deletionsCabal/src/Distribution/Simple/GHC.hs
- Cabal/src/Distribution/Simple/GHC/Build.hs 130 additions, 252 deletionsCabal/src/Distribution/Simple/GHC/Build.hs
- Cabal/src/Distribution/Simple/GHC/Build/ExtraSources.hs 242 additions, 0 deletionsCabal/src/Distribution/Simple/GHC/Build/ExtraSources.hs
- Cabal/src/Distribution/Simple/GHC/Build/Link.hs 662 additions, 0 deletionsCabal/src/Distribution/Simple/GHC/Build/Link.hs
- Cabal/src/Distribution/Simple/GHC/Build/Modules.hs 352 additions, 0 deletionsCabal/src/Distribution/Simple/GHC/Build/Modules.hs
- Cabal/src/Distribution/Simple/GHC/Build/Utils.hs 217 additions, 0 deletionsCabal/src/Distribution/Simple/GHC/Build/Utils.hs
- Cabal/src/Distribution/Simple/GHC/BuildGeneric.hs 0 additions, 747 deletionsCabal/src/Distribution/Simple/GHC/BuildGeneric.hs
- Cabal/src/Distribution/Simple/GHC/BuildOrRepl.hs 0 additions, 541 deletionsCabal/src/Distribution/Simple/GHC/BuildOrRepl.hs
- Cabal/src/Distribution/Simple/GHC/Internal.hs 81 additions, 86 deletionsCabal/src/Distribution/Simple/GHC/Internal.hs
- Cabal/src/Distribution/Simple/GHCJS.hs 2 additions, 21 deletionsCabal/src/Distribution/Simple/GHCJS.hs
- Cabal/src/Distribution/Simple/Setup.hs 37 additions, 1 deletionCabal/src/Distribution/Simple/Setup.hs
- Cabal/src/Distribution/Simple/Utils.hs 13 additions, 13 deletionsCabal/src/Distribution/Simple/Utils.hs
Loading