
#11222: Teach strictness analysis about `catch`-like operations -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: 8.2.1 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Exceptions Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by dfeuer): * status: closed => new * resolution: fixed => Comment: This was semantically shady and has been partially reverted. We would like to find a way to recover some of the benefits without the downsides. One strong possibility is to add a `catchIO#` primop that only catches exceptions thrown by `raiseIO#`. Such a primop could be handled more aggressively. See https://ghc.haskell.org/trac/ghc/wiki/Exceptions/PreciseExceptions. Another direction would be to treat `catch#` forms specially in strictness analysis, somewhat like `case` expressions. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11222#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler