2.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 on the GHC Wiki for specific guidance on migrating programs to this release.
2.3.1. Compiler¶
- Don’t cache solved [W] HasCallStack constraints to avoid re-using old call-stacks instead of constructing new ones. (#25529)
- Fix EmptyCase panic in tcMatches when case{} is checked against a function type preceded by invisible forall. (#25960)
- Fix panic triggered by combination of case{} and forall t ->. (#25004)
- Fix GHC.SysTools.Ar archive member size writing logic that was emitting wrong archive member sizes in headers. (#26120, #22586)
- Use mkTrAppChecked in ds_ev_typeable to avoid false negatives for type equality involving function types. (#25998)
- Fix bytecode generation for
tagToEnum# <LITERAL>. (#25975) - Don’t report used duplicate record fields as unused. (#24035)
- Propagate long distance info to guarded let binds for better pattern-match checking warnings. (#25749)
- Prevent incorrect unpacking optimizations for GADTs with multiple constructors. (#25672)
- Introduce a separate argument limit for forced specs via SPEC argument with warning when limit is exceeded. (#25197)
- Fix compiler crash in the renamer with certain programs referencing out of scope record fields (#25056)
2.3.2. Build system and packaging¶
2.3.3. Native code generator backend¶
2.3.4. LLVM backend¶
2.3.5. WebAssembly backend¶
- wasm: use primitive opcodes for fabs and sqrt operations.
2.3.6. Runtime system¶
- rts: Fix a segfault involving STM (#26205).
- 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. (#26011)
- rts/linker: Improve efficiency of proddable blocks structure by using binary search instead of linked lists for better performance with split sections. (#26009)
- rts/linker/PEi386: Don’t repeatedly load DLLs by maintaining a hash-set of loaded DLL names. (#26009, #26052)
- rts/linker: Don’t fail due to RTLD_NOW by attempting eager binding first, then reverting to lazy binding on failure. (#25943)
2.3.7. base library¶
2.3.8. ghc library¶
- perf: Replace uses of genericLength with strictGenericLength to reduce time spent in ‘assembleBCOs’ and allocations. (#25706)
2.3.9. Build tools¶
- get-win32-tarballs.py: List tarball files to be downloaded if we cannot find them. (#25929)
- hp2ps Utilities.c: include stdlib.h instead of extern malloc and realloc.
2.3.10. 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.10.3 | The compiler itself |
| Cabal-syntax | 3.12.1.0 | Dependency of ghc-pkg utility |
| Cabal | 3.12.1.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.20.2.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.0.0 | Dependency of ghc library |
| directory | 1.3.8.5 | Dependency of ghc library |
| exceptions | 0.10.9 | Dependency of ghc and haskeline library |
| filepath | 1.5.4.0 | Dependency of ghc library |
| ghc-boot-th | 9.10.3 | Internal compiler library |
| ghc-boot | 9.10.3 | Internal compiler library |
| ghc-compact | 0.1.0.0 | Core library |
| ghc-heap | 9.10.3 | GHC heap-walking library |
| ghc-prim | 0.12.0 | Core library |
| ghci | 9.10.3 | 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 |
| 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 |
| stm | 2.5.3.1 | Dependency of haskeline library |
| template-haskell | 2.22.0.0 | Core library |
| terminfo | 0.4.1.7 | Dependency of haskeline library |
| text | 2.1.3 | Dependency of Cabal library |
| time | 1.12.2 | Dependency of ghc library |
| transformers | 0.6.1.1 | Dependency of ghc library |
| unix | 2.8.7.0 | Dependency of ghc library |
| xhtml | 3000.2.2.1 | Dependency of haddock executable |