Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tracking GHC Performance

Tracking GHC Performance

Presented at "HIW 2017 Haskell Implementors' Workshop": https://icfp17.sigplan.org/track/hiw-2017

A recurring topic of concern among users of GHC is GHC’s correctness and performance, both regarding compilation time and runtime of the generated code, including how GHC’s performance evolves across GHC releases. That concern is aggravated by the long release cycle and the small footprint of libraries in CI builds. As a datapoint that lends credibility to this concern, consider that, although an explicit goal for GHC 8.2 is to improve compilation times, there is evidence that compilation times (for a release candidate) degraded for some packages. Moreover, in the past, releases have often been delayed due to regressions found late in the release cycle.

In this talk, we will analyse the current situation and propose a scheme that enables the (a) continuous monitoring of GHC correctness and performance on (b) a wider range of packages. As our scheme is based on Stackage package sets, we will also argue that widening the range of packages under CI will accelerate the adoption of new GHC releases by the wider community. In particular, we detail our own plans to work towards an implementation of the proposed scheme.

Manuel Chakravarty

September 11, 2017

More Decks by Manuel Chakravarty

Other Decks in Programming


  1. Manuel M T Chakravarty & Mathieu Boespflug Tweag I/O Tracking

    GHC Performance And Other Regressions mchakravarty TacticalGrace justtesting.org tweag.io
  2. ubuntu stackage:nightly docker build docker build stackage:head build-constraints.yaml ộ Version

    Conflicts HEAD Build Results PruneConstraints pruned-constraints.yaml stackage-curator pruned-plan.yaml stackage-curator New
  3. Compilation Speed Compare build times of master vs branch Track

    performance over time “Tracking Performance over the entire software lifecycle” http://www.tweag.io/posts/2017-09-06-hyperion.html