1. 23 Nov, 2017 1 commit
    • Ben Gamari's avatar
      Fix README · 5fdb8588
      Ben Gamari authored
      This was unfortunately overwritten by the Hadrian README in a previous
      Hadrian merge.
      5fdb8588
  2. 22 Nov, 2017 17 commits
  3. 21 Nov, 2017 4 commits
    • Ben Gamari's avatar
      Revert "trees that grow" work · 314bc314
      Ben Gamari authored
      As documented in #14490, the Data instances currently blow up
      compilation time by too much to stomach. Alan will continue working on
      this in a branch and we will perhaps merge to 8.2 before 8.2.1 to avoid
      having to perform painful cherry-picks in 8.2 minor releases.
      
      Reverts haddock submodule.
      
      This reverts commit 47ad6578.
      This reverts commit e3ec2e7a.
      This reverts commit 438dd1cb.
      This reverts commit 0ff152c9.
      314bc314
    • Ben Gamari's avatar
      base: Document GHC.Stack.CCS internals · 0b20d9c5
      Ben Gamari authored
      Reviewers: hvr
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4204
      0b20d9c5
    • Ben Gamari's avatar
      configure: Fix ar probed flags · 66d17995
      Ben Gamari authored
      FP_PROG_AR_ARGS appears to be probing for what flags to use to build an
      archive with an index. However, none of the flags that it probed
      previously were valid as they all started with `c`, which isn't a mode
      character. This went unnoticed until someone attempted to use LLVM ar
      since we have a special case for gnu ar.
      
      Additionally, we work around a bug in llvm-ar 5.0 where ar will exit
      with code 0 even if it fails to parse the command line. Silliness.
      
      I believe these should rather all be mode `q` however I'll need to test
      this on a few platforms to be certain.
      
      Test Plan: Validate on OS X, BSD, and Linux with binutils and llvm ar
      
      Reviewers: hvr
      
      Subscribers: rwbarton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4214
      66d17995
    • Ben Gamari's avatar
      CircleCI: Disable artifact collection on OS X · d213ee87
      Ben Gamari authored
      The storeartifacts step inexplicably hangs on OS X. I am currently be working
      with CircleCI support to resolve this.
      d213ee87
  4. 20 Nov, 2017 6 commits
  5. 19 Nov, 2017 1 commit
  6. 18 Nov, 2017 6 commits
    • Andrew Martin's avatar
      b8e324a4
    • niteria's avatar
      Fix T4437 · 912a72d2
      niteria authored
      This test tests if the flags are in sync between GHC and
      Cabal.
      After b0b80e90 'Implement the basics of hex floating point
      literals' landed, the Cabal side had to be updated. That
      has been done, and 835d8ddb 'GHC.Prim use virtual-modules'
      brought the Cabal submodule up to date.
      912a72d2
    • Moritz Angermann's avatar
      Fix rts.cabal.in · 74070bbb
      Moritz Angermann authored
      Overlap with commit 2f463873, resulted in `hooks/LongGCSync.c`
      missing from the `rts.cabal.in` file.  As the `rts.cabal` file is only
      used by hadrian, this did not trigger with the make base build
      system which can do globbing.
      
      Also ignore the `rts.cabal` file, as it's generated by configure
      from the `rts.cabal.in`.
      74070bbb
    • Moritz Angermann's avatar
      Relocatable GHC · bb11a2d9
      Moritz Angermann authored
      GHC and the binary distribution that's produced is
      not relocatable outside of Windows.  This diff tries to
      address this for at least Linux and macOS.
      
      Reviewers: austin, hvr, bgamari, erikd, goldfire, Phyx
      
      Reviewed By: bgamari
      
      Subscribers: duog, rwbarton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4121
      bb11a2d9
    • Moritz Angermann's avatar
      GHC.Prim use virtual-modules · 835d8ddb
      Moritz Angermann authored
      Stop the GHC.Prim madness with `virtual-module` support from cabal.
      Needs https://github.com/haskell/cabal/pull/4875.
      
      Bumps submodule libraries/Cabal to include the necessary logic for `virtual-module`.
      
      Reviewers: bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4179
      835d8ddb
    • Moritz Angermann's avatar
      Adds -ghc-version flag to ghc. · 12a74444
      Moritz Angermann authored
      Summary:
      When building the rts with ghc (e.g. using ghc as a c compiler), ghc's
      "Value Add"[1] is, it includes adding `-include /path/to/ghcversion.h`.  For
      this it looksup the rts package in the package database, which--if
      empty--fails.  Thus to allow compiling C files with GHC, we add the
      `-ghc-version` flag, which takes the path to the `ghcversion.h` file.
      
      A `-no-ghc-version` flag was omitted, as at that point it becomes
      questionable why one would use ghc to compile c if one doesn't
      any of the added value.
      
      --
      
      [1] from `compiler/main/DriverPipeline.hs`
      >        -- add package include paths even if we're just compiling .c
      >        -- files; this is the Value Add(TM) that using ghc instead of
      >        -- gcc gives you :)
      
      Reviewers: bgamari, geekosaur, austin
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4135
      12a74444
  7. 16 Nov, 2017 3 commits
    • Ben Gamari's avatar
      configure: Fix incorrect quoting · c7297342
      Ben Gamari authored
      This is a regression affecting Windows introduced by
      3bed4aa7.
      c7297342
    • Ben Gamari's avatar
      Document -ddump-timings · 2da7813b
      Ben Gamari authored
      2da7813b
    • Simon Marlow's avatar
      Detect overly long GC sync · 2f463873
      Simon Marlow authored
      Summary:
      GC sync is the time between a GC being intiated and all the mutator
      threads finally stopping so that the GC can start. Problems that cause
      the GC sync to be delayed are hard to find and can cause dramatic
      slowdowns for heavily parallel programs.
      
      The new flag --long-gc-sync=<time> helps by emitting a warning and
      calling a user-overridable hook when the GC sync time exceeds the
      specified threshold. A debugger can be used to set a breakpoint when
      this happens and inspect the stacks of threads to find the culprit.
      
      Test Plan:
      ```
      $ ./inplace/bin/ghc-stage2 +RTS --long-gc-sync=0.0000001 -S
          Alloc    Copied     Live     GC     GC      TOT      TOT  Page Flts
          bytes     bytes     bytes   user   elap     user     elap
        1135856     51144    153736  0.000  0.000    0.002    0.002    0    0  (Gen:  0)
        1034760     94704    188752  0.000  0.000    0.002    0.002    0    0  (Gen:  0)
        1038888    134832    228888  0.009  0.009    0.011    0.011    0    0  (Gen:  1)
        1025288     90128    235184  0.000  0.000    0.012    0.012    0    0  (Gen:  0)
        1049088    130080    333984  0.000  0.000    0.013    0.013    0    0  (Gen:  0)
      Warning: waited 0us for GC sync
        1034424     73360    331976  0.000  0.000    0.013    0.013    0    0  (Gen:  0)
      ```
      
      Also tested on a real production problem.
      
      Reviewers: niteria, bgamari, erikd
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D4193
      2f463873
  8. 15 Nov, 2017 2 commits