
#14998: Sort out the strictness mess for exceptions -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.4.3 Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Exceptions Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by sgraf): Just to sum up this thread so far: - Item 1 (make `catchRetry#` lazy) was merged and @dfeuer works on removing `ExnStr` from `Demand.hs` on `wip/no-exnstr`. - Item 2 was about finding out where things regress if we got rid of the strictness introduced in `catchException` and `catchAny`. I summarised my debugging sessions in [comment:16]. - Item 3 (make `catch#` strict and see if it improves things) was handled in [comment:2]. Contrary to prior measurements, I couldn't make out huge improvements, probably due to [comment:17]. I didn't bother to pinpoint where the -0.1% came from, though. - Item 4 (IO hack) isn't fully resolved yet, but I addressed it in [comment:21]. @dfeuer (probably?) wrote down his thoughts on this on [wiki:Exceptions/PreciseExceptions#Implementingpreciseexceptions]. - Item 5 (strictness of `raiseIO#`) is still open. I don't think I can address this at all, lacking too much background. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14998#comment:30 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler