Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC

Commits:

7 changed files:

Changes:

  • libraries/base/changelog.md
    ... ... @@ -22,6 +22,7 @@
    22 22
       * `GHC.Conc.throwSTM` and `GHC.Conc.Sync.throwSTM` now carry a `HasCallStack` constraint and attach a `Backtrace` annotation to the thrown exception. ([GHC #25365](https://gitlab.haskell.org/ghc/ghc/-/issues/25365))
    
    23 23
       * `GHC.Conc.catchSTM` and `GHC.Conc.Sync.catchSTM` now attach `WhileHandling` annotation to exceptions thrown from the handler. ([GHC #25365](https://gitlab.haskell.org/ghc/ghc/-/issues/25365))
    
    24 24
       * Remove `GHC.JS.Prim.Internal.Build`, as per [CLC #329](https://github.com/haskell/core-libraries-committee/issues/329)
    
    25
    +  * Export `labelThread` from `Control.Concurrent`.([CLC proposal #376](https://github.com/haskell/core-libraries-committee/issues/376))
    
    25 26
     
    
    26 27
     ## 4.22.0.0 *TBA*
    
    27 28
       * Shipped with GHC 9.14.1
    

  • libraries/base/src/Control/Concurrent.hs
    ... ... @@ -82,6 +82,9 @@ module Control.Concurrent (
    82 82
             -- * Weak references to ThreadIds
    
    83 83
             mkWeakThreadId,
    
    84 84
     
    
    85
    +        -- * Thread debugging
    
    86
    +        labelThread,
    
    87
    +
    
    85 88
             -- * GHC's implementation of concurrency
    
    86 89
     
    
    87 90
             -- |This section describes features specific to GHC's
    

  • libraries/base/src/System/Timeout.hs
    ... ... @@ -29,7 +29,6 @@ import GHC.Internal.Control.Exception (Exception(..), handleJust, bracket,
    29 29
                                 asyncExceptionToException,
    
    30 30
                                 asyncExceptionFromException)
    
    31 31
     import GHC.Internal.Data.Unique         (Unique, newUnique)
    
    32
    -import GHC.Conc (labelThread)
    
    33 32
     import Prelude
    
    34 33
     
    
    35 34
     -- $setup
    

  • testsuite/tests/interface-stability/base-exports.stdout
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b
    

  • testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b
    

  • testsuite/tests/interface-stability/base-exports.stdout-mingw32
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b
    

  • testsuite/tests/interface-stability/base-exports.stdout-ws-32
    ... ... @@ -120,6 +120,7 @@ module Control.Concurrent where
    120 120
       isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    121 121
       isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
    
    122 122
       killThread :: ThreadId -> GHC.Internal.Types.IO ()
    
    123
    +  labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO ()
    
    123 124
       mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a))
    
    124 125
       mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId)
    
    125 126
       modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b