summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-04-13 13:22:55 -0400
committerBen Gamari <ben@smart-cactus.org>2018-04-13 14:17:14 -0400
commit00b8ecb78624511a045120673b01fafe5794ecdc (patch)
tree2f2e9cb3eb65650488902917c99d67623976035e
parentce27c7d5fe3c335dcc354b70fdfc17831a6848f6 (diff)
downloadhaskell-00b8ecb78624511a045120673b01fafe5794ecdc.tar.gz
Declare `catchRetry#` lazy in its first argument
As per the results on item 1 in T14998, declaring `catchRetry#` lazy in its first argument opens the possibility to remove `ExnStr` complexity from strictness demands at virtually no regressions in NoFib. This brings `catchRetry#` in line with other primops from the `catch*` family. Reviewers: bgamari, simonpj, nomeata Reviewed By: bgamari Subscribers: thomie, carter GHC Trac Issues: #14998, #11222 Differential Revision: https://phabricator.haskell.org/D4573
-rw-r--r--compiler/prelude/primops.txt.pp2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp
index 1362704074..4098e80d47 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]