
bulat.ziganshin:
Hello Andrew,
Wednesday, May 21, 2008, 12:09:39 AM, you wrote:
Right, OK - so strict evaluation, but some bitpattern in RAM.
yes. in particular this allows to designate fields that should de initialized:
data A = A {a :: Int, b :: !Int} main = print A{}
it is not enabled by default, because for *non-primitive* datatypes such as B below automatic unboxing of strict fields of this type may decrease sharing and thus memory/performance.
Yeah, I can imagine...
sometime i've seriously optimized my program by removing this switch and adding manual unboxing directives to the sources. it will be great if ghc will catch jhc here
Would you like to file a feature request? http://hackage.haskell.org/trac/ghc/newticket?type=bug Particularly if you have an example where JHC has done a better job optimising some simple example. So far I've seen no ticke Unless tickets are opened, progress will not be made. -- Don