[Git][ghc/ghc][wip/CLC208] 6 commits: Bump GHC version to 9.13

Ben Gamari (@bgamari) gitlab at gitlab.haskell.org
Tue Oct 1 14:05:46 UTC 2024



Ben Gamari pushed to branch wip/CLC208 at Glasgow Haskell Compiler / GHC


Commits:
e4ac1b0d by Zubin Duggal at 2024-09-27T19:12:24+05:30
Bump GHC version to 9.13

- - - - -
e362d34f by Ben Gamari at 2024-10-01T09:59:13-04:00
ghc-internal: Drop GHC.Internal.Data.Enum

This module consists only of reexports and consequently there is no
reason for it to exist.

- - - - -
4b7aba68 by Ben Gamari at 2024-10-01T09:59:13-04:00
base: Introduce Data.Bounded

As proposed in [CLC#208] but unfortunately `Data.Enum` was already
incorrectly introduced in the `ghc-internal` refactor.

[CLC#208]: https://github.com/haskell/core-libraries-committee/issues/208

- - - - -
fa3a9d0f by Ben Gamari at 2024-10-01T09:59:13-04:00
base: Deprecate export of Bounded from Data.Enum

This begins the process of bringing us into compliance with
[CLC#208].

[CLC#208]: https://github.com/haskell/core-libraries-committee/issues/208

- - - - -
a2b02e8d by Ben Gamari at 2024-10-01T09:59:13-04:00
base: Mention incorrect Data.Enum addition in changelog

- - - - -
3547f0df by Ben Gamari at 2024-10-01T10:05:15-04:00
deprecate

- - - - -


12 changed files:

- configure.ac
- − docs/users_guide/9.12.1-notes.rst
- + docs/users_guide/9.14.1-notes.rst
- libraries/base/base.cabal.in
- libraries/base/changelog.md
- libraries/ghc-internal/src/GHC/Internal/Data/Enum.hs → libraries/base/src/Data/Bounded.hs
- libraries/base/src/Data/Enum.hs
- libraries/ghc-internal/ghc-internal.cabal.in
- libraries/ghc-internal/src/GHC/Internal/LanguageExtensions.hs
- testsuite/tests/interface-stability/base-exports.stdout
- utils/haddock/haddock-api/haddock-api.cabal
- utils/haddock/haddock-api/src/Haddock/InterfaceFile.hs


Changes:

=====================================
configure.ac
=====================================
@@ -13,7 +13,7 @@ dnl
 # see what flags are available. (Better yet, read the documentation!)
 #
 
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.12], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.13], [glasgow-haskell-bugs at haskell.org], [ghc-AC_PACKAGE_VERSION])
     # Version on master must be X.Y (not X.Y.Z) for ProjectVersionMunged variable
     # to be useful (cf #19058). However, the version must have three components
     # (X.Y.Z) on stable branches (e.g. ghc-9.2) to ensure that pre-releases are
@@ -22,7 +22,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [9.12], [glasgow-hask
 AC_CONFIG_MACRO_DIRS([m4])
 
 # Set this to YES for a released version, otherwise NO
-: ${RELEASE=YES}
+: ${RELEASE=NO}
 
 # The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line
 # above.  If this is not a released version, then we will append the


=====================================
docs/users_guide/9.12.1-notes.rst deleted
=====================================
@@ -1,283 +0,0 @@
-.. _release-9-11-1:
-
-Version 9.12.1
-==============
-
-The significant changes to the various parts of the compiler are listed in the
-following sections. See the `migration guide
-<https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.12>`_ on the GHC Wiki
-for specific guidance on migrating programs to this release.
-
-Language
-~~~~~~~~
-
-- New language extension: :extension:`OrPatterns` implements `GHC Proposal #522
-  <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0522-or-patterns.rst>`_).
-- GHC Proposal `#569 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0569-multiline-strings.rst>`_
-  "Multiline string literals" has been implemented.
-  The following code is now accepted by GHC::
-
-    {-# LANGUAGE MultilineStrings #-}
-
-    x :: String
-    x =
-      """
-      This is a
-      multiline
-
-          string
-
-      literal
-      """
-
-  This feature is guarded behind :extension:`MultilineStrings`.
-
-- The ordering of variables used for visible type application has been changed in two cases.
-  It is supposed to be left-to-right, but due to an oversight, it was wrong:
-
-  - in an infix application ``f :: a `op` b``, it is now ``forall a op b.`` rather than
-    ``forall op a b.``
-  - in a linear type ``f :: a %m -> b``, it is now ``forall a m b.`` rather than
-    ``forall a b m.``.
-
-  This change is backwards-incompatible, although in practice we don't expect it
-  to cause significant disruption.
-
-- The built-in ``HasField`` class, used by :extension:`OverloadedRecordDot`, now
-  supports representation polymorphism (implementing part of `GHC Proposal #583
-  <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0583-hasfield-redesign.rst>`_).
-  This means that code using :extension:`UnliftedDatatypes` or
-  :extension:`UnliftedNewtypes` can now use :extension:`OverloadedRecordDot`.
-
-- Unboxed ``Float#``/``Double#`` literals now support the HexFloatLiterals extension
-  (`#22155 <https://gitlab.haskell.org/ghc/ghc/-/issues/22155>`_).
-
-- :extension:`UnliftedFFITypes`: GHC will now accept FFI types like: ``(# #) -> T`` where ``(# #)``
-  is used as the one and only function argument.
-
-- The venerable ``default`` declarations have been generalized. They can now name a class
-  other than ``Num`` and the class defaults can be exported. The functionality is guarded
-  by the new ``NamedDefaults`` language extension. See the `GHC proposal
-  <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst>`__
-  for details.
-
-- GHC now takes COMPLETE pragmas into consideration when deciding whether
-  pattern matches in do notation are fallible.
-
-- As part of `GHC Proposal #281 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0281-visible-forall.rst>`_
-  GHC now accepts type syntax in expressions, namely function type arrow ``a -> b``,
-  constraint arrow ``a => b``, and ``forall`` telescopes: ::
-
-    g = f (forall a. Show a => a -> String)
-      where f :: forall a -> ...
-
-- In accordance with `GHC Proposal #425 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0425-decl-invis-binders.rst>`_,
-  GHC now permits wildcard binders in type declarations: ::
-
-    type Const a b = a   -- before: the `b` had to be named even if unused on the RHS
-    type Const a _ = a   -- now: the compiler accepts a wildcard binder `_`
-
-Compiler
-~~~~~~~~
-
-- Constructor ``PluginProv`` of type ``UnivCoProvenance``, relevant
-  for typing plugins, gets an extra ``DCoVarSet`` argument.
-  The argument is intended to contain the in-scope coercion variables
-  that the the proof represented by the coercion makes use of.
-  See ``Note [The importance of tracking UnivCo dependencies]``
-  in ``GHC.Core.TyCo.Rep``, :ref:`constraint-solving-with-plugins`
-  and the migration guide.
-
-- The flag :ghc-flag:`-fprof-late` will no longer prevent top level constructors from being statically allocated.
-
-  It used to be the case that we would add a cost centre for bindings like ``foo = Just bar``.
-  This turned the binding into a CAF that would allocate the constructor on first evaluation.
-
-  However without the cost centre ``foo`` can be allocated at compile time. This reduces code-bloat and
-  reduces overhead for short-running applications.
-
-  The tradeoff is that calling ``whoCreated`` on top level value definitions like ``foo`` will be less informative.
-
-- A new flag :ghc-flag:`-fexpose-overloaded-unfoldings` has been added providing a lightweight alternative to :ghc-flag:`-fexpose-all-unfoldings`.
-
-- :ghc-flag:`-Wderiving-typeable` has been added to :ghc-flag:`-Wall`.
-
-- SIMD support has been added to the X86 native code generator.
-  For the time being, only 128 bit wide vectors are supported, with most
-  floating-point operations implemented, together with a few integer vector
-  operations. Other operations still require the LLVM backend. Contributors
-  welcome!
-
-- i386 Windows support is now completely removed amid massive cleanup
-  of legacy code to pave way for Arm64 Windows support (`#24883
-  <https://gitlab.haskell.org/ghc/ghc/-/issues/24883>`_). Rest
-  assured, this does not impact existing support for x86_64 Windows or
-  i386 Linux. For end users, the ``stdcall`` C calling convention is
-  now fully deprecated and GHC will unconditionally produce a warning
-  and treat it as ``ccall``. All C import/export declarations on
-  Windows should now use ``ccall``.
-
-- 32-bit macOS/iOS support has also been completely removed (`#24921
-  <https://gitlab.haskell.org/ghc/ghc/-/issues/24921>`_). This does
-  not affect existing support of apple systems on x86_64/aarch64.
-
-- The flag :ghc-flag:`-fignore-asserts` will now also enable the
-  :extension:`CPP` macro ``__GLASGOW_HASKELL_ASSERTS_IGNORED__`` (`#24967
-  <https://gitlab.haskell.org/ghc/ghc/-/issues/24967>`_).
-  This enables people to write their own custom assertion functions.
-  See :ref:`assertions`.
-
-- The flag :ghc-flag:`-fkeep-auto-rules` that forces GHC to keep auto generated
-  specialization rules was added. It was actually added ghc-9.10.1 already but
-  mistakenly not mentioned in the 9.10.1 changelog.
-
-- Fixed a bug that caused GHC to panic when using the aarch64 ncg and -fregs-graph
-  on certain programs. (#24941)
-
-- A new warning :ghc-flag:`-Wview-pattern-signatures` is introduced to notify users about
-  future changes in parsing of view patterns in combination with pattern signatures
-
-- GHC now includes a new experimental flag, :ghc-flag:`-fobject-determinism`,
-  which enables deterministic object code generation, with a minor trade-off in
-  compilation speed (typically a 1-2% regression). Note, however, that this
-  flag doesn't yet ensure determinism across all compilation configurations; we
-  anticipate these cases will be addressed in future updates (:ghc-ticket:`12935`).
-
-GHCi
-~~~~
-
-- Fix a bug where GHCi would not start alongside a local file called ``Prelude.hs``
-  or ``Prelude.lhs`` (:ghc-ticket:`10920`).
-
-
-Runtime system
-~~~~~~~~~~~~~~
-
-- Reduce fragmentation incurred by the nonmoving GC's segment allocator. In one application this reduced resident set size by 26%. See :ghc-ticket:`24150`.
-
-- Memory return logic now uses live bytes rather than live blocks to measure the size of the heap.
-  This primarily affects the non-moving GC, which should now be more willing to return memory to the OS.
-  Users who have fine-tuned the :rts-flag:`-F ⟨factor⟩`, :rts-flag:`-Fd ⟨factor⟩`, or :rts-flag:`-O ⟨size⟩` flags,
-  and use the non-moving GC, should see if adjustments are needed in light of this change.
-
-- The new runtime flag :rts-flag:`--read-tix-file=\<yes|no\>` allows to modify whether a preexisting .tix file is read in at the beginning of a program run.
-  The default is currently ``--read-tix-file=yes`` but will change to ``--read-tix-file=no`` in a future version of GHC.
-  For this reason, a warning is emitted if a .tix file is read in implicitly. You can silence this warning by explicitly passing ``--read-tix-file=yes``.
-  Details can be found in `GHC proposal 612 <https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0612-fhpc-accumulation.md>`__.
-
-Cmm
-~~~
-
-- The ``bits128``, ``bits256`` and ``bits512`` types have been removed, in
-  favour of ``vec128``, ``vec256`` and ``vec512``.
-
-- The ``[*]`` jump annotation ("all registers live") has been removed, in favour
-  of more specific annotations ``GP_ARG_REGS`` (all general-purpose registers
-  live), ``SCALAR_ARG_REGS`` (all scalar registers live), and ``V16_ARG_REGS``,
-  ``V32_ARG_REGS`` and ``V64_ARG_REGS`` (meaning: all scalar registers plus
-  all vector registers up to the given vector width in bytes).
-
-``base`` library
-~~~~~~~~~~~~~~~~
-
-- Propagate HasCallStack from `errorCallWithCallStackException` to exception backtraces, fixing a bug in the implementation of `CLC proposal 164 <https://github.com/haskell/core-libraries-committee/issues/164>`.
-
-- Add exception type metadata to SomeException's displayException and
-  "Exception:" header to the default handler
-  (i.e. ``GHC.Conc.Sync.uncaughtExceptionHandler``):
-
-  https://github.com/haskell/core-libraries-committee/issues/231
-  https://github.com/haskell/core-libraries-committee/issues/261
-
-- The `deprecation process of GHC.Pack <https://gitlab.haskell.org/ghc/ghc/-/issues/21461>` has come its term. The module has now been removed from ``base``.
-
-``ghc-prim`` library
-~~~~~~~~~~~~~~~~~~~~
-
-- Usage of deprecated primops is now correctly reported (#19629).
-- New primops `isMutableByteArrayWeaklyPinned#` and `isByteArrayWeaklyPinned#`
-  to allow users to avoid copying large arrays safely when dealing with ffi.
-  See the users guide for more details on the different kinds of
-  pinned arrays in 9.12.
-
-  This need for this distinction originally surfaced in https://gitlab.haskell.org/ghc/ghc/-/issues/22255
-
-- New fused multiply-add instructions for vectors of floating-point values,
-  such as ``fmaddFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# -> FloatX4#`` and
-  ``fnmsubDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# -> DoubleX2#``.
-  These follow the same semantics as ``fmadd``/``fmsub``/``fnmadd``/``fnmsub``,
-  operating in parallel on vectors of floating-point values.
-
-- New vector shuffle instructions, such as ``shuffleFloatX4# :: FloatX4# -> FloatX4# -> (# Int#, Int#, Int#, Int# #) -> FloatX4#``.
-  These instructions take two input vectors and a collection of indices (which must
-  be compile-time literal integers), and constructs a result vector by extracting
-  out the values at those indices. For instance, ``shuffleFloatX4#`` on input vectors with
-  components ``(# 0.1#, 11.1#, 22.1#, 33.1# #)`` and ``(# 44.1#, 55.1#, 66.1#, 77.1# #)``,
-  and indices ``(# 4#, 3#, 6#, 1# #)``, will return a vector with components
-  ``(# 44.1#, 33.1#, 66.1#, 11.1# #)``.
-
-- New instructions for minimum/maximum, such as `minDouble#` and
-  `minFloatX4#`. These instructions compute the minimum/maximum of their inputs,
-  working component-wise for SIMD vectors. Supported argument types are vector
-  integer values (e.g. `Word16X8#`, `Int32X4#` etc) and both scalar and vector
-  floating point values (e.g. `Float#`, `DoubleX2#`, `FloatX8#` etc).
-
-``ghc`` library
-~~~~~~~~~~~~~~~
-
-``ghc-heap`` library
-~~~~~~~~~~~~~~~~~~~~
-
-``ghc-experimental`` library
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-``template-haskell`` library
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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
-    utils/haddock/haddock-api/haddock-api.cabal:         Dependency of ``haddock`` executable
-    utils/haddock/haddock-library/haddock-library.cabal: Dependency of ``haddock`` executable
-    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/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
-    libraries/os-string/os-string.cabal:                 Dependency of ``filepath`` library
-    libraries/file-io/file-io.cabal:                     Dependency of ``directory`` library


=====================================
docs/users_guide/9.14.1-notes.rst
=====================================
@@ -0,0 +1,90 @@
+.. _release-9-14-1:
+
+Version 9.14.1
+==============
+
+The significant changes to the various parts of the compiler are listed in the
+following sections. See the `migration guide
+<https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.14>`_ on the GHC Wiki
+for specific guidance on migrating programs to this release.
+
+Language
+~~~~~~~~
+
+Compiler
+~~~~~~~~
+
+GHCi
+~~~~
+
+Runtime system
+~~~~~~~~~~~~~~
+
+Cmm
+~~~
+
+``base`` library
+~~~~~~~~~~~~~~~~
+
+``ghc-prim`` library
+~~~~~~~~~~~~~~~~~~~~
+
+``ghc`` library
+~~~~~~~~~~~~~~~
+
+``ghc-heap`` library
+~~~~~~~~~~~~~~~~~~~~
+
+``ghc-experimental`` library
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``template-haskell`` library
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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
+    utils/haddock/haddock-api/haddock-api.cabal:         Dependency of ``haddock`` executable
+    utils/haddock/haddock-library/haddock-library.cabal: Dependency of ``haddock`` executable
+    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/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
+    libraries/os-string/os-string.cabal:                 Dependency of ``filepath`` library
+    libraries/file-io/file-io.cabal:                     Dependency of ``directory`` library


=====================================
libraries/base/base.cabal.in
=====================================
@@ -46,8 +46,10 @@ Library
         , Data.Bifoldable1
         , Data.Bifunctor
         , Data.Bitraversable
+        , Data.Bounded
         , Data.Char
         , Data.Complex
+        , Data.Enum
         , Data.Fixed
         , Data.Foldable1
         , Data.Functor.Classes
@@ -95,7 +97,6 @@ Library
         , Data.Dynamic
         , Data.Either
         , Data.Eq
-        , Data.Enum
         , Data.Foldable
         , Data.Function
         , Data.Functor


=====================================
libraries/base/changelog.md
=====================================
@@ -22,9 +22,11 @@
     and [CLC proposal #261](https://github.com/haskell/core-libraries-committee/issues/261))
   * The [deprecation process of GHC.Pack](https://gitlab.haskell.org/ghc/ghc/-/issues/21461) has come its term. The module has now been removed from `base`.
   * Propagate HasCallStack from `errorCallWithCallStackException` to exception backtraces, fixing a bug in the implementation of [CLC proposal #164](https://github.com/haskell/core-libraries-committee/issues/164).
+  * Introduce `Data.Bounded` module exporting the `Bounded` typeclass ([CLC proposal #208](https://github.com/haskell/core-libraries-committee/issues/208))
 
-## 4.20.0.0 May 2024
+## 4.20.0.0 *May 2024*
   * Shipped with GHC 9.10.1
+  * Introduce `Data.Enum` module exporting both `Enum` and `Bounded`. Note that the export of `Bounded` will be deprecated in a future release ([CLC proposal #208](https://github.com/haskell/core-libraries-committee/issues/208))
   * Deprecate `GHC.Pack` ([#21461](https://gitlab.haskell.org/ghc/ghc/-/issues/21461))
   * Export `foldl'` from `Prelude` ([CLC proposal #167](https://github.com/haskell/core-libraries-committee/issues/167))
   * The top-level handler for uncaught exceptions now displays the output of `displayException` rather than `show`  ([CLC proposal #198](https://github.com/haskell/core-libraries-committee/issues/198))


=====================================
libraries/ghc-internal/src/GHC/Internal/Data/Enum.hs → libraries/base/src/Data/Bounded.hs
=====================================
@@ -2,21 +2,23 @@
 
 -----------------------------------------------------------------------------
 -- |
--- Module      :  GHC.Internal.Data.Enum
+-- Module      :  Data.Enum
 -- Copyright   :  (c) The University of Glasgow, 1992-2002
 -- License     :  see libraries/base/LICENSE
 --
--- Maintainer  :  ghc-devs at haskell.org
+-- Maintainer  :  cvs-ghc at haskell.org
 -- Stability   :  stable
 -- Portability :  non-portable (GHC extensions)
 --
--- The 'Enum' and 'Bounded' classes.
+-- The 'Bounded' classes.
+--
+-- @since 4.21.0.0
 --
 -----------------------------------------------------------------------------
 
-module GHC.Internal.Data.Enum
+module Data.Bounded
     ( Bounded(..)
-    , Enum(..)
     ) where
 
-import GHC.Internal.Enum
+import GHC.Enum
+


=====================================
libraries/base/src/Data/Enum.hs
=====================================
@@ -1,7 +1,7 @@
-{-# LANGUAGE Safe #-}
+{-# LANGUAGE NoImplicitPrelude #-}
 
+-----------------------------------------------------------------------------
 -- |
---
 -- Module      :  Data.Enum
 -- Copyright   :  (c) The University of Glasgow, 1992-2002
 -- License     :  see libraries/base/LICENSE
@@ -10,12 +10,16 @@
 -- Stability   :  stable
 -- Portability :  non-portable (GHC extensions)
 --
--- The 'Enum' and 'Bounded' classes.
+-- The 'Enum' class.
+--
+-- @since 4.20.0.0
 --
+-----------------------------------------------------------------------------
 
 module Data.Enum
-    (Bounded(..),
-     Enum(..)
-     ) where
+    ( Enum(..)
+    , {-# DEPRECATED "Bounded should be imported from Data.Bounded" #-}
+      Bounded(..)
+    ) where
 
-import GHC.Internal.Data.Enum
\ No newline at end of file
+import GHC.Internal.Enum


=====================================
libraries/ghc-internal/ghc-internal.cabal.in
=====================================
@@ -117,7 +117,6 @@ Library
         GHC.Internal.Data.Dynamic
         GHC.Internal.Data.Either
         GHC.Internal.Data.Eq
-        GHC.Internal.Data.Enum
         GHC.Internal.Data.Foldable
         GHC.Internal.Data.Function
         GHC.Internal.Data.Functor


=====================================
libraries/ghc-internal/src/GHC/Internal/LanguageExtensions.hs
=====================================
@@ -18,7 +18,7 @@ import GHC.Generics (Generic)
 import GHC.Internal.Base
 import GHC.Internal.Show
 import GHC.Internal.Generics
-import GHC.Internal.Data.Enum
+import GHC.Internal.Enum
 #endif
 
 -- | The language extensions known to GHC.


=====================================
testsuite/tests/interface-stability/base-exports.stdout
=====================================
@@ -744,6 +744,14 @@ module Data.Bool where
   otherwise :: Bool
   (||) :: Bool -> Bool -> Bool
 
+module Data.Bounded where
+  -- Safety: Safe-Inferred
+  type Bounded :: * -> Constraint
+  class Bounded a where
+    minBound :: a
+    maxBound :: a
+    {-# MINIMAL minBound, maxBound #-}
+
 module Data.Char where
   -- Safety: Trustworthy
   type Char :: *
@@ -947,7 +955,7 @@ module Data.Either where
   rights :: forall a b. [Either a b] -> [b]
 
 module Data.Enum where
-  -- Safety: Safe
+  -- Safety: Safe-Inferred
   type Bounded :: * -> Constraint
   class Bounded a where
     minBound :: a


=====================================
utils/haddock/haddock-api/haddock-api.cabal
=====================================
@@ -79,7 +79,7 @@ library
 
   -- this package typically supports only single major versions
   build-depends: base             >= 4.16 && < 4.21
-               , ghc             ^>= 9.12
+               , ghc             ^>= 9.13
                , haddock-library ^>= 1.11
                , xhtml           ^>= 3000.2.2
                , parsec          ^>= 3.1.13.0


=====================================
utils/haddock/haddock-api/src/Haddock/InterfaceFile.hs
=====================================
@@ -139,7 +139,7 @@ binaryInterfaceMagic = 0xD0Cface
 -- (2) set `binaryInterfaceVersionCompatibility` to [binaryInterfaceVersion]
 --
 binaryInterfaceVersion :: Word16
-#if MIN_VERSION_ghc(9,9,0) && !MIN_VERSION_ghc(9,12,0)
+#if MIN_VERSION_ghc(9,11,0) && !MIN_VERSION_ghc(9,14,0)
 binaryInterfaceVersion = 44
 
 binaryInterfaceVersionCompatibility :: [Word16]



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/f09d35dd200e5517688aabde97db4196baa541e4...3547f0df8419d1ae5ab764b19182e545ee3f0227

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/f09d35dd200e5517688aabde97db4196baa541e4...3547f0df8419d1ae5ab764b19182e545ee3f0227
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20241001/9690ffb2/attachment-0001.html>


More information about the ghc-commits mailing list