id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
2338,unpack primitive types by default in data? and NOUNPACK?,Isaac Dupree,simonmar,"We should have a NOUNPACK pragma paralleling UNPACK so that we can unpack data types by default without completely taking away control from the programmer.  (Currently, NOUNPACK would only have any effect when `-funbox-strict-fields` is given.)

We may want to unpack strict primitive types by default (at least with -O), such as in the following
{{{
data D a = D !Int !Double
}}}
(Because those are the types that it's most often useful to pass around in registers, for one thing?)

But it's probably worth testing on a lot of existing code to make sure it's never too much of a penalty in practice.  (But considering the amount that people just use `-funbox-strict-fields` without thinking, because having to place all those UNPACK pragmas is annoying, making the default be a little smarter is probably useful.)

see parts of this thread: http://thread.gmane.org/gmane.comp.lang.haskell.cafe/40294/focus=40316

related tickets, in order of decreasing relatedness: #605, #1349; #1433, #2289",feature request,closed,high,7.4.1,Compiler,6.8.2,fixed,,leuschner@… johan.tibell@… mail@…,Unknown/Multiple,Unknown/Multiple,None/Unknown,Unknown,,,,
