Oleg Grenrus pushed to branch wip/labelThread-export at Glasgow Haskell Compiler / GHC Commits: e74b942d by Oleg Grenrus at 2026-01-08T18:18:41+02:00 Export labelThread from Control.Concurrent - - - - - 5 changed files: - libraries/base/changelog.md - libraries/base/src/Control/Concurrent.hs - libraries/base/src/System/Timeout.hs - testsuite/tests/interface-stability/base-exports.stdout - testsuite/tests/interface-stability/base-exports.stdout-mingw32 Changes: ===================================== libraries/base/changelog.md ===================================== @@ -17,6 +17,7 @@ * Adjust the strictness of `Data.List.iterate'` to be more reasonable: every element of the output list is forced to WHNF when the `(:)` containing it is forced. ([CLC proposal #335)](https://github.com/haskell/core-libraries-committee/issues/335) * Add `nubOrd` / `nubOrdBy` to `Data.List` and `Data.List.NonEmpty`. ([CLC proposal #336](https://github.com/haskell/core-libraries-committee/issues/336)) * Add `Semigroup` and `Monoid` instances for `Control.Monad.ST.Lazy`. ([CLC proposal #374](https://github.com/haskell/core-libraries-committee/issues/374)) + * Export `labelThread` from `Control.Concurrent`.([CLC proposal #376](https://github.com/haskell/core-libraries-committee/issues/376)) ## 4.22.0.0 *TBA* * Shipped with GHC 9.14.1 ===================================== libraries/base/src/Control/Concurrent.hs ===================================== @@ -82,6 +82,9 @@ module Control.Concurrent ( -- * Weak references to ThreadIds mkWeakThreadId, + -- * Thread debugging + labelThread, + -- * GHC's implementation of concurrency -- |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, asyncExceptionToException, asyncExceptionFromException) import GHC.Internal.Data.Unique (Unique, newUnique) -import GHC.Conc (labelThread) import Prelude -- $setup ===================================== testsuite/tests/interface-stability/base-exports.stdout ===================================== @@ -120,6 +120,7 @@ module Control.Concurrent where isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool killThread :: ThreadId -> GHC.Internal.Types.IO () + labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO () mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a)) mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId) 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 isCurrentThreadBound :: GHC.Internal.Types.IO GHC.Internal.Types.Bool isEmptyMVar :: forall a. MVar a -> GHC.Internal.Types.IO GHC.Internal.Types.Bool killThread :: ThreadId -> GHC.Internal.Types.IO () + labelThread :: ThreadId -> GHC.Internal.Base.String -> GHC.Internal.Types.IO () mkWeakMVar :: forall a. MVar a -> GHC.Internal.Types.IO () -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak (MVar a)) mkWeakThreadId :: ThreadId -> GHC.Internal.Types.IO (GHC.Internal.Weak.Weak ThreadId) modifyMVar :: forall a b. MVar a -> (a -> GHC.Internal.Types.IO (a, b)) -> GHC.Internal.Types.IO b View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e74b942dd575b3d20d9b5f61aa3a7aaf... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e74b942dd575b3d20d9b5f61aa3a7aaf... You're receiving this email because of your account on gitlab.haskell.org.