[Haskell-cafe] Top-level TVars

Tomasz Zielonka tomasz.zielonka at gmail.com
Wed Dec 14 15:29:24 EST 2005

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:



Best regards

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

More information about the Haskell-Cafe mailing list