[Git][ghc/ghc][wip/deepseq-primop] 14 commits: GC: don't use CAS without PARALLEL_GC on
Cheng Shao pushed to branch wip/deepseq-primop at Glasgow Haskell Compiler / GHC Commits: 0491f08a by Sylvain Henry at 2026-01-22T03:44:26-05:00 GC: don't use CAS without PARALLEL_GC on If we're not using the parallel GC, there is no reason to do a costly CAS. This was flagged as taking time in a perf profile. - - - - - 211a8f56 by Sylvain Henry at 2026-01-22T03:44:26-05:00 GC: suffix parallel GC with "par" instead of "thr" Avoid some potential confusion (see discussion in !15351). - - - - - 77a23cbd by fendor at 2026-01-22T03:45:08-05:00 Remove blanket ignore that covers libraries/ - - - - - 18bf7f5c by Léana Jiang at 2026-01-22T08:58:45-05:00 doc: update Flavour type in hadrian user-settings - - - - - 3d5a1365 by Cheng Shao at 2026-01-22T08:59:28-05:00 hadrian: add missing notCross predicate for stage0 -O0 There are a few hard-coded hadrian args that pass -O0 when compiling some heavy modules in stage0, which only makes sense when not cross-compiling and when cross-compiling we need properly optimized stage0 packages. So this patch adds the missing `notCross` predicate in those places. - - - - - ee937134 by Matthew Pickering at 2026-01-22T09:00:10-05:00 Fix ghc-experimental GHC.Exception.Backtrace.Experimental module This module wasn't added to the cabal file so it was never compiled or included in the library. - - - - - 1b490f5a by Zubin Duggal at 2026-01-22T09:00:53-05:00 hadrian: Add ghc-{experimental,internal}.cabal to the list of dependencies of the doc target We need these files to detect the version of these libraries Fixes #26738 - - - - - cdb74049 by Cheng Shao at 2026-01-22T14:52:36-05:00 rts: avoid Cmm loop to initialize Array#/SmallArray# Previously, `newArray#`/`newSmallArray#` called an RTS C function to allocate the `Array#`/`SmallArray#`, then used a Cmm loop to initialize the elements. Cmm doesn't have native for-loop so the code is a bit awkward, and it's less efficient than a C loop, since the C compiler can effectively vectorize the loop with optimizations. So this patch moves the loop that initializes the elements to the C side. `allocateMutArrPtrs`/`allocateSmallMutArrPtrs` now takes a new `init` argument and initializes the elements if `init` is non-NULL. - - - - - 4c784f00 by Cheng Shao at 2026-01-22T14:53:19-05:00 Fix testsuite run for +ipe flavour transformer This patch makes the +ipe flavour transformer pass the entire testsuite: - An RTS debug option `-DI` is added, the IPE trace information is now only printed with `-DI`. The test cases that do require IPE trace are now run with `-DI`. - The testsuite config option `ghc_with_ipe` is added, enabled when running the testsuite with `+ipe`, which skips a few tests that are sensitive to eventlog output, allocation patterns etc that can fail under `+ipe`. This is the first step towards #26799. Co-authored-by: Codex <codex@openai.com> - - - - - be8e5236 by Ben Gamari at 2026-01-23T03:28:45-05:00 hadrian: Bump QuickCheck upper bound This patch bumps QuickCheck upper bound to 2.18. selftest rule manually tested to work with current latest QuickCheck-2.17.1.0. - - - - - 5aa328fb by Zubin Duggal at 2026-01-23T03:29:30-05:00 Add genindex to index.rst. This adds a link to the index in the navigation bar. Fixes #26437 - - - - - 917ab8ff by Oleg Grenrus at 2026-01-23T10:52:55-05:00 Export labelThread from Control.Concurrent - - - - - 3f5e8d80 by Cheng Shao at 2026-01-23T10:53:37-05:00 ci: only push perf notes on master/release branches This patch fixes push_perf_notes logic in ci.sh to only push perf notes on master/release branches. We used to unconditionally push perf notes even in MRs, but the perf numbers in the wip branches wouldn't be used as baseline anyway, plus this is causing a space leak in the ghc-performance-notes repo. See #25317 for the perf notes repo size problem. Co-authored-by: Codex <codex@openai.com> - - - - - 50f8212e by Cheng Shao at 2026-01-24T02:31:10+01:00 WIP - - - - - 46 changed files: - .gitignore - .gitlab/ci.sh - docs/users_guide/index.rst - docs/users_guide/runtime_control.rst - hadrian/doc/user-settings.md - hadrian/hadrian.cabal - hadrian/src/Flavour.hs - hadrian/src/Rules/Documentation.hs - hadrian/src/Settings/Packages.hs - libraries/base/changelog.md - libraries/base/src/Control/Concurrent.hs - libraries/base/src/System/Timeout.hs - libraries/ghc-compact/tests/all.T - + libraries/ghc-experimental/cbits/DeepSeq.cmm - libraries/ghc-experimental/ghc-experimental.cabal.in - + libraries/ghc-experimental/src/GHC/DeepSeq.hs - libraries/ghc-experimental/src/GHC/Exception/Backtrace/Experimental.hs - libraries/ghc-internal/tests/backtraces/all.T - rts/AllocArray.c - rts/AllocArray.h - rts/ClosureTable.c - rts/Heap.c - rts/PrimOps.cmm - rts/RtsFlags.c - rts/Threads.c - rts/Trace.c - rts/Weak.c - rts/include/rts/Flags.h - rts/rts.cabal - rts/sm/Evac.c - rts/sm/Evac_thr.c → rts/sm/Evac_par.c - rts/sm/Scav_thr.c → rts/sm/Scav_par.c - testsuite/driver/testglobals.py - testsuite/driver/testlib.py - 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/interface-stability/ghc-experimental-exports.stdout - testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32 - + testsuite/tests/primops/should_run/DeepSeqPrimOp.hs - + testsuite/tests/primops/should_run/DeepSeqPrimOp.stdout - testsuite/tests/primops/should_run/all.T - testsuite/tests/rts/Makefile - testsuite/tests/rts/all.T - testsuite/tests/rts/ipe/all.T The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/cc7f670ca68926d31e3a6a0273219e7... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/cc7f670ca68926d31e3a6a0273219e7... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Cheng Shao (@TerrorJack)