Is anything being done to remedy the soul crushing compile times of GHC?

Simon Peyton Jones simonpj at microsoft.com
Tue Feb 16 13:49:27 UTC 2016


| There is currently an interesting discussion on Reddit on GHC compile times

Crikey.  That's a long and rather discouraging thread. (It comes as a bit of a surprise to me: I don't have much problem myself with GHC, which is by any standards a big project; but clearly others do.)

I hate hearing people feeling so unhappy with GHC.  And yet, and yet -- I don't feel able to just down-tools on everything else and work on perf.  And that is true for many, I think.  It's a tragedy-of-the-commons problem.

What to do? Some thoughts.

* GHC itself may or may not be the main culprit.  There seems to be some 
  muttering about Cabal.

* We have had various attempts to appoint a Performance Tsar, but all have
  come to nothing.  

* We discussed it in our weekly GHC Skype chat yesterday.  One thing that
  would really help is to make it laughably easy to track
   - Micro: whether my commit made anything significantly worse
      (compile time/allocs, run time/allocs, binary size)
   - Macro: how HEAD is doing relative to the previous release

  Our current tools are weak, and make it too hard. 
   - We need a small number of aggregated numbers, 
     not hundreds of numbers.  (You might want the hundreds
     when digging into the details.)
   - We should include nofib, not just tests/perf
   - Our current perf tests only complain when you go outside
     a window, but 90% of the lossage might have been from other
     patches, which demotivates dealing with it
   - We don’t have any tools that show what time/alloc gets spent
     in which pass.

* You would think that perf improvements would be something
  lots of people would like to work on: EVERYONE will love you.
  But in fact no one does.

  Increase incentives: maybe out tooling could generate a
  leader-board showing who is responsible for what total perf
  improvement, so that glory gets properly allocated.

  Paying for it.  Austin found companies who are nearly at the 
  point of hiring someone to work on perf.  Maybe a collection
  of companies could together pay Well Typed for a GHC perf
  engineer, who focused on nothing else.  That would be amazing.

Any other ideas?

Simon

| -----Original Message-----
| From: Manuel M T Chakravarty [mailto:chak at justtesting.org]
| Sent: 14 February 2016 23:14
| To: GHC developers <ghc-devs at haskell.org>
| Cc: Simon Peyton Jones <simonpj at microsoft.com>; Simon Marlow
| <marlowsd at gmail.com>
| Subject: Fwd: Is anything being done to remedy the soul crushing compile
| times of GHC?
| 
| There is currently an interesting discussion on Reddit on GHC compile times
| 
| 
| https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fwww.reddit.c
| om%2fr%2fhaskell%2fcomments%2f45q90s%2fis_anything_being_done_to_remedy_the_s
| oul%2f&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7c01d58fefbba44e5cb27e
| 08d33594990e%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Xqnm6BreVSdpGJgP9oA
| L%2bMkC1QjRPYko%2f18iliKW8vk%3d
| 
| I feel that this is a serious problem; so, it probably ought to be discussed
| here as well.
| 
| Manuel



More information about the ghc-devs mailing list