1. 20 Nov, 2018 1 commit
  2. 01 Nov, 2018 2 commits
  3. 20 Oct, 2018 2 commits
  4. 09 Oct, 2018 2 commits
  5. 02 Oct, 2018 1 commit
    • Alp Mestanogullari's avatar
      Honour the flavours advertised by the flavours.md document (#691) · 5e432d4a
      Alp Mestanogullari authored
      * honour the flavours advertised by our flavours.md document
      
      In particular, this patches focuses on enabling back the dynamic-enabled ways
      for the runtime system, which required to fix a bug in libsuf.
      
      * address some feedback
      
      * make dynamicGhcPrograms :: Action Bool to implement the default logic faithfully
      
      * remove redundant windows check
      5e432d4a
  6. 01 Oct, 2018 1 commit
  7. 30 Sep, 2018 1 commit
  8. 29 Sep, 2018 1 commit
    • Andrey Mokhov's avatar
      Rework parsing of Cabal metadata (#692) · 7169ac5d
      Andrey Mokhov authored
      The current implementation of parsing Cabal data is a big mess, which affects performance as described in #671 and #550. In this PR we simplify the implementation and avoid unnecessary reparsing.
      
      As a result, the zero build time is reduced from 30 seconds to 5 seconds on my machine. The full build time seems to have been improved as well, since now all CI bots complete within the time limit. On the other hand, the speed up of the full build with `-j` on my machine does not appear to be significant.
      7169ac5d
  9. 21 Sep, 2018 1 commit
  10. 13 Sep, 2018 1 commit
  11. 12 Sep, 2018 3 commits
  12. 10 Sep, 2018 1 commit
  13. 07 Sep, 2018 3 commits
  14. 06 Sep, 2018 1 commit
  15. 05 Sep, 2018 1 commit
    • Alp Mestanogullari's avatar
      Work around the "can't use Natural in base" problem on a per-flavour basis (#676) · 1bbc4b3b
      Alp Mestanogullari authored
      * Work around the "can't use natural in base" problem on a per-flavour basis
      
      The only flavours that need the workaround are the ones that build
      GHC/{Natural, Num}.hs with -O0, namely 'quick', 'quickest' and 'prof'.
      This patches defines the necessary arguments in one place and uses them
      in all the aforementionned flavour definitions.
      
      This will allow us to have both quick/quickest/prof builds that come through
      as well as an efficient compiler when we want it (with e.g perf), which wasn't
      the case before my series of patches for this problem.
      
      * address @snowleopard's feedback
      1bbc4b3b
  16. 04 Sep, 2018 2 commits
  17. 03 Sep, 2018 1 commit
  18. 02 Sep, 2018 1 commit
  19. 01 Sep, 2018 1 commit
    • Andrey Mokhov's avatar
      Fix build scripts (#668) · 12e6635a
      Andrey Mokhov authored
      * Delete scripts relying on global package database
      
      * Simplify Cabal build script
      
      * Simplify the default build script
      
      * Fix path
      
      * Invoke the build script from GHC root
      
      * Switch to newer Cabal
      
      * Don't disable Cabal output
      
      * Add build.cabal.bat
      12e6635a
  20. 29 Aug, 2018 3 commits
    • Andrey Mokhov's avatar
      Fix documentation rules (#665) · 90d07d7b
      Andrey Mokhov authored
      * Make sure we need haddockHtmlLib before creating anything in the directory
      
      * Fix Haddock builder provenance
      
      * Do not clean up the HTML docs directory
      
      * Fix the target directory
      
      * Add more missing dependencies on haddockHtmlLib
      
      * Replace docPackage with docContext
      
      * Minor revision
      90d07d7b
    • Andrey Mokhov's avatar
      Tweak the build root section · e5f13b3a
      Andrey Mokhov authored
      e5f13b3a
    • Andrey Mokhov's avatar
      Simplify Package data type (#663) · 798a716b
      Andrey Mokhov authored
      I noticed that all packages we build have Cabal files now, which means we no longer need to distinguish between C and Haskell packages. This leads to a lot of simplifications and removal of unsafe functions.
      798a716b
  21. 27 Aug, 2018 5 commits
  22. 26 Aug, 2018 2 commits
  23. 24 Aug, 2018 1 commit
    • Andrey Mokhov's avatar
      Fix package dependencies (#657) · a804d57a
      Andrey Mokhov authored
      This fixes #654.
      
      There are only two important changes.
      
      1) The first one fixes missing dependencies:
      
      ```diff
      -pkgDependencies = fmap (fmap PD.dependencies) . readPackageDataFile
      +pkgDependencies = fmap (fmap (map pkgName . packageDependencies)) . readCabalFile
      ```
      
      Here `PD.dependencies` returned versioned package names, e.g. `ghc-8.7`, which then failed to match with non-versioned package names such as `ghc` in `contextDependencies`. Switching from `PD.dependencies` to `packageDependencies` fixes this.
      
      2) I clearly remember that we didn't have this bug before, so I added some tests for our package dependency infrastructure to prevent such regressions in future:
      
      ```haskell
      testDependencies :: Action ()
      testDependencies = do
          putBuild "==== pkgDependencies"
          depLists <- mapM (pkgDependencies . vanillaContext Stage1) ghcPackages
          test $ and [ deps == sort deps | Just deps <- depLists ]
          putBuild "==== Dependencies of the 'ghc-bin' binary"
          ghcDeps <- pkgDependencies (vanillaContext Stage1 ghc)
          test $ isJust ghcDeps
          test $ pkgName compiler `elem` fromJust ghcDeps
          stage0Deps <- contextDependencies (vanillaContext Stage0 ghc)
          stage1Deps <- contextDependencies (vanillaContext Stage1 ghc)
          stage2Deps <- contextDependencies (vanillaContext Stage2 ghc)
          test $ vanillaContext Stage0 compiler `notElem` stage1Deps
          test $ vanillaContext Stage1 compiler `elem`    stage1Deps
          test $ vanillaContext Stage2 compiler `notElem` stage1Deps
          test $ stage1Deps /= stage0Deps
          test $ stage1Deps == stage2Deps
      ```
      
      Everything else are cosmetic changes, fixing minor issues in comments, and adding TODOs. To figure out the failure in #654 I had to read some code I didn't write and my hands were automatically fixing some style inconsistencies with the rest of the Hadrian code base. (I'd like to emphasise that I make no judgement about which style is better, it's merely an attempt to make the code base look more homogeneous, which I think is useful.)
      a804d57a
  24. 22 Aug, 2018 1 commit
  25. 05 Aug, 2018 1 commit