.. _release-9-6-7: Version 9.6.7 ============== The :ghc-flag:`LLVM backend <-fllvm>` of this release is to be used with LLVM 11, 12, 13, 14 or 15. Significant Changes ~~~~~~~~~~~~~~~~~~~~ Issues fixed in this release include: Compiler -------- - Fixed a bug that caused GHC to panic when using the AArch64 ncg and :ghc-flag:`-fregs-graph` on certain programs (:ghc-ticket:`24941`). - Fix invalid optimisation of Cmm programs on 32-bit platforms when targetting 64-bit targets (:ghc-ticket:`24893` and :ghc-ticket:`24700`). - Improve float-out surrounding applications of ``runRW#`` (:ghc-ticket:`25055`). - Fix :ghc-flag:`-fregs-graph` crash when targetting AArch64 (:ghc-ticket:`24941`). - Fix code generation of foreign exports with more than 6 arguments when some are subword-width (:ghc-ticket:`24314`). - Fix recompilation avoidance behavior of :ghc-flag:`-fwrite-if-simplified-core` (:ghc-ticket:`24656`). - Fix linking error when :extension:`TypeData` and :extension:`StrictData` are in use (:ghc-ticket:`24620`). - :ghc-flag:`-Wmissing-home-modules` now behaves correctly when multiple units have expose the same module name (:ghc-ticket:`25122`). - Adjust the demand signature of the ``prompt#`` to avoid invalid optimisation of non-terminating programs (:ghc-ticket:`25439`). - GHC's internal ``Unique`` type has been widened to 64-bits on 32-bit architectures, avoiding potential miscompilations on large projects (:ghc-ticket:`22010`). - Fix LLVM version detection on newer LLVM versions (:ghc-ticket:`25606`). - Determine ``max_n_capabilities`` at RTS startup, removing the previous static cap at 256 (:ghc-ticket:`25560`). - Fix out-of-bounds memory mapping logic, resolving an infinite loop on FreeBSD (:ghc-ticket:`25492`). - Find C++ probing when GCC version is the latest but G++ is old (:ghc-ticket:`23118`). - Consider Wanteds with rewriters as insoluble, fixing a situation where the program fails to typecheck but no errors are reported (:ghc-ticket:`25325`). - Fix x86 NCG foreign argument promotion. The x86 NCG now correctly promotes 8 bit and 16 bits arguments by sign extension (:ghc-ticket:`25018`). - Fix GHC flag ``-working-dir`` for foreign files (:ghc-ticket:`25150`). - Added new flags :ghc-flag:`-fspec-eval` and :ghc-flag:`-fspec-eval-dictfun` to allow switching off speculative evaluation (:ghc-ticket:`25284`). - Fix a runtime crash when using the compacting GC, caused by black holes in large objects (:ghc-ticket:`24791`). Hadrian and builds ------------------ - Bump the minimum version of the `directory` dependency for Hadrian to 1.3.9.0 to avoid a race condition on Windows (:ghc-ticket:`#24382`). Also updated the bootstrap build plans for hadrian. - Hadrian: Set `-this-package-name`. This fixes package imports for `ghci-multi` and was required to update the `unix` package. - Add Ubuntu 22.04 builds for nightlies and release (:ghc-ticket:`25317`). JavaScript backend ------------------ - Fix compiler crash involving rubbish literals (:ghc-ticket:`25177`, :ghc-ticket:`24664`). ``base`` -------- - Bump version to 4.18.2.2 - Fix spurious closing of file descriptors after ``fork`` on platforms using the KQueue event manager backend (:ghc-ticket:`24672`), visible on FreeBSD. Other Core Libraries -------------------- - The ``filepath`` library has been upgraded to 1.4.301.0, fixing a potentially exploitable behavior with ``splitFileName`` on Windows (:ghc-ticket:`24597`). - ``unix-2.8.6.0`` is included, fixing an `issue <https://github.com/haskell/unix/pull/252>`_ affecting ``musl`` targets. - ``bytestring`` has been upgraded to 0.11.5.4, fixing a race condition in ``toLazyByteString`` that could generate wrong results if two threads concurrently evaluated the result. - ``array`` has been upgraded to 0.5.8.0. - ``ghc-bignum``: the bundled gmp library has been upgraded to 6.3.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/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/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