[Git][ghc/ghc][wip/9.14.2-backports] 14 commits: Hide implementation details from base exception stack traces
Zubin pushed to branch wip/9.14.2-backports at Glasgow Haskell Compiler / GHC Commits: a549dfd6 by fendor at 2026-06-11T09:36:54+05:30 Hide implementation details from base exception stack traces Ensure we hide the implementation details of the exception throwing mechanisms: * `undefined` * `throwSTM` * `throw` * `throwIO` * `error` The `HasCallStackBacktrace` should always have a length of exactly 1, not showing internal implementation details in the stack trace, as these are vastly distracting to end users. CLC proposal [#387](https://github.com/haskell/core-libraries-committee/issues/387) (cherry picked from commit 016f79d54d482de01dd396bd9bf79f958d7c4922) - - - - - 07e10c56 by sheaf at 2026-06-11T09:36:54+05:30 Relax acceptance threshold for T10421 As seen in #27289, the 1% acceptance threshold for this text was overly narrow, resulting in spurious test failures. This commit widens the acceptance threshold to 2%. Fixes #27289. (cherry picked from commit b0233814d63c2802a521dfc7dae08b1ecf494c50) - - - - - c7f02460 by mangoiv at 2026-06-11T09:36:54+05:30 libraries/process: bump submodule to v1.6.29.0 This submodule bump resolves a segfault on macos 15. Fixes #27144 (cherry picked from commit 277a3687c4b729e4d1ff4d4503a5673deba5eda7) - - - - - 8206e59b by mangoiv at 2026-06-11T09:36:54+05:30 libraries/unix: in submodule, don't pick branch 2.7 The 2.7 branch is outdated and the module has been advanced far beyond it anyway, so remove that line. (cherry picked from commit 6779bb0c2d2784182465337ba5e94b7cd8810f2b) - - - - - 19c9c327 by Luite Stegeman at 2026-06-11T09:36:54+05:30 Fixes for black holes - suspend duplicate work for eager black holes - detect eager black holes in checkBlockingQueues - don't overwrite existing black holes even if they're not in an eager blackhole frame - don't deadlock on self when thunk is already blackholed Fixes #26936 (cherry picked from commit 63ce5770da1712f0da54665d8755772bf38ba51e) - - - - - e4e0b611 by Tom McLaughlin at 2026-06-11T09:36:54+05:30 Event/Windows.hsc: rethrow exceptions in overlapped IO This prevents the WinIO manager from swallowing exceptions in overlapped IO. It was added to make WinIO support possible in the `network` library. See https://gitlab.haskell.org/ghc/ghc/-/issues/27283. We also bump __IO_MANAGER_WINIO__ to 2 so libraries can gate on this using CPP. (cherry picked from commit 037a80dc65d3975adf4a35d46876850e644bc80e) - - - - - d2e47026 by Zubin Duggal at 2026-06-11T09:36:54+05:30 Update to semaphore-compat 2.0.0 using v2 of the protocol On Linux and other POSIX platforms, GHC's -jsem jobserver client now speaks v2 of the semaphore-compat protocol, which uses Unix domain sockets in place of POSIX named semaphores. This avoids the libc-ABI issues that affected the old implementation. Windows is unaffected and continues to use the v1 protocol (Win32 named semaphores); its reported protocol version remains v1. When GHC receives a -jsem name whose protocol version it does not support, it emits a -Wsemaphore-version-mismatch warning and falls back to -j<N> rather than crashing. ghc --info exposes the supported version in a new "Semaphore version" entry so cabal-install can detect a mismatch before invoking GHC. Users on a cabal-install that predates the v2 update will continue to build successfully on Linux/POSIX, but will lose the cross-process -jsem coordination and fall back to -j<N> per GHC invocation. Users must upgrade to a cabal-install that supports protocol v2 to recover full parallelism. Also fix a leak in cleanupSem (#27253): cleanupSem used to snapshot heldTokens and release them before killing the loop, while the loop's in-flight acquire/release children could still be mutating it. Cleanup now runs inside the loop's own exit handler, after draining the active child via a new activeChild TVar, so the snapshot has no concurrent mutator. See also: - GHC proposal amendment: https://github.com/ghc-proposals/ghc-proposals/pull/673 - cabal-install patch: https://github.com/haskell/cabal/pull/11628 - semaphore-compat MR: https://gitlab.haskell.org/ghc/semaphore-compat/-/merge_requests/8 Bump semaphore-compat submodule to 2.0.0 Fixes #25087 and #27253 (cherry picked from commit 8db331a381ae47ad9ad5c8613f5d3e2588d5dd55) - - - - - 4cec40ed by mangoiv at 2026-06-11T09:36:54+05:30 Trim the continuation in mkDupableContWithDmds When there are no remaining argument demands, it means the application is bottoming. In this case, we can trim the continuation to avoid the panic that was observed in #27261. See Note [Trimming the continuation for bottoming functions] in GHC.Core.Opt.Simplify.Iteration. This patch was rewritten to avoid pulling in a refactor. The original patch is included in master as 4a645683 (cherry picked from commit 53f74985860b35a879bfd0dc642e7fcafffcf5e4) - - - - - 749824b7 by mangoiv at 2026-06-11T09:36:54+05:30 profiling: partial backport of 2dadf3b0 to fix #27121 This backports fix and test for #27121 from 2dadf3b0 since the entirety of the patch is not backportable without also backporting two larger refactorings. (cherry picked from commit 0ccecfc5b5a118c2c850f876709c21162d35d972) - - - - - be9b07ad by Teo Camarasu at 2026-06-11T09:36:54+05:30 Add explicit export list to GHC.Num Let's make clear what this module exports to allow us to easily deprecate and remove some of these in the future. Resolves https://gitlab.haskell.org/ghc/ghc/-/issues/26625 (cherry picked from commit b14bdd59202e0c32df8e5cc1923677f59c8f16e7) - - - - - a664ed30 by Teo Camarasu at 2026-06-11T09:36:54+05:30 base: deprecate GHC internals in GHC.Num Implements CLC proposal: https://github.com/haskell/core-libraries-committee/issues/360 (cherry picked from commit 75a9053d26183e71b48de4c603b04af2fa4a732d) - - - - - 1ee3466b by Simon Peyton Jones at 2026-06-11T09:36:54+05:30 Add a deprecation warning for static forms The accepted GHC proposal 732: Simplify static forms https://github.com/ghc-proposals/ghc-proposals/pull/732 needs a deprecation warning added to GHC 9.14, to warn about static forms that mention nested free variables; see #26718. This MR adds that warning, with test T26718 to check it. There is no flag to switch the warning off. (cherry picked from commit 6b7d6287c6ff4fd1b0d3aa2abfdaf73d43c4a9a0) - - - - - 8e260c6a by Cheng Shao at 2026-06-11T09:36:54+05:30 rts: fix -Wcompare-distinct-pointer-types errors This commit fixes `-Wcompare-distinct-pointer-types` errors in the RTS which should have been caught by the `validate` flavour but was warnings in CI due to the recent `+werror` regression. (cherry picked from commit de54e264c3c87c21e4243c2e9a402923ec7d9d6e) - - - - - 08c99230 by Cheng Shao at 2026-06-11T09:36:54+05:30 ghci: fix unused imports This commit fixes unused imports in `ghci` which should have been caught by the `validate` flavour but was warnings in CI due to the recent `+werror` regression. Fixes #26987 #27059. (cherry picked from commit da946a16575a3b261206b75ce958b90b86a5e801) - - - - - 83 changed files: - .gitmodules - + changelog.d/bump-process - + changelog.d/fix-blackhole-handling - + changelog.d/jobserver-leak-fix - + changelog.d/semaphore-v2 - + changelog.d/windows-rethrow-overlapped-exception - compiler/GHC/Core/Opt/Simplify/Iteration.hs - compiler/GHC/Core/Opt/Simplify/Utils.hs - compiler/GHC/Core/Utils.hs - compiler/GHC/Driver/Errors/Ppr.hs - compiler/GHC/Driver/Errors/Types.hs - compiler/GHC/Driver/Flags.hs - compiler/GHC/Driver/MakeAction.hs - compiler/GHC/Driver/MakeSem.hs - compiler/GHC/Driver/Session.hs - compiler/GHC/Rename/Expr.hs - compiler/GHC/SysTools/Cpp.hs - compiler/GHC/Tc/Errors/Ppr.hs - compiler/GHC/Tc/Errors/Types.hs - compiler/GHC/Types/Error/Codes.hs - compiler/GHC/Types/Hint.hs - compiler/GHC/Types/Hint/Ppr.hs - docs/users_guide/using-warnings.rst - docs/users_guide/using.rst - hadrian/src/Flavour.hs - libraries/base/src/GHC/Num.hs - libraries/ghc-experimental/tests/backtraces/T26806b.stderr - libraries/ghc-internal/src/GHC/Internal/Event/Windows.hsc - libraries/ghc-internal/src/GHC/Internal/Exception.hs - libraries/ghc-internal/src/GHC/Internal/STM.hs - + libraries/ghc-internal/tests/backtraces/T15395.hs - + libraries/ghc-internal/tests/backtraces/T15395.stdout - libraries/ghc-internal/tests/backtraces/all.T - libraries/ghc-internal/tests/stack-annotation/ann_frame005.stdout - libraries/ghci/GHCi/Message.hs - libraries/ghci/GHCi/Server.hs - libraries/process - libraries/semaphore-compat - rts/Interpreter.c - rts/Messages.c - rts/ThreadPaused.c - rts/Threads.c - rts/Updates.h - rts/include/rts/storage/ClosureMacros.h - testsuite/tests/arrows/should_compile/T21301.stderr - testsuite/tests/codeGen/should_run/CgStaticPointers.hs - testsuite/tests/codeGen/should_run/CgStaticPointersNoFullLazyness.hs - testsuite/tests/deSugar/should_fail/DsStrictFail.stderr - testsuite/tests/deSugar/should_run/T20024.stderr - testsuite/tests/deSugar/should_run/dsrun005.stderr - testsuite/tests/deSugar/should_run/dsrun007.stderr - testsuite/tests/deSugar/should_run/dsrun008.stderr - testsuite/tests/deriving/should_run/T9576.stderr - testsuite/tests/diagnostic-codes/codes.stdout - testsuite/tests/ghci/scripts/Defer02.stderr - testsuite/tests/ghci/scripts/T15325.stderr - 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 - testsuite/tests/patsyn/should_run/ghci.stderr - testsuite/tests/perf/compiler/all.T - + testsuite/tests/profiling/should_compile/T27121.hs - + testsuite/tests/profiling/should_compile/T27121_aux.hs - testsuite/tests/profiling/should_compile/all.T - testsuite/tests/quotes/LiftErrMsgDefer.stderr - testsuite/tests/rename/should_fail/RnStaticPointersFail01.stderr - testsuite/tests/rename/should_fail/RnStaticPointersFail03.stderr - testsuite/tests/safeHaskell/safeLanguage/SafeLang15.stderr - + testsuite/tests/simplCore/should_compile/T27261.hs - + testsuite/tests/simplCore/should_compile/T27261_aux.hs - testsuite/tests/simplCore/should_compile/all.T - testsuite/tests/type-data/should_run/T22332a.stderr - + testsuite/tests/typecheck/should_compile/T26718.hs - + testsuite/tests/typecheck/should_compile/T26718.stderr - testsuite/tests/typecheck/should_compile/all.T - testsuite/tests/typecheck/should_run/T10284.stderr - testsuite/tests/typecheck/should_run/T13838.stderr - testsuite/tests/typecheck/should_run/T9497a-run.stderr - testsuite/tests/typecheck/should_run/T9497b-run.stderr - testsuite/tests/typecheck/should_run/T9497c-run.stderr - testsuite/tests/unsatisfiable/T23816.stderr - testsuite/tests/unsatisfiable/UnsatDefer.stderr The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/380ba599ef762082f7d9c4917ea0fec... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/380ba599ef762082f7d9c4917ea0fec... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Zubin (@wz1000)