Zubin pushed to branch wip/9.12.3-backports at Glasgow Haskell Compiler / GHC Commits: 6156add5 by Ben Gamari at 2025-11-10T17:05:03+05:30 rts/nonmoving: Fix comment spelling (cherry picked from commit 14281a22eb27498886def8e5d17797c9ce62f3ad) - - - - - 3ea29086 by Ben Gamari at 2025-11-10T17:05:03+05:30 rts/nonmoving: Use atomic operations to update bd->flags (cherry picked from commit bedd38b01d6b113cb3bd10b5d784c16b32efb5bb) - - - - - bcbebc7a by Ben Gamari at 2025-11-10T17:05:03+05:30 nonmoving: Use get_itbl instead of explicit loads This is cleaner and also fixes unnecessary (and unsound) use of `volatile`. (cherry picked from commit 215d68414020dc4ed0636508c9eecd9f44f62168) - - - - - 355621cf by Ben Gamari at 2025-11-10T17:05:03+05:30 rts/Scav: Handle WHITEHOLEs in scavenge_one `scavenge_one`, used to scavenge mutable list entries, may encounter `WHITEHOLE`s when the non-moving GC is in use via two paths: 1. when an MVAR is being marked concurrently 2. when the object belongs to a chain of selectors being short-cutted. Fixes #26204. (cherry picked from commit 2c94aa3aa87c14b1ff5c4355c9a90efedd5d10f4) - - - - - 0f4851f7 by Ben Gamari at 2025-11-10T17:05:03+05:30 rts: Dynamically initialize built-in closures To resolve #26166 we need to eliminate references to undefined symbols in the runtime system. One such source of these is the runtime's static references to `I#` and `C#` due the `stg_INTLIKE` and `stg_CHARLIKE` arrays. To avoid this we make these dynamic, initializing them during RTS start-up. (cherry picked from commit 39eaaaba5356e3fc9218d8e27375d6de24778cbc) - - - - - ee451b3d by Rodrigo Mesquita at 2025-11-10T17:05:03+05:30 Move code-gen aux symbols from ghc-internal to rts These symbols were all previously defined in ghc-internal and made the dependency structure awkward, where the rts may refer to some of these symbols and had to work around that circular dependency the way described in #26166. Moreover, the code generator will produce code that uses these symbols! Therefore, they should be available in the rts: PRINCIPLE: If the code generator may produce code which uses this symbol, then it should be defined in the rts rather than, say, ghc-internal. That said, the main motivation is towards fixing #26166. Towards #26166. Pre-requisite of !14892 (cherry picked from commit ba3e5bddb222008591edb6c3d433d93084170571) - - - - - d677a630 by Ben Gamari at 2025-11-10T17:05:03+05:30 rts: Avoid static symbol references to ghc-internal This resolves #26166, a bug due to new constraints placed by Apple's linker on undefined references. One source of such references in the RTS is the many symbols referenced in ghc-internal. To mitigate #26166, we make these references dynamic, as described in Note [RTS/ghc-internal interface]. Fixes #26166 Co-authored-by: Rodrigo Mesquita <rodrigo.m.mesquita@gmail.com> Co-authored-by: Cheng Shao <terrorjack@type.dance> (cherry picked from commit f31de2a9c2405d6645998460e4b501f9279606b3) - - - - - d4e96a8b by Ben Gamari at 2025-11-10T17:05:03+05:30 compiler: Rename isMathFun -> isLibcFun This set includes more than just math functions. (cherry picked from commit 43fdfddc25c36ef4811941231d5755bad065796d) - - - - - 3f31ad73 by Ben Gamari at 2025-11-10T17:05:03+05:30 compiler: Add libc allocator functions to libc_funs Prototypes for these are now visible from `Prim.h`, resulting in multiple-declaration warnings in the unregisterised job. (cherry picked from commit 4ed5138f7af532731f88380f98103487a9f15c5a) - - - - - 1e14ae85 by Ben Gamari at 2025-11-10T17:05:03+05:30 rts: Minimize header dependencies of Prim.h Otherwise we will end up with redundant and incompatible declarations resulting in warnings during the unregisterised build. (cherry picked from commit 9a0a076b80d6fb68d7722d2bb72c17c90ba22cd1) - - - - - 61 changed files: - compiler/GHC/Cmm/CLabel.hs - compiler/GHC/CmmToAsm/Wasm/FromCmm.hs - compiler/GHC/CmmToC.hs - compiler/GHC/HsToCore/Foreign/C.hs - compiler/GHC/Linker/Dynamic.hs - compiler/GHC/Linker/Static.hs - hadrian/src/Settings/Packages.hs - + libraries/ghc-internal/cbits/RtsIface.c - libraries/ghc-internal/ghc-internal.cabal.in - + libraries/ghc-internal/include/RtsIfaceSymbols.h - libraries/ghc-prim/ghc-prim.cabal - + rts/BuiltinClosures.c - + rts/BuiltinClosures.h - rts/CloneStack.h - rts/Compact.cmm - rts/ContinuationOps.cmm - rts/Exception.cmm - rts/Prelude.h - rts/PrimOps.cmm - rts/RtsAPI.c - rts/RtsStartup.c - rts/RtsSymbols.c - + rts/RtsToHsIface.c - rts/StgMiscClosures.cmm - rts/StgStdThunks.cmm - rts/configure.ac - − rts/external-symbols.list.in - rts/include/Rts.h - rts/include/RtsAPI.h - rts/include/Stg.h - rts/include/rts/Constants.h - + rts/include/rts/RtsToHsIface.h - rts/include/rts/Types.h - rts/include/rts/prof/CCS.h - rts/include/rts/storage/Block.h - rts/include/stg/MiscClosures.h - rts/include/stg/Prim.h - rts/posix/Signals.c - libraries/ghc-prim/cbits/atomic.c → rts/prim/atomic.c - libraries/ghc-prim/cbits/bitrev.c → rts/prim/bitrev.c - libraries/ghc-prim/cbits/bswap.c → rts/prim/bswap.c - libraries/ghc-prim/cbits/clz.c → rts/prim/clz.c - libraries/ghc-prim/cbits/ctz.c → rts/prim/ctz.c - + rts/prim/int64x2minmax.c - libraries/ghc-prim/cbits/longlong.c → rts/prim/longlong.c - libraries/ghc-prim/cbits/mulIntMayOflo.c → rts/prim/mulIntMayOflo.c - libraries/ghc-prim/cbits/pdep.c → rts/prim/pdep.c - libraries/ghc-prim/cbits/pext.c → rts/prim/pext.c - libraries/ghc-prim/cbits/popcnt.c → rts/prim/popcnt.c - + rts/prim/vectorQuotRem.c - libraries/ghc-prim/cbits/word2float.c → rts/prim/word2float.c - − rts/rts.buildinfo.in - rts/rts.cabal - rts/sm/NonMoving.c - rts/sm/NonMovingMark.c - rts/sm/Scav.c - rts/wasm/JSFFI.c - rts/wasm/scheduler.cmm - rts/win32/libHSghc-internal.def - utils/deriveConstants/Main.hs - utils/jsffi/dyld.mjs The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c74b1d4db85e87d77919fdb41480280... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c74b1d4db85e87d77919fdb41480280... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Zubin (@wz1000)