[commit: hadrian] master: Use Cabal directly in place of ghc-cabal + make build root configurable (#531) (3a68f11)

git at git.haskell.org git at git.haskell.org
Wed Apr 25 23:20:26 UTC 2018


Repository : ssh://git@git.haskell.org/hadrian

On branch  : master
Link       : http://git.haskell.org/hadrian.git/commitdiff/3a68f11c9d6ceebdb09f85804143dd2f1d49a502

>---------------------------------------------------------------

commit 3a68f11c9d6ceebdb09f85804143dd2f1d49a502
Author: Alp Mestanogullari <alpmestan at gmail.com>
Date:   Fri Mar 30 20:31:03 2018 +0200

    Use Cabal directly in place of ghc-cabal + make build root configurable (#531)
    
    * Use Cabal directly in place of ghc-cabal; make build root configurable.
    
    This commit implements two significant changes (that were not easy to
    separate):
    
    - Don't use ghc-cabal anymore for getting information about Haskell packages.
      We now instead directly use Cabal-the-library.
    
    - Make the build root configurable. This effectively gets rid of the inplace
      logic and allows us to place _all_ build artefacts in some directory of
      our choice, by passing '--build-root <some path>' to hadrian.
    
    The code for this was mostly taken from #445.
    
    * fix documentation rules
    
    * remove some leftover unrelated, commented-out code
    
    * more documentation fixes, address some feedback
    
    * cleanup
    
    * more cleanup
    
    * boot and configure explicitly in travis CI scripts
    
    * update cabal/ghc versions in .travis.yml (8.0.x not supported anymore)
    
    * temporarily disable dynamic ways in Settings.Default
    
    * update appveyor script
    
    * travis: when booting with 8.2.2, build a complete stage2 compiler
    
    * Fix CI?
    
    Try to fix the CI by adding the `debug` rts way back in.
    
    * Update Quickest.hs
    
    Replicate the make build systems build flavours.
    
    * Update .travis.yml
    
    - Run selftest, and build in separate instances.
    - try with python2
    - and unify mac to stage2
    
    * Update .travis.yml
    
    upgrade python on mac
    
    * [travis] os x: test the freshly built ghc
    
    * Get rid of two unused GhcCabalMode constructors
    
    * fix ghc-split rule, get rid of Install/Wrappers rules
    
    * address more feedback
    
    * ConfiguredCabal -> PackageData, more comments, more feedback addressed
    
    * make the complete stage 2 build the default
    
    * use a dummy package instead of base in Rules.hs
    
    * update CI scripts
    
    * attempt at fixing hadrian's -c option
    
    * .travis.yml: use -c everywhere again
    
    * travis: back to explicit './boot && ./configure'
    
    * update README.md and doc/user-settings.md to reflect configurable build root
    
    * some more feedback


>---------------------------------------------------------------

3a68f11c9d6ceebdb09f85804143dd2f1d49a502
 .travis.yml                              |  71 +++++--
 README.md                                |  19 +-
 appveyor.yml                             |  11 +-
 doc/user-settings.md                     |  10 -
 hadrian.cabal                            |  19 +-
 src/Base.hs                              |  91 ++++----
 src/Builder.hs                           |  93 ++++++--
 src/Builder.hs-boot                      |  46 ++++
 src/CommandLine.hs                       |  22 +-
 src/Context.hs                           |  60 +++---
 src/Context/Paths.hs                     |  39 ++++
 src/Expression.hs                        |  26 ++-
 src/Expression/Type.hs                   |   5 +-
 src/GHC.hs                               | 199 +++++-------------
 src/GHC/Packages.hs                      | 105 ++++++++++
 src/Hadrian/Builder.hs                   |  40 +++-
 src/Hadrian/Haskell/Cabal.hs             |  29 +--
 src/Hadrian/Haskell/Cabal/PackageData.hs |  46 ++++
 src/Hadrian/Haskell/Cabal/Parse.hs       | 314 +++++++++++++++++++++++++--
 src/Hadrian/Haskell/Cabal/Parse.hs-boot  |   9 +
 src/Hadrian/Haskell/Cabal/Type.hs        |  22 +-
 src/Hadrian/Oracles/TextFile.hs          |  46 +++-
 src/Hadrian/Package.hs                   |  14 +-
 src/Hadrian/Utilities.hs                 |  16 +-
 src/Main.hs                              |   5 +-
 src/Oracles/ModuleFiles.hs               |  40 ++--
 src/Oracles/PackageData.hs               |  66 ------
 src/Rules.hs                             |  61 ++++--
 src/Rules/Clean.hs                       |  10 +-
 src/Rules/Compile.hs                     |   6 +-
 src/Rules/Configure.hs                   |   2 +-
 src/Rules/Dependencies.hs                |  12 +-
 src/Rules/Documentation.hs               | 108 ++++++----
 src/Rules/Generate.hs                    | 140 +++++++------
 src/Rules/Gmp.hs                         |  30 +--
 src/Rules/Install.hs                     | 349 -------------------------------
 src/Rules/Libffi.hs                      |  13 +-
 src/Rules/Library.hs                     |  72 +++++--
 src/Rules/PackageData.hs                 | 122 ++---------
 src/Rules/Program.hs                     | 116 ++++------
 src/Rules/Register.hs                    | 103 ++++++---
 src/Rules/SourceDist.hs                  |   2 +-
 src/Rules/Test.hs                        |  18 +-
 src/Rules/Wrappers.hs                    | 162 --------------
 src/Settings.hs                          |   6 +-
 src/Settings/Builders/Cc.hs              |   6 +-
 src/Settings/Builders/Common.hs          |  38 +++-
 src/Settings/Builders/DeriveConstants.hs |   1 +
 src/Settings/Builders/Ghc.hs             |  55 +++--
 src/Settings/Builders/GhcCabal.hs        |  66 +++++-
 src/Settings/Builders/GhcPkg.hs          |  16 +-
 src/Settings/Builders/Haddock.hs         |  32 +--
 src/Settings/Builders/HsCpp.hs           |   1 +
 src/Settings/Builders/Hsc2Hs.hs          |  25 ++-
 src/Settings/Builders/RunTest.hs         |   5 +-
 src/Settings/Default.hs                  |  49 ++---
 src/Settings/Flavours/Quickest.hs        |   7 +-
 src/Settings/Packages.hs                 | 125 +++++++++++
 src/Settings/Packages/Haskeline.hs       |   8 -
 src/Settings/Packages/Rts.hs             |   1 +
 src/Settings/Warnings.hs                 |   1 +
 src/UserSettings.hs                      |   8 +-
 src/Utilities.hs                         |  46 ++--
 63 files changed, 1752 insertions(+), 1533 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 3a68f11c9d6ceebdb09f85804143dd2f1d49a502


More information about the ghc-commits mailing list