Non-deterministic pure code in Data.Typeable
Comparing the result of 'typeOf ()' performed in different threads sometimes yields true and sometimes false. To reproduce compile the attached source file with
ghc-7.0.3 -threaded -rtsopts TypeRepEq.hs
And execute it in a shell loop. Looping the inside the Haskell program will usually not show the bug.
while true ; do ./TypeReqEq +RTS -N ; done
Every program run will print either "Ok" or "typeOf () /= typeOf ()". The latter would indicate the bug.
The issue has been discussed on the glasgow-haskell-users mailing list in this thread: http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/20754
Different people said that they can reproduce the bug on Mac OS X and Linux with different versions of GHC 6.12.x and 7.0.x. GHC 7.2 does not show the bug.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.0.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | libraries/base |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | jmg@gaillourdet.net |
| Operating system | |
| Architecture |