[Git][ghc/ghc][wip/jeltsch/base-buildable-with-ghc-9-14] 28 commits: AArch64: use ASR not LSR for MO_U_Shr at W8/W16
Wolfgang Jeltsch pushed to branch wip/jeltsch/base-buildable-with-ghc-9-14 at Glasgow Haskell Compiler / GHC Commits: 50188615 by Ian Duncan at 2026-05-14T13:45:07+02:00 AArch64: use ASR not LSR for MO_U_Shr at W8/W16 The unsigned right shift (MO_U_Shr) for sub-word widths (W8, W16) with a variable shift amount was emitting ASR (arithmetic/signed shift right) after zero-extending with UXTB/UXTH. This should be LSR (logical/unsigned shift right). After zero-extension the upper bits happen to be 0 so ASR produces the same result, but it is semantically wrong and would break if the zero-extension were ever optimized away. Includes assembly output test (grep for lsr) and runtime test verifying unsigned right shift of Word8 and Word16 values. - - - - - 28666fbf by Vladislav Zavialov at 2026-05-19T12:44:05-04:00 Add type families: Tuple, Constraints, Tuple#, Sum# (#27179) These type families map tuples of types to the corresponding Tuple<N>, Tuple<N>#, CTuple<N>, and Sum<N># types. Some examples at N=2: Tuple (Int, Bool) = Tuple2 Int Bool Constraints (Show a, Eq a) = CTuple2 (Show a) (Eq a) Tuple# (Int#, Float#) = Tuple2# Int# Float# Sum# (Int#, Float#) = Sum2# Int# Float# See GHC Proposal #145 "Non-punning list and tuple syntax". To make the Sum# instance at N=64 possible, this patch also introduces the Sum64# constructor declaration and bumps mAX_SUM_SIZE from 63 to 64. Metric Increase: ghc_experimental_dir - - - - - 41c2448b by Wen Kokke at 2026-05-19T12:44:53-04:00 rts: Add IPE event class for -l This commit adds a new IPE event class to the -l RTS flag. Previously, IPE events were enabled unconditionally. However, the IPE events can easily grow to hundreds or thousands of megabytes. With the new event class you can pass, e.g., -l-I to disable IPE events. - - - - - 62536551 by Wen Kokke at 2026-05-19T12:44:53-04:00 ghc-internal: Add TraceFlags.traceIPE - - - - - e45312d1 by Wen Kokke at 2026-05-19T12:44:53-04:00 testsuite: Add test for TraceFlags.traceIpe - - - - - 4768d9aa by Wen Kokke at 2026-05-19T12:44:53-04:00 ghc-internal: Add DebugFlags.ipe - - - - - bc1b5c69 by Wen Kokke at 2026-05-19T12:44:53-04:00 testsuite: Add test for DebugFlags.ipe - - - - - 0da1543f by Duncan Coutts at 2026-05-19T12:45:37-04:00 Document removal of the signal-based interval timer Update mentions within the RTS section of the users guide. Add a changelog entry. - - - - - b2911514 by Duncan Coutts at 2026-05-19T12:45:37-04:00 Fix section for an recent changelog entry - - - - - d6d76a7a by David Eichmann at 2026-05-19T12:46:19-04:00 ghc-toolchain: implement llvm program versioning logic - - - - - 2dd36fa3 by Wolfgang Jeltsch at 2026-05-20T04:49:52-04:00 Turn `Trustworthy` into `Safe` in `base` where possible - - - - - f4399dd1 by Wolfgang Jeltsch at 2026-05-20T04:50:37-04:00 Make the current `base` buildable with GHC 10.0 - - - - - 2b7c1a4f by Wolfgang Jeltsch at 2026-05-20T12:13:33+03:00 Disable hiding of imported SIMD operations for GHC 9.14 - - - - - e0a5fc72 by Wolfgang Jeltsch at 2026-05-20T12:13:33+03:00 Disable some imports into `GHC.Base` for GHC 9.14 - - - - - 27d4dc85 by Wolfgang Jeltsch at 2026-05-20T12:13:33+03:00 Make `thenM` available with GHC 9.14 - - - - - 239ac5a5 by Wolfgang Jeltsch at 2026-05-20T12:13:33+03:00 Disable separate `ArrowLoop` import for GHC 9.14 - - - - - 29c8acbe by Wolfgang Jeltsch at 2026-05-20T12:13:33+03:00 Make `thenA` available with GHC 9.14 - - - - - c1158bd3 by Wolfgang Jeltsch at 2026-05-20T12:13:33+03:00 Disable `GHC.Internal.STM` import for GHC 9.14 - - - - - acc1a370 by Wolfgang Jeltsch at 2026-05-20T12:13:34+03:00 Add `hGetNewlineMode` for GHC 9.14 - - - - - 328a292d by Wolfgang Jeltsch at 2026-05-20T12:13:34+03:00 Add alternative `fixIO` import for GHC 9.14 - - - - - 09053b49 by Wolfgang Jeltsch at 2026-05-20T12:13:34+03:00 Disable `GHC.Internal.Unicode.Version` import for GHC 9.14 - - - - - 5a4b3727 by Wolfgang Jeltsch at 2026-05-20T12:13:34+03:00 Disable GHC 9.14 `printToHandleFinalizerExceptionHandler` - - - - - 5fb4cea6 by Wolfgang Jeltsch at 2026-05-20T12:13:34+03:00 Disable some imports into `Prelude` for GHC 9.14 - - - - - 384cbad0 by Wolfgang Jeltsch at 2026-05-20T12:14:45+03:00 Add alternative `unsafeCodeCoerce` import for GHC 9.14 - - - - - 4e6af24b by Wolfgang Jeltsch at 2026-05-20T12:14:48+03:00 Disable `GHC.Internal.TH.Monad` import for GHC 9.14 - - - - - 869e5020 by Wolfgang Jeltsch at 2026-05-20T12:14:48+03:00 Use `getFileHash` from `ghc-internal` on GHC 9.14 - - - - - 32ea087c by Wolfgang Jeltsch at 2026-05-20T12:14:48+03:00 Disable translation of `IoManagerFlagPoll` for GHC 9.14 - - - - - ec9be274 by Wolfgang Jeltsch at 2026-05-20T12:14:48+03:00 Strengthen the Safe-Haskell annotation of `GHC.IO.Handle` - - - - - 85 changed files: - + changelog.d/T26979 - changelog.d/dynamic-trace-flags - + changelog.d/ipe-event-class - + changelog.d/lib-add-tuple-tyfam-27179 - + changelog.d/no-more-timer-signal - compiler/GHC/CmmToAsm/AArch64/CodeGen.hs - compiler/GHC/Settings/Constants.hs - docs/users_guide/profiling.rst - docs/users_guide/runtime_control.rst - libraries/base/src/Control/Applicative.hs - libraries/base/src/Control/Arrow.hs - libraries/base/src/Control/Exception.hs - libraries/base/src/Control/Monad.hs - libraries/base/src/Control/Monad/IO/Class.hs - libraries/base/src/Data/Array/Byte.hs - libraries/base/src/Data/Data.hs - libraries/base/src/Data/Fixed.hs - libraries/base/src/Data/List/NonEmpty.hs - libraries/base/src/Data/Version.hs - libraries/base/src/GHC/Base.hs - libraries/base/src/GHC/ByteOrder.hs - libraries/base/src/GHC/Conc.hs - libraries/base/src/GHC/Conc/Sync.hs - libraries/base/src/GHC/Exts.hs - libraries/base/src/GHC/Fingerprint.hs - libraries/base/src/GHC/IO/Handle.hs - libraries/base/src/GHC/RTS/Flags.hs - libraries/base/src/GHC/Unicode.hs - libraries/base/src/GHC/Weak.hs - libraries/base/src/GHC/Weak/Finalize.hs - libraries/base/src/Numeric.hs - libraries/base/src/Prelude.hs - libraries/base/src/System/IO.hs - libraries/base/src/System/Mem/Weak.hs - libraries/base/src/System/Timeout.hs - libraries/ghc-experimental/src/Data/Sum/Experimental.hs - libraries/ghc-experimental/src/Data/Tuple/Experimental.hs - libraries/ghc-internal/src/GHC/Internal/Base.hs - libraries/ghc-internal/src/GHC/Internal/Exts.hs - libraries/ghc-internal/src/GHC/Internal/RTS/Flags.hsc - libraries/ghc-internal/src/GHC/Internal/Types.hs - m4/ghc_toolchain.m4 - rts/IPE.c - rts/RtsFlags.c - rts/Trace.c - rts/Trace.h - rts/include/rts/EventLogWriter.h - rts/include/rts/Flags.h - + testsuite/tests/codeGen/should_gen_asm/aarch64-shl-subword.asm - + testsuite/tests/codeGen/should_gen_asm/aarch64-shl-subword.hs - + testsuite/tests/codeGen/should_gen_asm/aarch64-ushr-subword.asm - + testsuite/tests/codeGen/should_gen_asm/aarch64-ushr-subword.hs - testsuite/tests/codeGen/should_gen_asm/all.T - + testsuite/tests/codeGen/should_run/aarch64-subword-ops.hs - + testsuite/tests/codeGen/should_run/aarch64-subword-ops.stdout - + testsuite/tests/codeGen/should_run/aarch64-ushr-subword-run.hs - + testsuite/tests/codeGen/should_run/aarch64-ushr-subword-run.stdout - testsuite/tests/codeGen/should_run/all.T - testsuite/tests/ghci/scripts/ListTuplePunsPprNoAbbrevTuple.stdout - testsuite/tests/ghci/scripts/all.T - 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/ghc-experimental-exports.stdout - testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32 - testsuite/tests/interface-stability/ghc-prim-exports.stdout - testsuite/tests/interface-stability/ghc-prim-exports.stdout-mingw32 - testsuite/tests/parser/should_compile/ListTuplePunsSuccess1.hs - testsuite/tests/parser/should_compile/all.T - + testsuite/tests/parser/should_fail/ListTuplePunsFail6.hs - + testsuite/tests/parser/should_fail/ListTuplePunsFail6.stderr - testsuite/tests/parser/should_fail/all.T - testsuite/tests/parser/should_run/ListTuplePunsConstraints.hs - testsuite/tests/profiling/should_run/callstack001.stdout - + testsuite/tests/rts/T25275/DebugIpe.hs - + testsuite/tests/rts/T25275/T25275_A.stdout - + testsuite/tests/rts/T25275/T25275_B.stdout - + testsuite/tests/rts/T25275/T25275_C.stdout - + testsuite/tests/rts/T25275/T25275_D.stdout - + testsuite/tests/rts/T25275/TraceIpe.hs - + testsuite/tests/rts/T25275/all.T - + testsuite/tests/typecheck/should_compile/T23135.hs - testsuite/tests/typecheck/should_compile/all.T - utils/ghc-toolchain/exe/Main.hs - utils/ghc-toolchain/src/GHC/Toolchain/Program.hs The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/f6bcebb0c1b26572b7ee4cc4258b335... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/f6bcebb0c1b26572b7ee4cc4258b335... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Wolfgang Jeltsch (@jeltsch)