This project is mirrored from https://github.com/hvr/parsec. Pull mirroring updated .
  1. 21 Oct, 2020 1 commit
  2. 13 Apr, 2020 1 commit
    • Alexis King's avatar
      Add INLINABLE pragmas to most overloaded combinators · ce416997
      Alexis King authored
      This adds INLINABLE pragmas to most exported combinators, which enables
      cross-module specialization of the Stream constraint (which can in turn
      enable further optimizations). This improves performance of these
      combinators in scenarios where GHC chooses not to inline them, since
      they may still be specialized instead.
      
      This change is primarily in response to a performance regression
      discovered by the GHC performance test suite when running haddock (since
      haddock uses parsec). The full discussion is available here:
      
          ghc/ghc!3041
      
      The gist is that, without these pragmas, performance relies too heavily
      on inlining heuristics working out in our favor, and subtle changes in
      the optimizer can cause regressions.
      
      The GHC performance tests suggest this patch reliably reduces runtime of
      haddock on base by 7–9% and allocation by 3–5%. Pretty good for doing
      something so simple!
      ce416997
  3. 14 Nov, 2019 1 commit
  4. 02 Jul, 2019 6 commits
  5. 27 Jun, 2019 1 commit
  6. 13 Jun, 2019 1 commit
  7. 18 Dec, 2018 1 commit
  8. 11 Aug, 2018 1 commit
  9. 19 Apr, 2018 1 commit
  10. 16 Apr, 2018 2 commits
  11. 04 Mar, 2018 1 commit
  12. 05 Feb, 2018 1 commit
    • Herbert Valerio Riedel's avatar
      Add intentional support for `SafeHaskell` · 00dd731b
      Herbert Valerio Riedel authored
      This is the first version whose `SafeHaskell` properties have become
      an intentional part of the API contract; previous versions were merely
      accidentally safe-inferred (or not depending on various factors; in
      other words, this was a fragile property). If you rely on
      `SafeHaskell` to consider module imports from `parsec` *safe*, this is
      the first version of `parsec` which actually guarantees a well-defined
      state.
      
      Support for GHC 7.0, GHC 7.2, and GHC 7.4.1 has been dropped,
      consequently the support window starts with GHC 7.4.2.
      
      This addresses #88
      00dd731b
  13. 03 Feb, 2018 2 commits
  14. 31 Dec, 2017 2 commits
  15. 30 Dec, 2017 16 commits
  16. 21 Oct, 2017 1 commit
  17. 25 Sep, 2017 1 commit