Brandon Chinn pushed to branch wip/T26961 at Glasgow Haskell Compiler / GHC

Commits:

5 changed files:

Changes:

  • libraries/base/changelog.md
    ... ... @@ -2,6 +2,8 @@
    2 2
     
    
    3 3
     ## 4.24.0.0 *TBA*
    
    4 4
       * Add `Bounded` instances for `Double`, `Float`, `CDouble` and `CFloat`. ([CLC proposal #402](https://github.com/haskell/core-libraries-committee/issues/402))
    
    5
    +  * Add new `Data.RealFloat` module re-exporting `RealFloat` from `GHC.Float` ([CLC proposal #394](https://github.com/haskell/core-libraries-committee/issues/394))
    
    6
    +  * Add `Infinity`, `NegInfinity`, and `NaN` pattern synonyms to `Data.RealFloat` ([CLC proposal #394](https://github.com/haskell/core-libraries-committee/issues/394))
    
    5 7
     
    
    6 8
     ## 4.23.0.0 *TBA*
    
    7 9
       * Add `System.IO.hGetNewlineMode`. ([CLC proposal #370](https://github.com/haskell/core-libraries-committee/issues/370))
    
    ... ... @@ -12,8 +14,6 @@
    12 14
       * Add `Data.List.NonEmpty.mapMaybe`. ([CLC proposal #337](https://github.com/haskell/core-libraries-committee/issues/337))
    
    13 15
       * Fix issues with toRational for types capable to represent infinite and not-a-number values ([CLC proposal #338](https://github.com/haskell/core-libraries-committee/issues/338))
    
    14 16
       * Ensure that `rationalToFloat` and `rationalToDouble` always inline in the end. ([CLC proposal #356](https://github.com/haskell/core-libraries-committee/issues/356))
    
    15
    -  * Add new `Data.RealFloat` module re-exporting `RealFloat` from `GHC.Float`
    
    16
    -  * Add `Infinity`, `NegInfinity`, and `NaN` pattern synonyms to `Data.RealFloat`
    
    17 17
       * Modify the implementation of `Data.List.sortOn` to use `(>)` instead of `compare`. ([CLC proposal #332](https://github.com/haskell/core-libraries-committee/issues/332))
    
    18 18
       * Add `thenA` and `thenM`. ([CLC proposal #351](https://github.com/haskell/core-libraries-committee/issues/351))
    
    19 19
       * Fix bug where `naturalAndNot` was incorrectly truncating results ([CLC proposal #350](github.com/haskell/core-libraries-committee/issues/350))
    

  • libraries/base/src/Data/RealFloat.hs
    ... ... @@ -22,10 +22,10 @@ module Data.RealFloat (
    22 22
       pattern NaN,
    
    23 23
     ) where
    
    24 24
     
    
    25
    -import Data.Bool
    
    26
    -import GHC.Internal.Data.Ord
    
    27
    -import GHC.Internal.Float
    
    28
    -import GHC.Internal.Real
    
    25
    +import Data.Bool (Bool (..), (&&))
    
    26
    +import GHC.Internal.Data.Ord ((<), (>))
    
    27
    +import GHC.Internal.Float (RealFloat (..))
    
    28
    +import GHC.Internal.Real ((/))
    
    29 29
     
    
    30 30
     pattern Infinity :: (RealFloat a) => a
    
    31 31
     pattern Infinity <- ((\x -> isInfinite x && x > 0) -> True) where Infinity = 1/0
    

  • testsuite/tests/interface-stability/base-exports.stdout
    ... ... @@ -11910,6 +11910,8 @@ instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC
    11910 11910
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Semigroup.Internal.Sum a) -- Defined in ‘GHC.Internal.Data.Semigroup.Internal’
    
    11911 11911
     instance forall (f :: * -> *) a. (GHC.Internal.Base.Applicative f, GHC.Internal.Enum.Bounded a) => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Monoid.Ap f a) -- Defined in ‘GHC.Internal.Data.Monoid’
    
    11912 11912
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
    
    11913
    +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
    
    11914
    +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
    
    11913 11915
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.First a) -- Defined in ‘Data.Semigroup’
    
    11914 11916
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.Last a) -- Defined in ‘Data.Semigroup’
    
    11915 11917
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.Max a) -- Defined in ‘Data.Semigroup’
    
    ... ... @@ -11945,8 +11947,6 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CULong -- Define
    11945 11947
     instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
    
    11946 11948
     instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
    
    11947 11949
     instance GHC.Internal.Enum.Bounded GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
    
    11948
    -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
    
    11949
    -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
    
    11950 11950
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
    
    11951 11951
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
    
    11952 11952
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
    

  • testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
    ... ... @@ -11937,6 +11937,8 @@ instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC
    11937 11937
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Semigroup.Internal.Sum a) -- Defined in ‘GHC.Internal.Data.Semigroup.Internal’
    
    11938 11938
     instance forall (f :: * -> *) a. (GHC.Internal.Base.Applicative f, GHC.Internal.Enum.Bounded a) => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Monoid.Ap f a) -- Defined in ‘GHC.Internal.Data.Monoid’
    
    11939 11939
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
    
    11940
    +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
    
    11941
    +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
    
    11940 11942
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.First a) -- Defined in ‘Data.Semigroup’
    
    11941 11943
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.Last a) -- Defined in ‘Data.Semigroup’
    
    11942 11944
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.Max a) -- Defined in ‘Data.Semigroup’
    
    ... ... @@ -11972,8 +11974,6 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CULong -- Define
    11972 11974
     instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
    
    11973 11975
     instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
    
    11974 11976
     instance GHC.Internal.Enum.Bounded GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
    
    11975
    -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
    
    11976
    -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
    
    11977 11977
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
    
    11978 11978
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
    
    11979 11979
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
    

  • testsuite/tests/interface-stability/base-exports.stdout-mingw32
    ... ... @@ -12168,6 +12168,8 @@ instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC
    12168 12168
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Semigroup.Internal.Sum a) -- Defined in ‘GHC.Internal.Data.Semigroup.Internal’
    
    12169 12169
     instance forall (f :: * -> *) a. (GHC.Internal.Base.Applicative f, GHC.Internal.Enum.Bounded a) => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Monoid.Ap f a) -- Defined in ‘GHC.Internal.Data.Monoid’
    
    12170 12170
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
    
    12171
    +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
    
    12172
    +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
    
    12171 12173
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.First a) -- Defined in ‘Data.Semigroup’
    
    12172 12174
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.Last a) -- Defined in ‘Data.Semigroup’
    
    12173 12175
     instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (Data.Semigroup.Max a) -- Defined in ‘Data.Semigroup’
    
    ... ... @@ -12203,8 +12205,6 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CULong -- Define
    12203 12205
     instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
    
    12204 12206
     instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
    
    12205 12207
     instance GHC.Internal.Enum.Bounded GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
    
    12206
    -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
    
    12207
    -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
    
    12208 12208
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
    
    12209 12209
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
    
    12210 12210
     instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’