
On Fri, 2 May 2008, Neil Mitchell wrote:
Hi Don,
Just a quick announcement, I've uploaded to hackage 'ghc-core' , a wrapper over ghc for displaying the optimised core and assembly language ghc produces from your programs.
This is cool, but it still lags behind the facilities found in yhc-core.
http://yhc06.blogspot.com/2006/12/yhccorehtml.html
I have found that any effort put into improving Core viewing tools repays itself rather quickly, and that HTML output with hyperlinks is incredibly handy!
An even more advanced tool could show differences between two Core listings. Say I have a program which runs too slow. But if I change a small detail it runs significantly faster - I want to know, how did my change in the Haskell file modified the Core and why the speedup. Showing differences between Core files will certainly be complicated because the generated identifiers are completely different. I don't know whether the order of declarations is a problem. I have an example here where a program becomes faster by a factor of 10 with a rather small change. First I thought the slow thing must be the higher order function which occurs in the Core and is not inlined, but it is present in the slow and the fast variant of the program.