[commit: ghc] master: Declare `catchRetry#` lazy in its first argument (00b8ecb)
git at git.haskell.org
git at git.haskell.org
Fri Apr 13 18:17:29 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/00b8ecb78624511a045120673b01fafe5794ecdc/ghc
>---------------------------------------------------------------
commit 00b8ecb78624511a045120673b01fafe5794ecdc
Author: Ben Gamari <ben at smart-cactus.org>
Date: Fri Apr 13 13:22:55 2018 -0400
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
>---------------------------------------------------------------
00b8ecb78624511a045120673b01fafe5794ecdc
compiler/prelude/primops.txt.pp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp
index 1362704..4098e80 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]
More information about the ghc-commits
mailing list