[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