Yikes! While investigating the increase in code size with GHC 6.8
relative to 6.6, I noticed that in the transition to Cabal for the
libraries we lost -funbox-strict-fields, which is more or less
depended on by the IO library for performance. I'm astonished that we
didn't notice this earlier!
To reduce the chances of this happening again, I put
-funbox-strict-fields in the OPTIONS_GHC pragma of the modules that
need it. {-# UNPACK #-} pragmas would be better, though.
-{-# OPTIONS_GHC -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -fno-implicit-prelude -funbox-strict-fields #-}
-----------------------------------------------------------------------------
-- |
-----------------------------------------------------------------------------
-- |
-{-# OPTIONS_GHC -fno-implicit-prelude -fallow-overlapping-instances #-}
+{-# OPTIONS_GHC -fno-implicit-prelude -fallow-overlapping-instances -funbox-strict-fields #-}
-- The -fallow-overlapping-instances flag allows the user to over-ride
-- the instances for Typeable given here. In particular, we provide an instance
-- The -fallow-overlapping-instances flag allows the user to over-ride
-- the instances for Typeable given here. In particular, we provide an instance
-{-# OPTIONS_GHC -fno-implicit-prelude -fno-bang-patterns #-}
+{-# OPTIONS_GHC -fno-implicit-prelude -fno-bang-patterns -funbox-strict-fields #-}
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Arr
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Arr
-{-# OPTIONS_GHC -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -fno-implicit-prelude -funbox-strict-fields #-}
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IOBase
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IOBase