diff options
author | Herbert Valerio Riedel <hvr@gnu.org> | 2014-08-31 11:40:50 +0200 |
---|---|---|
committer | Herbert Valerio Riedel <hvr@gnu.org> | 2014-08-31 12:25:16 +0200 |
commit | 393b820233caa00e428affc28e090b496d181664 (patch) | |
tree | 3cd003a4d12d3c0d6145a180b25078807970472f | |
parent | b760cc59b26a407dcd5715920c64f53513e65f14 (diff) | |
download | haskell-393b820233caa00e428affc28e090b496d181664.tar.gz |
Re-export Word from Prelude (re #9531)
The original proposal text can be found at
http://www.haskell.org/pipermail/libraries/2014-August/023491.html
The proposal passed with a clear majority, and was additionally
confirmed by the core libraries committee.
*Compatibility Note*
Only code that imports `Data.Word` for the sole purpose of using `Word`
*and* requires to be `-Werror`-clean (due to `-fwarn-unused-imports`)
is affected by this change.
In order to write warning-free forward/backward compatible against `base`,
a variant of the following CPP-based snippet can be used:
-- Starting with base>4.7.0 or GHC>7.8 Prelude re-exports 'Word'
-- The following is needed, if 'Word' is the *only* entity needed from Data.Word
#ifdef MIN_VERSION_base
# if !MIN_VERSION_base(4,7,1)
import Data.Word (Word)
# endif
-- no cabal_macros.h -- fallback to __GLASGOW_HASKELL__
#elif __GLASGOW_HASKELL__ < 709
import Data.Word (Word)
#endif
This also updates the haddock submodule in order to avoid a compile warning
-rw-r--r-- | compiler/coreSyn/MkCore.lhs | 4 | ||||
-rw-r--r-- | libraries/base/Prelude.hs | 2 | ||||
-rw-r--r-- | libraries/base/changelog.md | 2 | ||||
-rw-r--r-- | mk/validate-settings.mk | 3 | ||||
-rw-r--r-- | testsuite/tests/lib/integer/IntegerConversionRules.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/numeric/should_run/T7014.hs | 6 | ||||
-rw-r--r-- | testsuite/tests/typecheck/should_fail/T5095.stderr | 2 | ||||
m--------- | utils/haddock | 0 |
8 files changed, 19 insertions, 5 deletions
diff --git a/compiler/coreSyn/MkCore.lhs b/compiler/coreSyn/MkCore.lhs index 3ba8b1d6ee..08c3eedc53 100644 --- a/compiler/coreSyn/MkCore.lhs +++ b/compiler/coreSyn/MkCore.lhs @@ -92,7 +92,9 @@ import DynFlags import Data.Char ( ord ) import Data.List import Data.Ord -import Data.Word +#if __GLASGOW_HASKELL__ < 709 +import Data.Word ( Word ) +#endif infixl 4 `mkCoreApp`, `mkCoreApps` \end{code} diff --git a/libraries/base/Prelude.hs b/libraries/base/Prelude.hs index 9b1119e155..3a3cc4dcc2 100644 --- a/libraries/base/Prelude.hs +++ b/libraries/base/Prelude.hs @@ -48,7 +48,7 @@ module Prelude ( -- *** Numeric types Int, Integer, Float, Double, - Rational, + Rational, Word, -- *** Numeric type classes Num((+), (-), (*), negate, abs, signum, fromInteger), diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md index 28005f8986..b9768119be 100644 --- a/libraries/base/changelog.md +++ b/libraries/base/changelog.md @@ -20,6 +20,8 @@ * Make `abs` and `signum` handle (-0.0) correctly per IEEE-754. + * Re-export `Data.Word.Word` from `Prelude` + ## 4.7.0.1 *Jul 2014* * Bundled with GHC 7.8.3 diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk index 4ccef07f7f..bd3e3bc937 100644 --- a/mk/validate-settings.mk +++ b/mk/validate-settings.mk @@ -96,6 +96,9 @@ libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-incomplete-patterns # Temporarily turn off pointless-pragma warnings for containers libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-pointless-pragmas +# Temporarily turn off unused-imports warnings for containers +libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-unused-imports + # bytestring has identities at the moment libraries/bytestring_dist-install_EXTRA_HC_OPTS += -fno-warn-identities diff --git a/testsuite/tests/lib/integer/IntegerConversionRules.hs b/testsuite/tests/lib/integer/IntegerConversionRules.hs index cb5269f360..56949e7bf1 100644 --- a/testsuite/tests/lib/integer/IntegerConversionRules.hs +++ b/testsuite/tests/lib/integer/IntegerConversionRules.hs @@ -1,7 +1,10 @@ +{-# LANGUAGE CPP #-} module IntegerConversionRules where -import Data.Word +#if __GLASGOW_HASKELL__ < 709 +import Data.Word (Word) +#endif f1 :: Int -> Double f1 = fi diff --git a/testsuite/tests/numeric/should_run/T7014.hs b/testsuite/tests/numeric/should_run/T7014.hs index 82375389d7..222b33bd59 100644 --- a/testsuite/tests/numeric/should_run/T7014.hs +++ b/testsuite/tests/numeric/should_run/T7014.hs @@ -1,7 +1,11 @@ +{-# LANGUAGE CPP #-} + module Main where import Data.Bits -import Data.Word +#if __GLASGOW_HASKELL__ < 705 +import Data.Word (Word) +#endif test_and1 :: Word -> Word test_and1 x = x .&. 0 diff --git a/testsuite/tests/typecheck/should_fail/T5095.stderr b/testsuite/tests/typecheck/should_fail/T5095.stderr index e8d2b712cd..55342cdf33 100644 --- a/testsuite/tests/typecheck/should_fail/T5095.stderr +++ b/testsuite/tests/typecheck/should_fail/T5095.stderr @@ -53,7 +53,7 @@ T5095.hs:9:11: instance Eq Float -- Defined in ‘GHC.Classes’ instance Eq Int -- Defined in ‘GHC.Classes’ instance Eq Ordering -- Defined in ‘GHC.Classes’ - instance Eq GHC.Types.Word -- Defined in ‘GHC.Classes’ + instance Eq Word -- Defined in ‘GHC.Classes’ instance Eq a => Eq [a] -- Defined in ‘GHC.Classes’ instance Eq Integer -- Defined in ‘integer-gmp-0.5.1.0:GHC.Integer.Type’ diff --git a/utils/haddock b/utils/haddock -Subproject b2a807da55d197c648fd2df1f156f9862711d92 +Subproject eee52f697233f99e23c1d8183511229fb93e3f3 |