Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information