
12 May
2017
12 May
'17
11:47 a.m.
Mikolaj Konarski
Truly impressive. Amazing.
I wonder what style of coding of inner loops leads to such good results in 8.2. Is it easy to describe? Or is the answer "any" or "simplest" or "natural"? If not, can it be captured as some recursion combinators perhaps?
My fairly unhelpful description would be that carefully-written programs that look like they shouldn't allocate will be helped most. Previously these program (e.g. probably the one here) would allocate closures due to GHC's failure to identify some types of join points. In 8.2 our treatment of join points is more robust and consequently this unnecessary allocation will be more reliably eliminated. Cheers, - Ben