Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/hvr/parsec. Pull mirroring updated .
  1. Sep 18, 2020
  2. May 23, 2020
  3. Apr 13, 2020
    • Alexis King's avatar
      Add INLINABLE pragmas to most overloaded combinators · ce416997
      Alexis King authored and Herbert Valerio Riedel's avatar Herbert Valerio Riedel committed
      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
  4. Nov 14, 2019
  5. Jul 02, 2019
  6. Jun 27, 2019
  7. Jun 13, 2019
  8. Dec 18, 2018
  9. Aug 11, 2018
  10. Apr 19, 2018
  11. Apr 16, 2018
  12. Mar 04, 2018
  13. Feb 05, 2018
    • 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
  14. Feb 03, 2018
  15. Dec 31, 2017
  16. Dec 30, 2017
  17. Oct 21, 2017
Loading