.. _release-9-2-6: Version 9.2.6 ============== The significant changes to the various parts of the compiler are listed in the following sections. The :ghc-flag:`LLVM backend <-fllvm>` of this release is to be used with LLVM 9, 10, 11, or 12. 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 (:ghc-ticket:`22425`). - Fix a compiler panic in the simplifier due to a bad backport in GHC 9.2.5 (:ghc-ticket:`22491`). - Fix a compiler panic in the simplifier that manifests when compiling with optimisations (:ghc-ticket:`19824`,:ghc-ticket:`22482`). - Fix a compiler panic in the demand analyser due to a bug involving shadowing (:ghc-ticket:`22718`). - Fix a compiler panic during the "Float In" optimsation pass due to improper handling of shadowing (:ghc-ticket:`22662`). - Fix a compiler panic in the demand analyser (:ghc-ticket:`22039`). - Fix a shadowing related bug in the occurence analysis phase of the simplifier (:ghc-ticket:`22623`). - Fix a compiler bug where programs using Template Haskell involving Constant Applicative forms could be garbage collected too early (:ghc-ticket:`22417`). - Fix a regression in the typechecker where certain typeclass instances involving type and data familes would fail to resolve (:ghc-ticket:`22647`). - Fix the linker warning about chained fixups on Darwin platforms for programs compiled with GHC (:ghc-ticket:`22429`). - Fix a bug with the graph-colouring register allocater leading to compiler panics when compiling with ``-fregs-graph`` (:ghc-ticket:`22798`). - Fix a parser bug where certain keywords which could be used as variables were not allowed to be used with :extension:`OverloadedRecordDot` (:ghc-ticket:`20723`). - Fix the location of some ``Typeable`` definitions from ``GHC.Types`` which resulted in poor error messages (:ghc-ticket:`22510`). - Improve error messages involving non-exhaustive patterns when using :extension:`ApplicativeDo` (:ghc-ticket:`22483`). - Fix a driver bug where certain non-fatal Safe Haskell related warnings were being marked as fatal (:ghc-ticket:`22728`). - Fix a core lint error arises from incorrect scoping of type variables in specialise pragmas inside class instances (:ghc-ticket:`22913`). - Improve typchecker performance for modules with holes in type signatures (:ghc-ticket:`14766`). Runtime system -------------- - Fix a GC bug where a race condition in the parallel GC could cause it to garbage collect live sparks (:ghc-ticket:`22528`). - Truncate eventlog events with a large payload (:ghc-ticket:`20221`). - A bug in the nonmoving garbage collector regarding the treatment of zero-length ``SmallArray#``\ s has been fixed (:ghc-ticket:`22264`) - A number of bugs regarding the non-moving garbage collector's treatment of ``Weak#`` pointers have been fixed (:ghc-ticket:`22327`) - A few race conditions between the non-moving collector and ``setNumCapabilities`` which could result in undefined behavior have been fixed (:ghc-ticket:`22926`, :ghc-ticket:`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 (:ghc-ticket:`22929`). - Various bugs in the non-moving collector's implementation of the selector optimisation have been fixed (:ghc-ticket:`22930`) Build system and packaging -------------------------- - Bump ``gmp-tarballs`` to a version which doesn't use the reserved ``x18`` register on AArch64/Darwin systems, and also has fixes for CVE-2021-43618 (:ghc-ticket:`22497`, :ghc-ticket:`22789`). - Include haddock documentation in interface files for hadrian generated bindists, including darwin platforms (:ghc-ticket:`22734`). Core libraries -------------- - Bump ``bytestring`` to 0.11.4.0. 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/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/libiserv/libiserv.cabal: Internal compiler 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