patch applied (ghc): Major change in compilation of
instancedeclarations (fix Trac #955, #2328)
claus.reinke at talk21.com
Wed Sep 3 08:33:30 EDT 2008
> Wed Sep 3 05:02:28 PDT 2008 simonpj at microsoft.com
> * Major change in compilation of instance declarations (fix Trac #955, #2328)
> This patch makes an important change to the way that dictionary
> functions are handled. Before, they were unconditionally marked
> INLIINE, but all the code written by the user in the instance
> was inside that unconditionally-inlined function. Result: massive
> code bloat in programs that use complicated instances.
But that inlining might also go a way towards partially evaluating
instance methods, if the inlining is bounded by finite types. So
limiting that inlining might result in slower code, escpecially for
libraries with complex instances (HList's record selection, say).
Is there a way to optionally enable the inlining of the instance
method code, rather than the short wrapper only? Were there
no cases where the code bloat was temporary, with the longer
compile-times actually being used to optimize the exposed
code into something smaller again?
And does this fix #2438, too?
More information about the Cvs-ghc