
#13027: Core lint errors compiling containers HEAD with GHC HEAD -------------------------------------+------------------------------------- Reporter: erikd | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 8.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Building GHC | Test Case: failed | simplCore/should_compile/T13027 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): Is there a reason ''not'' to make `exprOkForSpeculation` more lenient for `reallyUnsafePtrEquality#`? Having it otherwise seems inconsistent, but it's also possible that it doesn't enable useful floating or that it's too much trouble to make it happen. I dug around just a bit, and the only other lazy primitives I could find that might be safe for speculation were `unpackClosure#` and (under certain circumstances, maybe) `seq`. I'm somewhat concerned about the fact that the problem tracking evaluatedness was only revealed "by chance", because `exprOkForSpeculation` is (seemingly) too conservative about `reallyUnsafePtrEquality#`. Is there some way to make this tracking more robust? I understand that you and Max Bolingbroke worked on some possibly- related ideas in "Types are Calling Conventions". What's your intuition about whether the type system can help here without making life horrible? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13027#comment:22 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler