[GHC] #14998: Sort out the strictness mess for exceptions
GHC
ghc-devs at haskell.org
Fri Apr 6 09:05:48 UTC 2018
#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):
The diff I used for item 1:
{{{
diff --git a/compiler/prelude/primops.txt.pp
b/compiler/prelude/primops.txt.pp
index 1362704074..4c65ba4220 100644
--- a/compiler/prelude/primops.txt.pp
+++ b/compiler/prelude/primops.txt.pp
@@ -2377,7 +2377,7 @@ primop CatchRetryOp "catchRetry#" GenPrimOp
-> (State# RealWorld -> (# State# RealWorld, a #) )
-> (State# RealWorld -> (# State# RealWorld, a #) )
with
- strictness = { \ _arity -> mkClosedStrictSig [ catchArgDmd
+ strictness = { \ _arity -> mkClosedStrictSig [ lazyApply1Dmd
, lazyApply1Dmd
, topDmd ] topRes }
-- See Note [Strictness for mask/unmask/catch]
}}}
No change in allocations, max +0.1% in counted instructions for `scc`. I
have yet to run a validate, but this seems worthwhile if it would get rid
of `ExnStr`!
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14998#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list