GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2019-07-07T19:15:46Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/1036Asynchronous exceptions improvements2019-07-07T19:15:46ZSimon MarlowAsynchronous exceptions improvementsThere was some discussion about asynchronous exceptions on the haskell-prime list, eg.
- [http://www.haskell.org/pipermail/haskell-prime/2006-April/001280.html](http://www.haskell.org/pipermail/haskell-prime/2006-April/001280.html)
- [h...There was some discussion about asynchronous exceptions on the haskell-prime list, eg.
- [http://www.haskell.org/pipermail/haskell-prime/2006-April/001280.html](http://www.haskell.org/pipermail/haskell-prime/2006-April/001280.html)
- [http://www.haskell.org/pipermail/haskell-prime/2006-April/001290.html](http://www.haskell.org/pipermail/haskell-prime/2006-April/001290.html)
We might want to consider adding
```
blockAll :: IO () -> IO ()
```
and perhaps making `block`/`unblock` count nesting.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 6.6 |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |
</details>
<!-- {"blocked_by":[],"summary":"Asynchronous exceptions improvements","status":"New","operating_system":"Unknown","component":"Compiler","related":[],"milestone":"⊥","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"simonmar"},"version":"6.6","keywords":[],"differentials":[],"test_case":"","architecture":"Unknown","cc":[""],"type":"Task","description":"There was some discussion about asynchronous exceptions on the haskell-prime list, eg.\r\n\r\n * [http://www.haskell.org/pipermail/haskell-prime/2006-April/001280.html]\r\n * [http://www.haskell.org/pipermail/haskell-prime/2006-April/001290.html]\r\n\r\nWe might want to consider adding\r\n\r\n{{{\r\nblockAll :: IO () -> IO ()\r\n}}}\r\n\r\nand perhaps making `block`/`unblock` count nesting.","type_of_failure":"OtherFailure","blocking":[]} -->⊥Simon MarlowSimon Marlowhttps://gitlab.haskell.org/ghc/ghc/-/issues/914Improve detection of unnecessary SOURCE imports2019-07-07T19:16:19ZSimon MarlowImprove detection of unnecessary SOURCE importsCurrently unnecessary SOURCE imports are detected by the renamer, but that is a slightly unsatisfactory solution because it is unpredictable whether we will have compiled the real module before we get to the unnecessary SOURCE import or ...Currently unnecessary SOURCE imports are detected by the renamer, but that is a slightly unsatisfactory solution because it is unpredictable whether we will have compiled the real module before we get to the unnecessary SOURCE import or not - it depends on the topological sort performed by the downsweep (or make).
An improvement would be to look at the results of the strongly connected component analysis performed on the graph with SOURCE imports included, and report any SOURCE import edges *between components* as unnecessary, because replacing one of these with a non-SOURCE import cannot introduce a cycle.
Related to #906⊥Simon MarlowSimon Marlow