1. 15 Dec, 2014 1 commit
  2. 14 Dec, 2014 3 commits
  3. 29 Nov, 2014 1 commit
  4. 28 Nov, 2014 1 commit
  5. 27 Nov, 2014 1 commit
  6. 25 Nov, 2014 1 commit
    • Simon Marlow's avatar
      Make clearNursery free · e22bc0de
      Simon Marlow authored
      Summary:
      clearNursery resets all the bd->free pointers of nursery blocks to
      make the blocks empty.  In profiles we've seen clearNursery taking
      significant amounts of time particularly with large -N and -A values.
      
      This patch moves the work of clearNursery to the point at which we
      actually need the new block, thereby introducing an invariant that
      blocks to the right of the CurrentNursery pointer still need their
      bd->free pointer reset.  This should make things faster overall,
      because we don't need to clear blocks that we don't use.
      
      Test Plan: validate
      
      Reviewers: AndreasVoellmy, ezyang, austin
      
      Subscribers: thomie, carter, ezyang, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D318
      e22bc0de
  7. 21 Nov, 2014 3 commits
  8. 20 Nov, 2014 2 commits
    • Jan Stolarek's avatar
      Split SynTyCon to SynonymTyCon and FamilyTyCon · 696fc4ba
      Jan Stolarek authored
      This patch refactors internal representation of type synonyms and type families by splitting them into two separate data constructors of TyCon data type. The main motivation is is that some fields make sense only for type synonyms and some make sense only for type families. This will be even more true with the upcoming injective type families.
      
      There is also some refactoring of names to keep the naming constistent. And thus tc_kind field has become tyConKind and tc_roles has become tcRoles. Both changes are not visible from the outside of TyCon module.
      
      Updates haddock submodule
      
      Reviewers: simonpj
      
      Differential Revision: https://phabricator.haskell.org/D508
      
      GHC Trac Issues: #9812
      696fc4ba
    • cactus's avatar
      Add support for pattern synonym type signatures. · cce6318e
      cactus authored
      Syntax is of the form
      
          pattern P :: (Prov b) => (Req a) => a -> b -> Int -> T a
      
      which declares a pattern synonym called `P`, with argument types `a`, `b`,
      and `Int`, and result type `T a`, with provided context `(Prov b)` and required
      context `(Req a)`.
      
      The Haddock submodule is also updated to use this new syntax in generated docs.
      cce6318e
  9. 19 Nov, 2014 1 commit
    • thomie's avatar
      Refactor: use System.FilePath.splitSearchPath · 6fc78fdf
      thomie authored
      Summary:
      To address #2521 ("Trailing colon on GHC_PACKAGE_PATH doesn't work with
      ghc-pkg"), we were using a custom version of splitSearchPath (e4f46f5d). This
      solution however caused issue #9698 ("GHC_PACKAGE_PATH should be more lenient
      for empty paths").
      
      This patch reverts back to System.FilePath.splitSearchPath (fixes #9698) and
      adresses (#2521) by testing for a trailing search path separators explicitly
      (instead of implicitly using empty search path elements).
      
      Empty paths are now allowed (ignored on Windows, interpreted as current
      directory on Posix systems), and trailing path separator still tack on the
      user and system package databases.
      
      Also update submodule filepath, which has a version of splitSearchPath which
      handles quotes in the same way as our custom version did.
      
      Test Plan:
      $ GHC_PACKAGE_PATH=/::/home: ./ghc-pkg list
      ...
      db stack: ["/",".","/home","<userdb>","<systemdb>"]
      ...
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: thomie, carter, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D414
      
      GHC Trac Issues: #2521, #9698
      6fc78fdf
  10. 15 Nov, 2014 2 commits
    • Herbert Valerio Riedel's avatar
      Update to (unreleased) `deepseq-1.4.0.0` · 609cd28a
      Herbert Valerio Riedel authored
      This pulls in the new `Generic`-based `-XDefaultSignature`-based default
      implementation for `rnf`[1], and will be interesting to use in combination
      with the soon to be merged `-XDeriveAnyClass` extension.
      
      This requires updating several other submodules as well in order
      to relax the upper bound on `deepseq` and/or in a few cases to
      avoid relying on the default method implementation of `rnf`:
      
       - `Cabal`
       - `bytestring`
       - `containers`
       - `parallel`
       - `process`
       - `time`
      
       [1]: http://permalink.gmane.org/gmane.comp.lang.haskell.libraries/23031
      609cd28a
    • Edward Z. Yang's avatar
      Generalize exposed-modules field in installed package database · e14a9732
      Edward Z. Yang authored
      Summary:
      Instead of recording exposed-modules and reexported-modules as seperate
      fields in the installed package database, this commit merges them into
      a single field (exposed-modules).  The motivation for this change is
      in preparation for the inclusion of *signatures* into the installed
      package database, which may also be reexported.  Merging the representation
      means that we can treat reexports uniformly, no matter if they're a normal
      module or a signature.
      
      This commit adds a stub for signatures, but that code isn't wired up to
      anything yet.
      
      Contains Cabal submodule update to accommodate these changes.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: simonpj, duncan, austin
      
      Subscribers: thomie, carter, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D421
      e14a9732
  11. 12 Nov, 2014 2 commits
    • Simon Marlow's avatar
      Per-thread allocation counters and limits · d70b19bf
      Simon Marlow authored
      This reverts commit f0fcc41d.
      
      New changes: now works on 32-bit platforms too.  I added some basic
      support for 64-bit subtraction and comparison operations to the x86
      NCG.
      d70b19bf
    • Herbert Valerio Riedel's avatar
      Implement new integer-gmp2 from scratch (re #9281) · c774b28f
      Herbert Valerio Riedel authored
      This is done as a separate `integer-gmp2` backend library because it
      turned out to become a complete rewrite from scratch.
      
      Due to the different (over)allocation scheme and potentially different
      accounting (via the new `{shrink,resize}MutableByteArray#` primitives),
      some of the nofib benchmarks actually results in increased allocation
      numbers (but not necessarily an increase in runtime!).  I believe the
      allocation numbers could improve if `{resize,shrink}MutableByteArray#`
      could be optimised to reallocate in-place more efficiently.
      
      Here are the more apparent changes in the latest nofib comparision
      between `integer-gmp` and `integer-gmp2`:
      
        ------------------------------------------------------------------
                Program     Size    Allocs   Runtime   Elapsed  TotalMem
        ------------------------------------------------------------------
                    ...
             bernouilli    +1.6%    +15.3%     0.132     0.132      0.0%
                    ...
           cryptarithm1    -2.2%      0.0%     -9.7%     -9.7%      0.0%
                    ...
                  fasta    -0.7%     -0.0%    +10.9%    +10.9%      0.0%
                    ...
                  kahan    +0.6%    +38.9%     0.169     0.169      0.0%
                    ...
                   lcss    -0.7%     -0.0%     -6.4%     -6.4%      0.0%
                    ...
                 mandel    +1.6%    +33.6%     0.049     0.049      0.0%
                    ...
               pidigits    +0.8%     +8.5%     +3.9%     +3.9%      0.0%
                  power    +1.4%    -23.8%    -18.6%    -18.6%    -16.7%
                    ...
              primetest    +1.3%    +50.1%     0.085     0.085      0.0%
                    ...
                    rsa    +1.6%    +53.4%     0.026     0.026      0.0%
                    ...
                    scs    +1.2%     +6.6%     +6.5%     +6.6%    +14.3%
                    ...
                 symalg    +1.0%     +9.5%     0.010     0.010      0.0%
                    ...
              transform    -0.6%     -0.0%     -5.9%     -5.9%      0.0%
                    ...
        ------------------------------------------------------------------
                    Min    -2.3%    -23.8%    -18.6%    -18.6%    -16.7%
                    Max    +1.6%    +53.4%    +10.9%    +10.9%    +14.3%
         Geometric Mean    -0.3%     +1.9%     -0.8%     -0.8%     +0.0%
      
      (see P35 / https://phabricator.haskell.org/P35 for full report)
      
      By default, `INTEGER_LIBRARY=integer-gmp2` is active now, which results
      in the package `integer-gmp-1.0.0.0` being registered in the package db.
      The previous `integer-gmp-0.5.1.0` can be restored by setting
      `INTEGER_LIBRARY=integer-gmp` (but will probably be removed altogether
      for GHC 7.12). In-tree GMP support has been stolen from the old
      `integer-gmp` (while unpatching the custom memory-allocators, as well as
      forcing `-fPIC`)
      
      A minor hack to `ghc-cabal` was necessary in order to support two different
      `integer-gmp` packages (in different folders) with the same package key.
      
      There will be a couple of follow-up commits re-implementing some features
      that were dropped to keep D82 minimal, as well as further
      clean-ups/improvements.
      
      More information can be found via #9281 and
      https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2
      
      Reviewed By: austin, rwbarton, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D82
      c774b28f
  12. 07 Nov, 2014 1 commit
  13. 01 Nov, 2014 2 commits
  14. 31 Oct, 2014 2 commits
  15. 30 Oct, 2014 1 commit
  16. 29 Oct, 2014 1 commit
  17. 21 Oct, 2014 2 commits
  18. 19 Oct, 2014 1 commit
    • Krzysztof Gogolewski's avatar
      Python 3 support, second attempt (Trac #9184) · d576fc38
      Krzysztof Gogolewski authored
      Summary:
      This is a fixup of https://phabricator.haskell.org/D233
      
      The only difference is in findTFiles (first commit), which
      previously broke Windows runner; now I translated literally
      instead attempting to improve it, and checked it works.
      
      Test Plan:
      I used validate under 2,3 on Linux and under 2 on msys2.
      On Windows I've seen a large number of failures, but they don't
      seem to be connected with the patch.
      
      Reviewers: hvr, simonmar, thomie, austin
      
      Reviewed By: austin
      
      Subscribers: thomie, carter, ezyang, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D310
      
      GHC Trac Issues: #9184
      d576fc38
  19. 10 Oct, 2014 1 commit
  20. 03 Oct, 2014 1 commit
  21. 02 Oct, 2014 2 commits
  22. 01 Oct, 2014 3 commits
    • Krzysztof Gogolewski's avatar
      Basic Python 3 support for testsuite driver (Trac #9184) · 084d241b
      Krzysztof Gogolewski authored
      Summary:
      Most of the changes is adaptation of old Python 2 only code.
      My priority was not breaking Python 2, and so I avoided bigger
      changes to the driver. In particular, under Python 3 the output
      is a str and buffering cannot be disabled.
      
      To test, define PYTHON=python3 in testsuite/mk/boilerplate.mk.
      
      Thanks to aspidites <emarshall85@gmail.com> who provided the initial patch.
      
      Test Plan: validate under 2 and 3
      
      Reviewers: hvr, simonmar, thomie, austin
      
      Reviewed By: thomie, austin
      
      Subscribers: aspidites, thomie, simonmar, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D233
      
      GHC Trac Issues: #9184
      084d241b
    • David Feuer's avatar
      Use dropWhileEndLE p instead of reverse . dropWhile p . reverse · 2a885688
      David Feuer authored
      Summary: Using `dropWhileEndLE` tends to be faster and easier to read
      than the `reverse . dropWhile p . reverse` idiom. This also cleans up
      some other, nearby, messes. Fix #9616 (incorrect number formatting
      potentially leading to incorrect numbers in output).
      
      Test Plan: Run validate
      
      Reviewers: thomie, rwbarton, nomeata, austin
      
      Reviewed By: nomeata, austin
      
      Subscribers: simonmar, ezyang, carter, thomie
      
      Projects: #ghc
      
      Differential Revision: https://phabricator.haskell.org/D259
      
      GHC Trac Issues: #9623, #9616
      
      Conflicts:
      	compiler/basicTypes/OccName.lhs
      2a885688
    • Joachim Breitner's avatar
      Update hsc2hs submodule · 5d16c4d9
      Joachim Breitner authored
      to get David’s code improvements (#9654).
      5d16c4d9
  23. 26 Sep, 2014 1 commit
  24. 24 Sep, 2014 1 commit
    • Edward Z. Yang's avatar
      Update Cabal submodule & ghc-pkg to use new module re-export types · 4b648be1
      Edward Z. Yang authored
      Summary:
      The main change is that Cabal changed the representation of module
      re-exports to distinguish reexports in source .cabal files versus
      re-exports in installed package registraion files.
      
      Cabal now also does the resolution of re-exports to specific installed
      packages itself, so ghc-pkg no longer has to do this. This is a cleaner
      design overall because re-export resolution can fail so it is better to
      do it during package configuration rather than package registration.
      It also simplifies the re-export representation that ghc-pkg has to use.
      
      Add extra ghc-pkg sanity check for module re-exports and duplicates
      
      For re-exports, check that the defining package exists and that it
      exposes the defining module (or for self-rexport exposed or hidden
      modules). Also check that the defining package is actually a direct
      or indirect dependency of the package doing the re-exporting.
      
      Also add a check for duplicate modules in a package, including
      re-exported modules.
      
      Test Plan:
      So far the sanity checks are totally untested. Should add some test
      case to make sure the sanity checks do catch things correctly, and
      don't ban legal things.
      
      Reviewers: austin, duncan
      
      Subscribers: angerman, simonmar, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D183
      
      GHC Trac Issues:
      4b648be1
  25. 23 Sep, 2014 1 commit
  26. 21 Sep, 2014 1 commit
  27. 18 Sep, 2014 1 commit