Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
-
be8e5236
by Ben Gamari at 2026-01-23T03:28:45-05:00
-
5aa328fb
by Zubin Duggal at 2026-01-23T03:29:30-05:00
-
63ebabb6
by Oleg Grenrus at 2026-01-23T04:02:29-05:00
-
eaa19c00
by Cheng Shao at 2026-01-23T04:02:31-05:00
10 changed files:
- .gitlab/ci.sh
- docs/users_guide/index.rst
- hadrian/hadrian.cabal
- 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-javascript-unknown-ghcjs
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- testsuite/tests/interface-stability/base-exports.stdout-ws-32
Changes:
| ... | ... | @@ -493,6 +493,11 @@ function fetch_perf_notes() { |
| 493 | 493 | }
|
| 494 | 494 | |
| 495 | 495 | function push_perf_notes() {
|
| 496 | + if [[ "${CI_COMMIT_BRANCH:-}" != "master" ]] && [[ ! "${CI_COMMIT_BRANCH:-}" =~ ghc-[0-9]+\.[0-9]+ ]]; then
|
|
| 497 | + info "Perf notes are only pushed on master/release branches"
|
|
| 498 | + return
|
|
| 499 | + fi
|
|
| 500 | + |
|
| 496 | 501 | if [[ -z "${TEST_ENV:-}" ]]; then
|
| 497 | 502 | return
|
| 498 | 503 | fi
|
| ... | ... | @@ -29,6 +29,7 @@ Contents: |
| 29 | 29 | eventlog-formats
|
| 30 | 30 | glossary
|
| 31 | 31 | editing-guide
|
| 32 | + genindex
|
|
| 32 | 33 | |
| 33 | 34 | |
| 34 | 35 | Indices and tables
|
| ... | ... | @@ -190,4 +190,4 @@ executable hadrian |
| 190 | 190 | if flag(selftest)
|
| 191 | 191 | other-modules: Rules.Selftest
|
| 192 | 192 | cpp-options: -DHADRIAN_ENABLE_SELFTEST
|
| 193 | - build-depends: QuickCheck >= 2.6 && < 2.15 |
|
| 193 | + build-depends: QuickCheck >= 2.6 && < 2.18 |
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|