
20 May
2008
20 May
'08
4:50 p.m.
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 -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com