I'll take a look!
On Fri, May 3, 2013 at 1:56 AM, Simon Peyton-Jones <simo...@microsoft.com>wrote: > Johan**** > > ** ** > > Did you validate before committing -funbox-strict-fields being the default? > **** > > ** ** > > I’m getting this:**** > > ** ** > > Unexpected failures:**** > > perf/should_run T4474a [stat not good enough] (normal)**** > > perf/should_run T4474b [stat not good enough] (normal)**** > > perf/should_run T4474c [stat not good enough] (normal)**** > > simplCore/should_compile T7360 [stderr mismatch] (optasm)**** > > ** ** > > The last is certainly caused by -funbox-strict-fields being the default.** > ** > > ** ** > > The first three almost certainly are too, since there is a data type**** > > data Tree = Leaf !Int | Fork !Tree !Tree deriving Show**** > > ** ** > > In all three cases we allocate 25% more:**** > > bytes allocated value is too high:**** > > Expected bytes allocated: 3766493912 +/-5%**** > > Lower bound bytes allocated: 3578169216 **** > > Upper bound bytes allocated: 3954818608 **** > > Actual bytes allocated: 4831890456**** > > ** ** > > Ironically Trac #4874 is a performance bug that you reported yourself, > saying that there is too much unnecessary boxing!**** > > ** ** > > Would you like to investigate? Maybe there is another bug to fix? **** > > ** ** > > I think it’s because “fulllTree” shares all the (I# 1) constants at all > the leaves, whereas the strict version makes a tree with a 1# at every > leaf, and allocates an I# box for each of them when it flattens the tree. > Maybe that is too much a special case to worry about. **** > > ** ** > > Now this may be fine, but it’s certainly worth noting. And if you decide > it’s acceptable (and you are the Peformance Tsar after all), you need to > adjust the test bounds.**** > > ** ** > > Simon**** >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs