
#13615: Nondeterminism in ‘pure’ function w/ parallel evaluation & memo combinators -------------------------------------+------------------------------------- Reporter: pacak | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.2.1 Component: Compiler | Version: 8.2.1-rc2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result | Unknown/Multiple at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by glguy): I believe I was experiencing this same bug in code that used Foreign.Marshal.Unsafe.unsafeLocalState and par together https://github.com/glguy/kami-solver/blob/master/src/Kami.hs#L172-L181 unsafeLocalState is defined as unsafeDupablePerformIO. Switching to unsafePerformIO (which adds the noDuplicate) resolved the random segmentation faults. I'm just adding this comment here in case it becomes useful at some point. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13615#comment:28 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler