diff options
author | David Feuer <david.feuer@gmail.com> | 2017-03-01 01:14:13 -0500 |
---|---|---|
committer | David Feuer <David.Feuer@gmail.com> | 2017-03-01 01:14:14 -0500 |
commit | 701256df88c61a2eee4cf00a59e61ef76a57b4b4 (patch) | |
tree | 390d51339bff6fb8d5369ec55a7d3cdc2fb5bb57 /compiler/basicTypes/Demand.hs | |
parent | b86d226fda2f512178e04da4dec96b15c4480507 (diff) | |
download | haskell-701256df88c61a2eee4cf00a59e61ef76a57b4b4.tar.gz |
Change catch# demand signature
* Give `catch#` a lazy demand signature, to make it more honest.
* Make `catchException` and `catchAny` force their arguments so they
actually behave as advertised.
* Use `catch` rather than `catchException` in `forkIO`, `forkOn`, and
`forkOS` to avoid losing exceptions.
Fixes #13330
Reviewers: rwbarton, simonpj, simonmar, bgamari, hvr, austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D3244
Diffstat (limited to 'compiler/basicTypes/Demand.hs')
-rw-r--r-- | compiler/basicTypes/Demand.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/basicTypes/Demand.hs b/compiler/basicTypes/Demand.hs index 71a044f51f..eab01d0605 100644 --- a/compiler/basicTypes/Demand.hs +++ b/compiler/basicTypes/Demand.hs @@ -708,7 +708,7 @@ lazyApply1Dmd, lazyApply2Dmd, strictApply1Dmd, catchArgDmd :: Demand strictApply1Dmd = JD { sd = Str VanStr (SCall HeadStr) , ud = Use Many (UCall One Used) } --- First argument of catch#: +-- First argument of catchRetry# and catchSTM#: -- uses its arg once, applies it once -- and catches exceptions (the ExnStr) part catchArgDmd = JD { sd = Str ExnStr (SCall HeadStr) |