Zubin pushed to branch wip/9.14.2-rc2 at Glasgow Haskell Compiler / GHC Commits: 5d61a09a by Brian McKenna at 2026-09-15T11:40:21+05:30 Strip ticks when desugaring bool guards The special `considerAccessible` pattern was broken when compiling with debug info. Compiling with debug info wraps expressions with `SourceNote` ticks, which broke the internals of the `desugarBoolGuard` function. Ticks are now ignored within this function. Fixes #27360 (cherry picked from commit d43a7b7ad90047f1445c88d796ee7b15a0a605d7) - - - - - 9b378798 by Brian McKenna at 2026-09-15T11:40:43+05:30 Ignore ticks in the pattern-match term oracle The term-oracle in the pattern-match checker is keyed by a canonical form of the scrutinee, computed by `makeDictsCoherent`. That canonical form was tick-sensitive: two occurrences of an otherwise identical expression that happened to carry different ticks were treated as distinct values, breaking long-distance information. This shows up in practice under `-finfo-table-map`, because the desugarer wraps every record-selector use site in a `SourceNote` carrying that site's span. For example: data Box = Box { unBox :: Maybe Int } f b = case unBox b of Nothing -> 0 Just _ -> let Just x = unBox b in x The two `unBox b` expressionss carry different SourceNote spans, the pattern-match checker sees them as different, the long-distance information from the outer `Just _` branch never reaches the let-pattern, and `Just x = unBox b` is wrongly reported as non-exhaustive. We now strip all ticks in `makeDictsCoherent`. This is documented as Wrinkle (UD1) of Note [Unique dictionaries in the TmOracle CoreMap]. Fixes #27314 (cherry picked from commit b388d0934c0933c1cdb47226489634e229239d0a) - - - - - dc9736e2 by Duncan Coutts at 2026-09-15T11:40:43+05:30 Fix failing test GcStaticPointers for non-moving GC Minor mistake in asserting something before checking for that same thing. Specifically, Bdescr asserts HEAP_ALLOCED_GC, but Bdescr was being used prior to a guard that checks HEAP_ALLOCED_GC. The solution is just to move the use of Bdescr after the guard. Thanks to Simon Jakobi for identifying the problem. (cherry picked from commit 42918646169c7c5ba61912b39b5f5147bf1d255c) - - - - - 26b4579d by Luite Stegeman at 2026-09-15T11:40:43+05:30 rts: fix ctoi_tuple_spill_words getting out of sync Fix a few places that were not updating ctoi_tuple_spill_words correctly, leading to corruption/crashes when dealing with large unboxed tuples in bytecode: - captureContinuationAndAbort - findRetryFrameHelper/findAtomicallyFrameHelper - interpretBCO bci_BRK_FUN fixes #27633 (cherry picked from commit 192be0b6b861725613a9be5cb1587fb8cdf68bd3) - - - - - d83131b0 by Luite Stegeman at 2026-09-15T11:41:19+05:30 rts: Fix missing memory barrier in eval_thunk_selector (#27477) unchain_thunk_selectors() was missing an ACQUIRE_LOAD for the indirectee, leading to segfaults and corruption during GC on weakly-ordered architectures. Fixes #27477 (cherry picked from commit 06eee015be4e361fe9cb33e8a608ab2ea1386b52) - - - - - 230be88b by Zubin Duggal at 2026-09-15T11:49:08+05:30 ci: bootstrap with GHC 9.10.3 and 9.12.4 - - - - - b959b17f by Zubin Duggal at 2026-09-15T11:49:11+05:30 Prepare 9.14.2-rc2 ------------------------- Metric Decrease: T4029 ------------------------- - - - - - 37caf921 by Zubin Duggal at 2026-09-15T11:49:11+05:30 fixup! Prepare 9.14.2-rc2 - - - - - 46 changed files: - .gitlab-ci.yml - − changelog.d/27626 - − changelog.d/27627 - − changelog.d/27703 - − changelog.d/27704 - − changelog.d/27717 - − changelog.d/T26423 - − changelog.d/T26716 - − changelog.d/T27202 - − changelog.d/T27308 - − changelog.d/T27440 - − changelog.d/T27455 - − changelog.d/T27583 - − changelog.d/T27586 - − changelog.d/T27639 - − changelog.d/T27657 - − changelog.d/T27705 - − changelog.d/arm_ncg_fixes_T27430 - − changelog.d/llvm-23 - − changelog.d/unit-index - compiler/GHC/HsToCore/Pmc/Desugar.hs - compiler/GHC/HsToCore/Pmc/Solver.hs - docs/users_guide/9.14.2-notes.rst - libraries/base/changelog.md - rts/Continuation.c - rts/Interpreter.c - rts/Schedule.c - rts/sm/Evac.c - rts/sm/NonMovingMark.c - + testsuite/tests/bytecode/T27633/Obj.hs - + testsuite/tests/bytecode/T27633/T27633a.hs - + testsuite/tests/bytecode/T27633/T27633a.stdout - + testsuite/tests/bytecode/T27633/T27633b.hs - + testsuite/tests/bytecode/T27633/T27633b.stdout - + testsuite/tests/bytecode/T27633/all.T - + testsuite/tests/ghci.debugger/scripts/T27633c.hs - + testsuite/tests/ghci.debugger/scripts/T27633c.script - + testsuite/tests/ghci.debugger/scripts/T27633c.stdout - + testsuite/tests/ghci.debugger/scripts/T27633c_obj.hs - testsuite/tests/ghci.debugger/scripts/all.T - + testsuite/tests/pmcheck/should_compile/T27314.hs - + testsuite/tests/pmcheck/should_compile/T27360.hs - testsuite/tests/pmcheck/should_compile/all.T - + testsuite/tests/rts/T27477.hs - + testsuite/tests/rts/T27477.stdout - testsuite/tests/rts/all.T The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/6a0257f81be0b8336d8c40225b49a67... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/6a0257f81be0b8336d8c40225b49a67... You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
participants (1)
-
Zubin (@wz1000)