Looking for GHC compile-time performance tests

tl;dr. Do you have a Haskell project which GHC now compiles more slowly than in the past? If you would like to see your program's compilation time improve in 8.2, reduce it to a minimal testcase, and provide it to us via Trac. Good news everyone, GHC 8.2 will be a release largely targetting consolidation instead of new features. In particular, we will focus on compiler performance issues. One of the challenges of this task is knowing in which ways GHC has regressed. It is currently hard to know how much of the apparent compiler performance regression is due to GHC getting slower and how much is due to users demanding more of it. To better understand the performance of our compiler, we would like to collect modern Haskell code samples that exhibit compile-time performance issues (either regressions or otherwise). For this we are asking for your help: we are looking for projects that, * are small-to-moderate-sized Haskell programs which you believe have regressed in compile time in the last few GHC releases * have minimal build dependencies, in the ideal case none outside of the standard GHC boot libraries * can be licensed for use under 3-clause BSD In some cases we may also be able to make use of examples with a few library dependencies that are necessary to demonstrate the performance issue (for instance, a suspected issue stemming from stream fusion requiring Conduit). For performance issues exhibiting non-linear scaling in some quantity (e.g. the size of a type in the program), it would be extremely helpful if the testcase exposed a "knob" demonstrating this scaling. So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread. Thanks for your help! Cheers, - Ben

Ben Gamari wrote:
So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread.
The vector package is probably a good candidate. Compling vector slowed down signicantly between 7.8 and 7.10, only to speed up again with 8.0. Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/

vector-algorithms has gotten slower to both compile and for users rather consistently during each release throughout the 7.x lifecycle. That may serve as a good torture test as well.
On May 6, 2016, at 6:22 AM, Erik de Castro Lopo
wrote: Ben Gamari wrote:
So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread.
The vector package is probably a good candidate. Compling vector slowed down signicantly between 7.8 and 7.10, only to speed up again with 8.0.
Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

Thanks. A repeatable test case would be incredibly helpful here.
Simon
| -----Original Message-----
| From: Glasgow-haskell-users [mailto:glasgow-haskell-users-
| bounces@haskell.org] On Behalf Of Edward Kmett
| Sent: 05 May 2016 21:50
| To: Erik de Castro Lopo

containers compile times have generally gotten slower from version to version.
On Thu, May 5, 2016 at 4:22 PM, Erik de Castro Lopo
Ben Gamari wrote:
So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread.
The vector package is probably a good candidate. Compling vector slowed down signicantly between 7.8 and 7.10, only to speed up again with 8.0.
Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

It also helped that the test suite got added back to the main cabal. And
the test suite took a WHILE, due to some sort of coercion seize blowup that
I think was fixed in 8,0. But yes. Definitely vector build times decayed.
Partly due to the shift to the general bundle rep, and partly due to ...
Ghc builds getting slower
On Thursday, May 5, 2016, Erik de Castro Lopo
Ben Gamari wrote:
So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread.
The vector package is probably a good candidate. Compling vector slowed down signicantly between 7.8 and 7.10, only to speed up again with 8.0.
Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org javascript:; http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

On Thu, May 5, 2016 at 5:52 AM, Ben Gamari
So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread.
Please see https://ghc.haskell.org/trac/ghc/ticket/12028 for an example with no dependencies beyond commons (ex. bytestring). There is a 6x performance regression or 4x if you're willing to delete UNPACK pragmas.

Similarly, please see https://ghc.haskell.org/trac/ghc/ticket/12032
for a regression when using many top-level cases in equational style.
I haven't looked at core, it's possible this issue is the same as
ticket 12028.
Also please note I am _not_ on the -dev list at present so that list
is not getting my responses to this thread.
-Thomas
On Fri, May 6, 2016 at 8:45 PM, Thomas DuBuisson
On Thu, May 5, 2016 at 5:52 AM, Ben Gamari
wrote: So, if you would like to see your program's compilation time improve in GHC 8.2, put some time into reducing it to something minimal, submit it to us via a Trac ticket, and let us know in this thread.
Please see https://ghc.haskell.org/trac/ghc/ticket/12028 for an example with no dependencies beyond commons (ex. bytestring). There is a 6x performance regression or 4x if you're willing to delete UNPACK pragmas.
participants (7)
-
Ben Gamari
-
Carter Schonwald
-
David Feuer
-
Edward Kmett
-
Erik de Castro Lopo
-
Simon Peyton Jones
-
Thomas DuBuisson