Zubin pushed to branch wip/9.10.3-backports at Glasgow Haskell Compiler / GHC Commits: 2b947fe9 by Zubin Duggal at 2025-07-24T07:23:48+05:30 In commit "Don't cache solved [W] HasCallStack constraints" (256ac29c8df4f17a1d50ea243408d506ebf395d6), we attempt to use `tryM` to avoid errors when looking up certain known-key names like CallStack while compiling ghc-prim and ghc-internal. Unfortunately, `tryM` doesn't catch module lookup errors. This manifests as a failure to build ghc-prim in `--make` mode on the GHC 9.10 branch. Instead, we explicitly avoid doing lookups when we are compiling ghc-prim or ghc-internal instead of relying on catching the exception. - - - - - 2fe8af25 by Zubin Duggal at 2025-07-24T07:23:48+05:30 Prepare 9.10.3 prerelease - - - - - a5ca2b8d by Zubin Duggal at 2025-07-24T07:23:48+05:30 Consider `PromotedDataCon` in `tyConStupidTheta` Haddock checks data declarations for the stupid theta so as not to pretty-print them as empty contexts. Type data declarations end up as `PromotedDataCon`s by the time Haddock performs this check, causing a panic. This commit extends `tyConStupidTheta` so that it returns an empty list for `PromotedDataCon`s. This decision was guided by the fact that type data declarations never have data type contexts (see (R1) in Note [Type data declarations]). Fixes #25739. (cherry picked from commit 8d33d048dbe159a045a4c304fa92318365a3dfe2) - - - - - 00066a2f by Ryan Hendrickson at 2025-07-24T07:23:48+05:30 haddock: Preserve indentation in multiline examples Intended for use with :{ :}, but doesn't look for those characters. Any consecutive lines with birdtracks will only have initial whitespace stripped up to the column of the first line. (cherry picked from commit 2c73250494fd9f48ebda6d6fe72f0cd03182aff1) - - - - - cf374ab9 by Ryan Hendrickson at 2025-07-24T07:23:48+05:30 haddock: Parse math even after ordinary characters Fixes a bug where math sections were not recognized if preceded by a character that isn't special (like space or a markup character). (cherry picked from commit b790d647c1ccdcc9aa8f166c3e0e42d0a5c29625) - - - - - aa0d533a by Ryan Hendrickson at 2025-07-24T07:23:48+05:30 haddock: Fix links to type operators (cherry picked from commit a0adc30d892f14f543f39d5c45faccacbc28afb4) - - - - - 7ca8a0fa by Ryan Hendrickson at 2025-07-24T07:23:48+05:30 haddock: Document instances from other packages When attaching instances to `Interface`s, it isn't enough just to look for instances in the list of `Interface`s being processed. We also need to look in the modules on which they depend, including those outside of this package. Fixes #25147. Fixes #26079. (cherry picked from commit a26243fde4680271712a3d774e17f6cd6da4a652) - - - - - 13b5e6f7 by Zubin Duggal at 2025-07-24T07:23:48+05:30 haddock: Don't warn about missing link destinations for derived names. Fixes #26114 (cherry picked from commit 5dabc718a04bfc4d277c5ff7f815ee3d6b9670cb) - - - - - 39ddc1cc by Zubin Duggal at 2025-07-24T07:23:48+05:30 Bump haddock version to 2.31.3 - - - - - 5 changed files: - compiler/GHC/Core/TyCon.hs - compiler/GHC/Tc/Solver/Monad.hs - configure.ac - + docs/users_guide/9.10.3-notes.rst - utils/haddock Changes: ===================================== compiler/GHC/Core/TyCon.hs ===================================== @@ -2659,6 +2659,7 @@ tyConStupidTheta :: TyCon -> [PredType] tyConStupidTheta tc@(TyCon { tyConDetails = details }) | AlgTyCon {algTcStupidTheta = stupid} <- details = stupid | PrimTyCon {} <- details = [] + | PromotedDataCon {} <- details = [] | otherwise = pprPanic "tyConStupidTheta" (ppr tc) -- | Extract the 'TyVar's bound by a vanilla type synonym ===================================== compiler/GHC/Tc/Solver/Monad.hs ===================================== @@ -178,7 +178,7 @@ import GHC.Types.Var.Set import GHC.Types.Unique.Supply import GHC.Types.Unique.Set( elementOfUniqSet ) -import GHC.Unit.Module ( HasModule, getModule, extractModule ) +import GHC.Unit.Module ( HasModule, getModule, extractModule, primUnit, moduleUnit, ghcInternalUnit, bignumUnit) import qualified GHC.Rename.Env as TcM import GHC.Utils.Outputable @@ -508,7 +508,11 @@ updSolvedDicts what dict_ct@(DictCt { di_cls = cls, di_tys = tys, di_ev = ev }) -- See Note [Using isCallStackTy in mentionsIP]. is_tyConTy :: (Type -> Bool) -> Name -> TcS (Type -> Bool) is_tyConTy is_eq tc_name - = do { (mb_tc, _) <- wrapTcS $ TcM.tryTc $ TcM.tcLookupTyCon tc_name + = do { mb_tc <- wrapTcS $ do + mod <- tcg_mod <$> TcM.getGblEnv + if moduleUnit mod `elem` [primUnit, ghcInternalUnit, bignumUnit] + then return Nothing + else Just <$> TcM.tcLookupTyCon tc_name ; case mb_tc of Just tc -> return $ \ ty -> not (typesAreApart ty (mkTyConTy tc)) ===================================== configure.ac ===================================== @@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.10.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.10.3-notes.rst ===================================== @@ -0,0 +1,165 @@ +.. _release-9-10-3: + +Version 9.10.3 +=============== +The significant changes to the various parts of the compiler are listed in the +following sections. See the `migration guide +https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.10`_ on the GHC Wiki +for specific guidance on migrating programs to this release. + + +Compiler +~~~~~~~~ + +- Don't cache solved [W] HasCallStack constraints to avoid re-using old + call-stacks instead of constructing new ones. (:ghc-ticket:`25529`) + +- Fix EmptyCase panic in tcMatches when \case{} is checked against a function + type preceded by invisible forall. (:ghc-ticket:`25960`) + +- Fix panic triggered by combination of \case{} and forall t ->. (:ghc-ticket:`25004`) + +- Fix GHC.SysTools.Ar archive member size writing logic that was emitting wrong + archive member sizes in headers. (:ghc-ticket:`26120`, :ghc-ticket:`22586`) + +- Fix multiple bugs in name resolution of subordinate import lists related to + type namespace specifiers and hiding clauses. (:ghc-ticket:`22581`, :ghc-ticket:`25983`, :ghc-ticket:`25984`, :ghc-ticket:`25991`) + +- Use mkTrAppChecked in ds_ev_typeable to avoid false negatives for type + equality involving function types. (:ghc-ticket:`25998`) + +- Fix bytecode generation for ``tagToEnum# <LITERAL>``. (:ghc-ticket:`25975`) + +- Don't report used duplicate record fields as unused. (:ghc-ticket:`24035`) + +- Propagate long distance info to guarded let binds for better pattern-match + checking warnings. (:ghc-ticket:`25749`) + +- Prevent incorrect unpacking optimizations for GADTs with multiple constructors. (:ghc-ticket:`25672`) + +- Introduce a separate argument limit for forced specs via SPEC argument with + warning when limit is exceeded. (:ghc-ticket:`25197`) + +Build system and packaging +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- 9.10 hadrian can build with Cabal-3.12.1. (:ghc-ticket:`25605`) + +- GHC settings: always unescape escaped spaces to fix handling of spaces in + executable paths. (:ghc-ticket:`25204`) + +Native code generator backend +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- x86 NCG: Fix code generation of bswap64 on i386. (:ghc-ticket:`25601`) + +- AArch64 NCG: Fix sub-word arithmetic right shift by zero-extending sub-word + values. (:ghc-ticket:`26061`) + +- NCG: AArch64 - Add -finter-module-far-jumps flag for modules with far jumps + outside the current module. (:ghc-ticket:`24648`) + +LLVM backend +~~~~~~~~~~~~ + +- LLVM: fix typo in padLiveArgs that was incorrectly computing too many padding + registers causing segfaults. (:ghc-ticket:`25770`, :ghc-ticket:`25773`) + +- llvmGen: Fix linkage of built-in arrays to use Appending linkage instead of + Internal. (:ghc-ticket:`25769`) + +- llvmGen: Fix built-in variable predicate to check for `@llvm` rather than + `$llvm`. + +WebAssembly backend +~~~~~~~~~~~~~~~~~~~ + +- wasm: use primitive opcodes for fabs and sqrt operations. + +Runtime system +~~~~~~~~~~~~~~ + +- rts: Implement WEAK EXTERNAL undef redirection by target symbol name. + +- rts: Handle API set symbol versioning conflicts. + +- rts: fix rts_clearMemory logic when sanity checks are enabled. (:ghc-ticket:`26011`) + +- rts/linker: Improve efficiency of proddable blocks structure by using binary + search instead of linked lists for better performance with split sections. (:ghc-ticket:`26009`) + +- rts/linker/PEi386: Don't repeatedly load DLLs by maintaining a hash-set of + loaded DLL names. (:ghc-ticket:`26009`, :ghc-ticket:`26052`) + +- rts/linker: Don't fail due to RTLD_NOW by attempting eager binding first, + then reverting to lazy binding on failure. (:ghc-ticket:`25943`) + +``base`` library +~~~~~~~~~~~~~~~~ + +- base: Expose Backtraces constructor and fields. (:ghc-ticket:`26049`) + +- base: Note strictness changes made in 4.16.0.0. (:ghc-ticket:`25886`) + +- Fix bugs in ``integerRecipMod`` and ``integerPowMod`` return values. (:ghc-ticket:`26017`) + +``ghc`` library +~~~~~~~~~~~~~~~ + +- perf: Replace uses of genericLength with strictGenericLength to reduce time + spent in 'assembleBCOs' and allocations. (:ghc-ticket:`25706`) + +Build tools +~~~~~~~~~~~ + +- configure: Drop probing of ld.gold since `gold` has been dropped from + binutils-2.44. (:ghc-ticket:`25716`) + +- get-win32-tarballs.py: List tarball files to be downloaded if we cannot find + them. (:ghc-ticket:`25929`) + +- hp2ps Utilities.c: include stdlib.h instead of extern malloc and realloc. + +Included libraries +~~~~~~~~~~~~~~~~~~ + +The package database provided with this distribution also contains a number of +packages other than GHC itself. See the changelogs provided with these packages +for further change information. + +.. ghc-package-list:: + + libraries/array/array.cabal: Dependency of ``ghc`` library + libraries/base/base.cabal: Core library + libraries/binary/binary.cabal: Dependency of ``ghc`` library + libraries/bytestring/bytestring.cabal: Dependency of ``ghc`` library + libraries/Cabal/Cabal/Cabal.cabal: Dependency of ``ghc-pkg`` utility + libraries/Cabal/Cabal-syntax/Cabal-syntax.cabal: Dependency of ``ghc-pkg`` utility + libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library + libraries/deepseq/deepseq.cabal: Dependency of ``ghc`` library + libraries/directory/directory.cabal: Dependency of ``ghc`` library + libraries/exceptions/exceptions.cabal: Dependency of ``ghc`` and ``haskeline`` library + libraries/filepath/filepath.cabal: Dependency of ``ghc`` library + compiler/ghc.cabal: The compiler itself + libraries/ghci/ghci.cabal: The REPL interface + libraries/ghc-boot/ghc-boot.cabal: Internal compiler library + libraries/ghc-boot-th/ghc-boot-th.cabal: Internal compiler library + libraries/ghc-compact/ghc-compact.cabal: Core library + libraries/ghc-heap/ghc-heap.cabal: GHC heap-walking library + libraries/ghc-prim/ghc-prim.cabal: Core library + libraries/haskeline/haskeline.cabal: Dependency of ``ghci`` executable + libraries/hpc/hpc.cabal: Dependency of ``hpc`` executable + libraries/integer-gmp/integer-gmp.cabal: Core library + libraries/mtl/mtl.cabal: Dependency of ``Cabal`` library + libraries/parsec/parsec.cabal: Dependency of ``Cabal`` library + libraries/pretty/pretty.cabal: Dependency of ``ghc`` library + libraries/process/process.cabal: Dependency of ``ghc`` library + libraries/stm/stm.cabal: Dependency of ``haskeline`` library + libraries/template-haskell/template-haskell.cabal: Core library + libraries/terminfo/terminfo.cabal: Dependency of ``haskeline`` library + libraries/text/text.cabal: Dependency of ``Cabal`` library + libraries/time/time.cabal: Dependency of ``ghc`` library + libraries/transformers/transformers.cabal: Dependency of ``ghc`` library + libraries/unix/unix.cabal: Dependency of ``ghc`` library + libraries/Win32/Win32.cabal: Dependency of ``ghc`` library + libraries/xhtml/xhtml.cabal: Dependency of ``haddock`` executable \ No newline at end of file ===================================== utils/haddock ===================================== @@ -1 +1 @@ -Subproject commit f6116257ff838bb0b9def2c49d2f629756527ad2 +Subproject commit 050fe4bbb455fb6b79e02afc7567f3a246fea5ea View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/00352d68f3708340ba267c26bb4aef5... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/00352d68f3708340ba267c26bb4aef5... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Zubin (@wz1000)