Zubin pushed to branch wip/9.12.3-backports at Glasgow Haskell Compiler / GHC Commits: e67e6a4e by Zubin Duggal at 2025-09-18T00:53:49+05:30 Prepare 9.12.3 - - - - - 8 changed files: - configure.ac - docs/users_guide/9.12.3-notes.rst - libraries/base/base.cabal.in - libraries/base/changelog.md - testsuite/driver/testlib.py - testsuite/tests/backpack/cabal/bkpcabal08/bkpcabal08.stdout - testsuite/tests/driver/T20604/T20604.stdout - testsuite/tests/polykinds/T14172.stderr Changes: ===================================== configure.ac ===================================== @@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.12.2], [glasgow-ha AC_CONFIG_MACRO_DIRS([m4]) # Set this to YES for a released version, otherwise NO -: ${RELEASE=YES} +: ${RELEASE=NO} # The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line # above. If this is not a released version, then we will append the ===================================== docs/users_guide/9.12.3-notes.rst ===================================== @@ -13,6 +13,83 @@ Compiler - Fixed re-exports of ``MkSolo`` and ``MkSolo#`` (:ghc-ticket:`25182`) - Fixed the behavior of ``Language.Haskell.TH.mkName "FUN"`` (:ghc-ticket:`25174`) +- Fixed miscompilation involving ``zonkEqTypes`` on ``AppTy/AppTy`` (:ghc-ticket:`26256`) +- Fixed CprAnal to detect recursive newtypes (:ghc-ticket:`25944`) +- Fixed specialisation of incoherent instances (:ghc-ticket:`25883`) +- Fixed bytecode generation for ``tagToEnum# <LITERAL>`` (:ghc-ticket:`25975`) +- Fixed panic with EmptyCase and RequiredTypeArguments (:ghc-ticket:`25004`) +- Fixed ``tyConStupidTheta`` to handle ``PromotedDataCon`` (:ghc-ticket:`25739`) +- Fixed unused import warnings for duplicate record fields (:ghc-ticket:`24035`) +- Fixed lexing of ``"\^\"`` (:ghc-ticket:`25937`) +- Fixed string gap collapsing (:ghc-ticket:`25784`) +- Fixed lexing of comments in multiline strings (:ghc-ticket:`25609`) +- Made unexpected LLVM versions a warning rather than an error (:ghc-ticket:`25915`) +- Disabled ``-fprof-late-overloaded-calls`` for join points to avoid invalid transformations +- Fixed bugs in ``integerRecipMod`` and ``integerPowMod`` (:ghc-ticket:`26017`) +- Fixed ``naturalAndNot`` for NB/NS case (:ghc-ticket:`26230`) +- Fixed ``ds_ev_typeable`` to use ``mkTrAppChecked`` (:ghc-ticket:`25998`) +- Fixed GHC settings to always unescape escaped spaces (:ghc-ticket:`25204`) +- Fixed issue with HasCallStack constraint caching (:ghc-ticket:`25529`) +- Fixed archive member size writing logic in ``GHC.SysTools.Ar`` (:ghc-ticket:`26120`, :ghc-ticket:`22586`) + +Runtime System +~~~~~~~~~~~~~~ + +- Fixed ``MessageBlackHole.link`` to always be a valid closure +- Fixed handling of WHITEHOLE in ``messageBlackHole`` (:ghc-ticket:`26205`) +- Fixed ``rts_clearMemory`` logic when sanity checks are enabled (:ghc-ticket:`26011`) +- Fixed underflow frame lookups in the bytecode interpreter (:ghc-ticket:`25750`) +- Fixed overflows and reentrancy in interpreter statistics calculation (:ghc-ticket:`25756`) +- Fixed INTERP_STATS profiling code (:ghc-ticket:`25695`) +- Removed problematic ``n_free`` variable from nonmovingGC (:ghc-ticket:`26186`) +- Fixed incorrect format specifiers in era profiling +- Improved documentation of SLIDE and PACK bytecode instructions +- Eliminated redundant ``SLIDE x 0`` bytecode instructions +- Fixed compile issues on powerpc64 ELF v1 + +Code Generation +~~~~~~~~~~~~~~~ + +- Fixed LLVM built-in variable predicate (was checking ``$llvm`` instead of ``@llvm``) +- Fixed linkage of built-in arrays for LLVM (:ghc-ticket:`25769`) +- Fixed code generation for SSE vector operations (:ghc-ticket:`25859`) +- Fixed ``bswap64`` code generation on i386 (:ghc-ticket:`25601`) +- Fixed sub-word arithmetic right shift on AArch64 (:ghc-ticket:`26061`) +- Fixed LLVM vector literal emission to include type information +- Fixed LLVM version detection +- Fixed typo in ``padLiveArgs`` that caused segfaults (:ghc-ticket:`25770`, :ghc-ticket:`25773`) +- Fixed constant-folding for Word->Float bitcasts +- Added surface syntax for Word/Float bitcast operations +- Fixed ``MOVD`` format in x86 NCG for ``unpackInt64X2#`` +- Added ``-finter-module-far-jumps`` flag for AArch64 +- Fixed RV64 J instruction handling for non-local jumps (:ghc-ticket:`25738`) +- Reapplied division by constants optimization +- Fixed TNTC to set CmmProc entry_label properly (:ghc-ticket:`25565`) + +Linker +~~~~~~ + +- Improved efficiency of proddable blocks structure (:ghc-ticket:`26009`) +- Fixed Windows DLL loading to avoid redundant ``LoadLibraryEx`` calls (:ghc-ticket:`26009`) +- Fixed incorrect use of ``break`` in nested for loop (:ghc-ticket:`26052`) +- Fixed linker to not fail due to ``RTLD_NOW`` (:ghc-ticket:`25943`) +- Dropped obsolete Windows XP compatibility checks + +GHCi +~~~~ + +- Fixed ``mkTopLevEnv`` to use ``loadInterfaceForModule`` instead of ``loadSrcInterface`` (:ghc-ticket:`25951`) + +Template Haskell +~~~~~~~~~~~~~~~~ + +- Added explicit export lists to all remaining template-haskell modules + +Build system +~~~~~~~~~~~~~~~~ + +- Exposed all of Backtraces' internals for ghc-internal (:ghc-ticket:`26049`) +- Fixed cross-compilation configuration override (:ghc-ticket:`26236`) Included libraries ~~~~~~~~~~~~~~~~~~ ===================================== libraries/base/base.cabal.in ===================================== @@ -4,7 +4,7 @@ cabal-version: 3.0 -- Make sure you are editing ghc-experimental.cabal.in, not ghc-experimental.cabal name: base -version: 4.21.0.0 +version: 4.21.1.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause ===================================== libraries/base/changelog.md ===================================== @@ -1,10 +1,8 @@ # Changelog for [`base` package](http://hackage.haskell.org/package/base) -## 4.21.2.0 *Sept 2024* - * Fix bug where `naturalAndNot` was incorrectly truncating results ([CLC proposal #350](github.com/haskell/core-libraries-committee/issues/350)) - ## 4.21.1.0 *Sept 2024* * Fix incorrect results of `integerPowMod` when the base is 0 and the exponent is negative, and `integerRecipMod` when the modulus is zero ([#26017](https://gitlab.haskell.org/ghc/ghc/-/issues/26017)). + * Fix bug where `naturalAndNot` was incorrectly truncating results ([CLC proposal #350](github.com/haskell/core-libraries-committee/issues/350)) ## 4.21.0.0 *December 2024* * Shipped with GHC 9.12.1 ===================================== testsuite/driver/testlib.py ===================================== @@ -1725,7 +1725,7 @@ async def do_test(name: TestName, dst_makefile = in_testdir('Makefile') if src_makefile.exists(): makefile = src_makefile.read_text(encoding='UTF-8') - makefile = re.sub('TOP=.*', 'TOP=%s' % config.top, makefile, 1) + makefile = re.sub('TOP=.*', 'TOP=%s' % config.top, makefile, count=1) dst_makefile.write_text(makefile, encoding='UTF-8') if opts.pre_cmd: ===================================== testsuite/tests/backpack/cabal/bkpcabal08/bkpcabal08.stdout ===================================== @@ -13,13 +13,13 @@ Building library 'q' instantiated with for bkpcabal08-0.1.0.0... [2 of 4] Compiling B[sig] ( q/B.hsig, nothing ) [3 of 4] Compiling M ( q/M.hs, nothing ) [A changed] -[4 of 4] Instantiating bkpcabal08-0.1.0.0-CoQJNXLfoYQ4TyvApzFHv-p +[4 of 4] Instantiating bkpcabal08-0.1.0.0-Kp9zfG3ziUqEJBaLAu1d32-p Preprocessing library 'q' for bkpcabal08-0.1.0.0... Building library 'q' instantiated with - A = bkpcabal08-0.1.0.0-5HJrxUERN7CD204UZeT4Ws-impl:A - B = bkpcabal08-0.1.0.0-5HJrxUERN7CD204UZeT4Ws-impl:B + A = bkpcabal08-0.1.0.0-D4vXaroNoDaJMvvAtgjdtX-impl:A + B = bkpcabal08-0.1.0.0-D4vXaroNoDaJMvvAtgjdtX-impl:B for bkpcabal08-0.1.0.0... -[1 of 3] Compiling A[sig] ( q/A.hsig, dist/build/bkpcabal08-0.1.0.0-1DQJ9DKc4h59P07qcb0kBc-q+J5mAfRWG9IgLmFQVftCb8t/A.o ) [Prelude package changed] -[2 of 3] Compiling B[sig] ( q/B.hsig, dist/build/bkpcabal08-0.1.0.0-1DQJ9DKc4h59P07qcb0kBc-q+J5mAfRWG9IgLmFQVftCb8t/B.o ) [Prelude package changed] +[1 of 3] Compiling A[sig] ( q/A.hsig, dist/build/bkpcabal08-0.1.0.0-6DurfqyJQywFVtea63QYmb-q+22gYsRiIDs71N0vTkoa781/A.o ) [Prelude package changed] +[2 of 3] Compiling B[sig] ( q/B.hsig, dist/build/bkpcabal08-0.1.0.0-6DurfqyJQywFVtea63QYmb-q+22gYsRiIDs71N0vTkoa781/B.o ) [Prelude package changed] Preprocessing library 'r' for bkpcabal08-0.1.0.0... Building library 'r' for bkpcabal08-0.1.0.0... ===================================== testsuite/tests/driver/T20604/T20604.stdout ===================================== @@ -1,11 +1,5 @@ A1 A -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/ghc-prim-0.12.0-inplace/libHSghc-prim-0.12.0-inplace.a" 019a1208b8742850eeb197adcf0445f3 -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/ghc-bignum-1.3-inplace/libHSghc-bignum-1.3-inplace.a" ca54044c2ea501531ac3016a72a9d92b -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/ghc-internal-9.1002.0-inplace/libHSghc-internal-9.1002.0-inplace.a" 1c2b59e426d6ae9172eb46d890155e19 -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/base-4.20.2.0-inplace/libHSbase-4.20.2.0-inplace.a" 820a64d9cb81281e10660ded650e973f -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/ghc-boot-th-9.10.2.20250728-inplace/libHSghc-boot-th-9.10.2.20250728-inplace.a" 47565629d3614763d649bde91000bf42 -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/array-0.5.8.0-inplace/libHSarray-0.5.8.0-inplace.a" 7fb37d6d03900a689d24212e83d3f729 -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/deepseq-1.5.0.0-inplace/libHSdeepseq-1.5.0.0-inplace.a" 316be3ed9f3b5e893b2eb9924f8bb698 -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/pretty-1.1.3.6-inplace/libHSpretty-1.1.3.6-inplace.a" ab975b458837cd4dd7a38be2c7e71603 -addDependentFile "/home/zubin/ghcs/unicode-lex/_build_devel2/stage1/lib/../lib/x86_64-linux-ghc-9.10.2.20250728/template-haskell-2.22.0.0-inplace/libHStemplate-haskell-2.22.0.0-inplace.a" 8520e0f59701ce4073df664d176ade9c +addDependentFile "/home/zubin/ghcs/exprType/_build_release/stage1/lib/../lib/x86_64-linux-ghc-9.12.2.20250917-inplace/libHSghc-prim-0.13.0-inplace-ghc9.12.2.20250917.so" 8803d0bdafc63e06222615bea8dc353d +addDependentFile "/home/zubin/ghcs/exprType/_build_release/stage1/lib/../lib/x86_64-linux-ghc-9.12.2.20250917-inplace/libHSghc-bignum-1.3-inplace-ghc9.12.2.20250917.so" f17f0d2b06181c46da6178e187b358e0 +addDependentFile "/home/zubin/ghcs/exprType/_build_release/stage1/lib/../lib/x86_64-linux-ghc-9.12.2.20250917-inplace/libHSghc-internal-9.1202.0-inplace-ghc9.12.2.20250917.so" ec33682bace30c3a503fa37c72640d1c ===================================== testsuite/tests/polykinds/T14172.stderr ===================================== @@ -1,6 +1,6 @@ T14172.hs:7:46: error: [GHC-88464] - • Found type wildcard ‘_’ standing for ‘a'1 :: k0’ - Where: ‘k0’ is an ambiguous type variable + • Found type wildcard ‘_’ standing for ‘a'1 :: k30’ + Where: ‘k30’ is an ambiguous type variable ‘a'1’ is an ambiguous type variable To use the inferred type, enable PartialTypeSignatures • In the first argument of ‘h’, namely ‘_’ View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e67e6a4e0c4b5882a9e4bf2b800bd8a4... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e67e6a4e0c4b5882a9e4bf2b800bd8a4... You're receiving this email because of your account on gitlab.haskell.org.