cross module optimization issues

Mitchell, Neil neil.mitchell.2 at
Fri Nov 21 05:39:46 EST 2008

Hi John,

I'm vaguely curious, and have next week off, so if you can provide the
code, and directions for running in both variants and the test case,
I'll take a look. Please email me at ndmitchell -AT- though,
as I loose this email address at 11pm tonight :-)



> -----Original Message-----
> From: glasgow-haskell-users-bounces at 
> [mailto:glasgow-haskell-users-bounces at] On Behalf 
> Of Simon Peyton-Jones
> Sent: 21 November 2008 10:34 am
> To: John Lato
> Cc: glasgow-haskell-users at; Don Stewart
> Subject: RE: cross module optimization issues
> | This project is based on Oleg's Iteratee code; I started using his 
> | IterateeM.hs and Enumerator.hs files and added my own stuff to 
> | Enumerator.hs (thanks Oleg, great work as always).  When I started 
> | cleaning up by moving my functions from Enumerator.hs to 
> MyEnum.hs, my 
> | minimal test case increased from 19s to 43s.
> |
> | I've found two factors that contributed.  When I was cleaning up, I 
> | also removed a bunch of unused functions from IterateeM.hs (some of 
> | the test functions and functions specific to his running example of 
> | HTTP encoding).  When I added those functions back in, and added 
> | INLINE pragmas to the exported functions in MyEnum.hs, I got the 
> | performance back.
> |
> | In general I hadn't added export lists to the modules yet, so all 
> | functions should have been exported.
> I'm totally snowed under with backlog from my recent absence, 
> so I can't look at this myself, but if anyone else wants to 
> I'd be happy to support with advice and suggestions.
> In general, having an explicit export list is good for 
> performance. I typed an extra section in the GHC performance 
> resource to 
> explain why.  In general that page is where we should 
> document user advice for performance in GHC.
> I can't explain why *adding* unused functions would change 
> performance though!
> Simon
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at

Please access the attached hyperlink for an important electronic communications disclaimer:

More information about the Glasgow-haskell-users mailing list