On Wed, Dec 14, 2005 at 02:17:17PM -0000, Simon Marlow wrote: > Suppose you create two top-level IORefs with the same type, like this: > > var1 = unsafePerformIO $ newIORef 0 > var2 = unsafePerformIO $ newIORef 0 > > GHC's CSE optimisation will common these up - after all, it's the same > expression, so it must yield the same result, right?
Ah, yes. Thanks for explanation. > To turn this off, we use -fno-cse. It's good practice to use -fno-cse > whenever you use top-level mutable objects of any kind. You can put it > in the source file: > > {-# OPTIONS_GHC -fno-cse #-} > > at the top of your file. How about a new pragma: {-# OPTIMIZER_HANDS_OFF var1 #-} ;-) Best regards Tomasz -- I am searching for a programmer who is good at least in some of [Haskell, ML, C++, Linux, FreeBSD, math] for work in Warsaw, Poland _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe