2.3. Version 9.12.3¶
The significant changes to the various parts of the compiler are listed in the following sections. See the migration guide on the GHC Wiki for specific guidance on migrating programs to this release.
2.3.1. Compiler¶
- Fixed re-exports of
MkSoloandMkSolo#(#25182) - Fixed the behavior of
Language.Haskell.TH.mkName "FUN"(#25174) - Fixed miscompilation involving
zonkEqTypesonAppTy/AppTy(#26256) - Fixed CprAnal to detect recursive newtypes (#25944)
- Fixed specialisation of incoherent instances (#25883)
- Fixed bytecode generation for
tagToEnum# <LITERAL>(#25975) - Fixed panic with EmptyCase and RequiredTypeArguments (#25004)
- Fixed
tyConStupidThetato handlePromotedDataCon(#25739) - Fixed unused import warnings for duplicate record fields (#24035)
- Fixed lexing of
"\^\"(#25937) - Fixed string gap collapsing (#25784)
- Fixed lexing of comments in multiline strings (#25609)
- Made unexpected LLVM versions a warning rather than an error (#25915)
- Disabled
-fprof-late-overloaded-callsfor join points to avoid invalid transformations - Fixed bugs in
integerRecipModandintegerPowMod(#26017) - Fixed
naturalAndNotfor NB/NS case (#26230) - Fixed
ds_ev_typeableto usemkTrAppChecked(#25998) - Fixed GHC settings to always unescape escaped spaces (#25204)
- Fixed issue with HasCallStack constraint caching (#25529)
- Fixed archive member size writing logic in
GHC.SysTools.Ar(#26120, #22586)
2.3.2. Runtime System¶
- Fixed
MessageBlackHole.linkto always be a valid closure - Fixed handling of WHITEHOLE in
messageBlackHole(#26205) - Fixed
rts_clearMemorylogic when sanity checks are enabled (#26011) - Fixed underflow frame lookups in the bytecode interpreter (#25750)
- Fixed overflows and reentrancy in interpreter statistics calculation (#25756)
- Fixed INTERP_STATS profiling code (#25695)
- Removed problematic
n_freevariable from nonmovingGC (#26186) - Fixed incorrect format specifiers in era profiling
- Improved documentation of SLIDE and PACK bytecode instructions
- Eliminated redundant
SLIDE x 0bytecode instructions - Fixed compile issues on powerpc64 ELF v1
2.3.3. Code Generation¶
- Fixed LLVM built-in variable predicate (was checking
$llvminstead of@llvm) - Fixed linkage of built-in arrays for LLVM (#25769)
- Fixed code generation for SSE vector operations (#25859)
- Fixed
bswap64code generation on i386 (#25601) - Fixed sub-word arithmetic right shift on AArch64 (#26061)
- Fixed LLVM vector literal emission to include type information
- Fixed LLVM version detection
- Fixed typo in
padLiveArgsthat caused segfaults (#25770, #25773) - Fixed constant-folding for Word->Float bitcasts
- Added surface syntax for Word/Float bitcast operations
- Fixed
MOVDformat in x86 NCG forunpackInt64X2# - Added
-finter-module-far-jumpsflag for AArch64 - Fixed RV64 J instruction handling for non-local jumps (#25738)
- Reapplied division by constants optimization
- Fixed TNTC to set CmmProc entry_label properly (#25565)
2.3.4. Linker¶
2.3.6. Template Haskell¶
- Added explicit export lists to all remaining template-haskell modules
2.3.7. Build system¶
2.3.8. 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.
| Package | Version | Reason for inclusion |
|---|---|---|
| ghc | 9.12.2.20250919 | The compiler itself |
| Cabal-syntax | 3.14.2.0 | Dependency of ghc-pkg utility |
| Cabal | 3.14.2.0 | Dependency of ghc-pkg utility |
| Win32 | 2.14.1.0 | Dependency of ghc library |
| array | 0.5.8.0 | Dependency of ghc library |
| base | 4.21.1.0 | Core library |
| binary | 0.8.9.3 | Dependency of ghc library |
| bytestring | 0.12.2.0 | Dependency of ghc library |
| containers | 0.7 | Dependency of ghc library |
| deepseq | 1.5.1.0 | Dependency of ghc library |
| directory | 1.3.9.0 | Dependency of ghc library |
| exceptions | 0.10.10 | Dependency of ghc and haskeline library |
| file-io | 0.1.5 | Dependency of directory library |
| filepath | 1.5.4.0 | Dependency of ghc library |
| ghc-boot-th | 9.12.2.20250919 | Internal compiler library |
| ghc-boot | 9.12.2.20250919 | Internal compiler library |
| ghc-compact | 0.1.0.0 | Core library |
| ghc-experimental | 9.1202.0 | Core library |
| ghc-heap | 9.12.2.20250919 | GHC heap-walking library |
| ghc-internal | 9.1202.0 | Core library |
| ghc-platform | 0.1.0.0 | Internal library |
| ghc-prim | 0.13.0 | Core library |
| ghci | 9.12.2.20250919 | The REPL interface |
| haskeline | 0.8.2.1 | Dependency of ghci executable |
| hpc | 0.7.0.2 | Dependency of hpc executable |
| integer-gmp | 1.1 | Core library |
| mtl | 2.3.1 | Dependency of Cabal library |
| os-string | 2.0.8 | Dependency of filepath library |
| parsec | 3.1.18.0 | Dependency of Cabal library |
| pretty | 1.1.3.6 | Dependency of ghc library |
| process | 1.6.26.1 | Dependency of ghc library |
| semaphore-compat | 1.0.0 | Dependency of ghc library |
| stm | 2.5.3.1 | Dependency of haskeline library |
| template-haskell | 2.23.0.0 | Core library |
| terminfo | 0.4.1.7 | Dependency of haskeline library |
| text | 2.1.3 | Dependency of Cabal library |
| time | 1.14 | Dependency of ghc library |
| transformers | 0.6.1.2 | Dependency of ghc library |
| unix | 2.8.7.0 | Dependency of ghc library |
| xhtml | 3000.2.2.1 | Dependency of haddock executable |
| haddock-api | 2.30.0 | Dependency of haddock executable |
| haddock-library | 1.11.0 | Dependency of haddock executable |