2.6. Version 9.2.6¶
The significant changes to the various parts of the compiler are listed in the following sections.
The LLVM backend
of this release is to be used with LLVM
9, 10, 11, or 12.
2.6.1. Compiler¶
- Fix a regression in the simplifier due to a bad backport in GHC 9.2.5 that could seriously impact runtime performance when compiling with optimisations due to duplication of expensive work (#22425).
- Fix a compiler panic in the simplifier due to a bad backport in GHC 9.2.5 (#22491).
- Fix a compiler panic in the simplifier that manifests when compiling with optimisations (#19824, #22482).
- Fix a compiler panic in the demand analyser due to a bug involving shadowing (#22718).
- Fix a compiler panic during the “Float In” optimsation pass due to improper handling of shadowing (#22662).
- Fix a compiler panic in the demand analyser (#22039).
- Fix a shadowing related bug in the occurence analysis phase of the simplifier (#22623).
- Fix a compiler bug where programs using Template Haskell involving Constant Applicative forms could be garbage collected too early (#22417).
- Fix a regression in the typechecker where certain typeclass instances involving type and data familes would fail to resolve (#22647).
- Fix the linker warning about chained fixups on Darwin platforms for programs compiled with GHC (#22429).
- Fix a bug with the graph-colouring register allocater leading to compiler
panics when compiling with
-fregs-graph
(#22798). - Fix a parser bug where certain keywords which could be used as variables
were not allowed to be used with
OverloadedRecordDot
(#20723). - Fix the location of some
Typeable
definitions fromGHC.Types
which resulted in poor error messages (#22510). - Improve error messages involving non-exhaustive patterns when using
ApplicativeDo
(#22483). - Fix a driver bug where certain non-fatal Safe Haskell related warnings were being marked as fatal (#22728).
- Fix a core lint error arises from incorrect scoping of type variables in specialise pragmas inside class instances (#22913).
- Improve typchecker performance for modules with holes in type signatures (#14766).
2.6.2. Runtime system¶
- Fix a GC bug where a race condition in the parallel GC could cause it to garbage collect live sparks (#22528).
- Truncate eventlog events with a large payload (#20221).
- A bug in the nonmoving garbage collector regarding the treatment of
zero-length
SmallArray#
s has been fixed (#22264) - A number of bugs regarding the non-moving garbage collector’s treatment of
Weak#
pointers have been fixed (#22327) - A few race conditions between the non-moving collector and
setNumCapabilities
which could result in undefined behavior have been fixed (#22926, #22927) - The non-moving collector is now able to better schedule marking work during the post-mark synchronization phase of collection, significantly reducing pause times in some workloads (#22929).
- Various bugs in the non-moving collector’s implementation of the selector optimisation have been fixed (#22930)
2.6.3. Build system and packaging¶
2.6.4. Core libraries¶
- Bump
bytestring
to 0.11.4.0.
2.6.5. 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.2.8 | The compiler itself |
Cabal | 3.6.3.0 | Dependency of ghc-pkg utility |
Win32 | 2.12.0.1 | Dependency of ghc library |
array | 0.5.4.0 | Dependency of ghc library |
base | 4.16.4.0 | Core library |
binary | 0.8.9.0 | Dependency of ghc library |
bytestring | 0.11.4.0 | Dependency of ghc library |
containers | 0.6.5.1 | Dependency of ghc library |
deepseq | 1.4.6.1 | Dependency of ghc library |
directory | 1.3.6.2 | Dependency of ghc library |
exceptions | 0.10.4 | Dependency of ghc and haskeline library |
filepath | 1.4.2.2 | Dependency of ghc library |
ghc-boot-th | 9.2.8 | Internal compiler library |
ghc-boot | 9.2.8 | Internal compiler library |
ghc-compact | 0.1.0.0 | Core library |
ghc-heap | 9.2.8 | GHC heap-walking library |
ghc-prim | 0.8.0 | Core library |
ghci | 9.2.8 | The REPL interface |
haskeline | 0.8.2 | Dependency of ghci executable |
hpc | 0.6.1.0 | Dependency of hpc executable |
integer-gmp | 1.1 | Core library |
libiserv | 9.2.8 | Internal compiler library |
mtl | 2.2.2 | Dependency of Cabal library |
parsec | 3.1.15.0 | Dependency of Cabal library |
pretty | 1.1.3.6 | Dependency of ghc library |
process | 1.6.16.0 | Dependency of ghc library |
stm | 2.5.0.2 | Dependency of haskeline library |
template-haskell | 2.18.0.0 | Core library |
terminfo | 0.4.1.5 | Dependency of haskeline library |
text | 1.2.5.0 | Dependency of Cabal library |
time | 1.11.1.1 | Dependency of ghc library |
transformers | 0.5.6.2 | Dependency of ghc library |
unix | 2.7.2.2 | Dependency of ghc library |
xhtml | 3000.2.2.1 | Dependency of haddock executable |