Thu Aug 14 07:53:55 PDT 2008 [EMAIL PROTECTED]
* Make dictionary functions small
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.
This patch make instances behave rather as if all the methods
were written in separate definitions. That dramatically reduces
bloat.
I am not 100% certain that all the corners are correct; for example,
when default methods are marked INLINE, are they inlined? So this
is a patch in progress.
It's nice that the patch also removes a lot of code. I deleted some
out of date comments, but there's something like 100 fewer lines of
code in the new version!
M ./compiler/typecheck/TcBinds.lhs -9 +12
M ./compiler/typecheck/TcClassDcl.lhs -287 +75
M ./compiler/typecheck/TcInstDcls.lhs -272 +243
M ./compiler/typecheck/TcType.lhs -10 +18
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20080814145355-1287e-4af98f22852d102572ed78e8e87705efdce2e64c.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc