From 0b6212866e8586b129fe0f7b8d0bed54e801edf3 Mon Sep 17 00:00:00 2001 From: Bodigrim Date: Fri, 18 Sep 2026 22:47:35 +0100 Subject: [PATCH] Clean up obsolete CPP for base<4.11 --- cbits/utils.c | 7 ------- src/Data/Text/Array.hs | 14 ++------------ src/Data/Text/Internal/Builder.hs | 3 --- src/Data/Text/Internal/Builder/Functions.hs | 12 +----------- src/Data/Text/Internal/Encoding.hs | 3 --- src/Data/Text/Internal/StrictBuilder.hs | 4 ---- src/Data/Text/Lazy.hs | 2 ++ src/Data/Text/Lazy/Builder/Int.hs | 8 ++------ src/Data/Text/Lazy/Builder/RealFloat.hs | 8 +++----- tests/Tests/Properties/Transcoding.hs | 5 +---- 10 files changed, 11 insertions(+), 55 deletions(-) diff --git a/cbits/utils.c b/cbits/utils.c index eb8b850c6..e487ed588 100644 --- a/cbits/utils.c +++ b/cbits/utils.c @@ -7,13 +7,6 @@ #include #include -/* Changed name to disambiguate from _hs_text_memcmp, - which could be present in system-wide headers from installed ghc package */ -int _hs_text_memcmp2(const void *arr1, size_t off1, const void *arr2, size_t off2, size_t len) -{ - return memcmp(arr1 + off1, arr2 + off2, len); -} - ssize_t _hs_text_memchr(const void *arr, size_t off, size_t len, uint8_t byte) { const void *ptr = memchr(arr + off, byte, len); diff --git a/src/Data/Text/Array.hs b/src/Data/Text/Array.hs index c9cce6b03..8cc61b5e7 100644 --- a/src/Data/Text/Array.hs +++ b/src/Data/Text/Array.hs @@ -1,13 +1,13 @@ -{-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE UnliftedFFITypes #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} +{- HLINT ignore "Redundant guard" -} + -- | -- Module : Data.Text.Array -- Copyright : (c) 2009, 2010, 2011 Bryan O'Sullivan @@ -61,9 +61,6 @@ module Data.Text.Array #if defined(ASSERTS) import GHC.Stack (HasCallStack) #endif -#if !MIN_VERSION_base(4,11,0) -import Foreign.C.Types (CInt(..)) -#endif import GHC.Exts hiding (toList) import GHC.ST (ST(..), runST) import GHC.Word (Word8(..)) @@ -350,12 +347,5 @@ compareInternal -> Int compareInternal (ByteArray src1#) (I# off1#) (ByteArray src2#) (I# off2#) (I# count#) = i where -#if MIN_VERSION_base(4,11,0) i = I# (compareByteArrays# src1# off1# src2# off2# count#) -#else - i = fromIntegral (memcmp src1# off1# src2# off2# count#) - -foreign import ccall unsafe "_hs_text_memcmp2" memcmp - :: ByteArray# -> Int# -> ByteArray# -> Int# -> Int# -> CInt -#endif {-# INLINE compareInternal #-} diff --git a/src/Data/Text/Internal/Builder.hs b/src/Data/Text/Internal/Builder.hs index f7cc5ea23..44ef36c34 100644 --- a/src/Data/Text/Internal/Builder.hs +++ b/src/Data/Text/Internal/Builder.hs @@ -60,9 +60,6 @@ module Data.Text.Internal.Builder import Control.Monad.ST (ST, runST) import Data.Monoid (Monoid(..)) -#if !MIN_VERSION_base(4,11,0) -import Data.Semigroup (Semigroup(..)) -#endif import Data.Text.Internal (Text(..), safe) import Data.Text.Internal.Lazy (smallChunkSize) import Data.Text.Unsafe (inlineInterleaveST) diff --git a/src/Data/Text/Internal/Builder/Functions.hs b/src/Data/Text/Internal/Builder/Functions.hs index 25f1db079..39c4d1764 100644 --- a/src/Data/Text/Internal/Builder/Functions.hs +++ b/src/Data/Text/Internal/Builder/Functions.hs @@ -21,20 +21,10 @@ module Data.Text.Internal.Builder.Functions , i2d ) where -import Data.Monoid (mappend) -import Data.Text.Lazy.Builder (Builder) import GHC.Base (chr#,ord#,(+#),Int(I#),Char(C#)) -import Prelude () +import Prelude ((<>)) -- | Unsafe conversion for decimal digits. {-# INLINE i2d #-} i2d :: Int -> Char i2d (I# i#) = C# (chr# (ord# '0'# +# i#)) - --- | The normal 'mappend' function with right associativity instead of --- left. -(<>) :: Builder -> Builder -> Builder -(<>) = mappend -{-# INLINE (<>) #-} - -infixr 4 <> diff --git a/src/Data/Text/Internal/Encoding.hs b/src/Data/Text/Internal/Encoding.hs index 1a3179e5d..0549ce404 100644 --- a/src/Data/Text/Internal/Encoding.hs +++ b/src/Data/Text/Internal/Encoding.hs @@ -42,9 +42,6 @@ import Control.Exception (assert) #endif import Data.Bits ((.&.), shiftL, shiftR) import Data.ByteString (ByteString) -#if !MIN_VERSION_base(4,11,0) -import Data.Semigroup (Semigroup(..)) -#endif import Data.Word (Word32, Word8) import Foreign.Storable (pokeElemOff) import Data.Text.Encoding.Error (OnDecodeError) diff --git a/src/Data/Text/Internal/StrictBuilder.hs b/src/Data/Text/Internal/StrictBuilder.hs index 71583fc95..e30536bcf 100644 --- a/src/Data/Text/Internal/StrictBuilder.hs +++ b/src/Data/Text/Internal/StrictBuilder.hs @@ -1,4 +1,3 @@ -{-# LANGUAGE CPP #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeSynonymInstances #-} @@ -32,9 +31,6 @@ import Control.Monad.ST.Unsafe (unsafeIOToST, unsafeSTToIO) import Data.Functor (void) import Data.Word (Word8) import Data.ByteString (ByteString) -#if !MIN_VERSION_base(4,11,0) -import Data.Semigroup (Semigroup(..)) -#endif import Data.Text.Internal (Text(..), empty, safe) import Data.Text.Internal.ByteStringCompat (withBS) import Data.Text.Internal.Encoding.Utf8 (utf8Length) diff --git a/src/Data/Text/Lazy.hs b/src/Data/Text/Lazy.hs index 403cb0d18..d590dc44c 100644 --- a/src/Data/Text/Lazy.hs +++ b/src/Data/Text/Lazy.hs @@ -261,8 +261,10 @@ import GHC.Stack (HasCallStack) import qualified Language.Haskell.TH.Lift as TH #else import qualified Language.Haskell.TH.Syntax as TH +#if __GLASGOW_HASKELL__ < 900 import qualified Language.Haskell.TH.Lib as TH #endif +#endif import Text.Printf (PrintfArg, formatArg, formatString) -- $fusion diff --git a/src/Data/Text/Lazy/Builder/Int.hs b/src/Data/Text/Lazy/Builder/Int.hs index f861d1e50..e3ccf026a 100644 --- a/src/Data/Text/Lazy/Builder/Int.hs +++ b/src/Data/Text/Lazy/Builder/Int.hs @@ -1,5 +1,4 @@ -{-# LANGUAGE BangPatterns, CPP, MagicHash, RankNTypes, ScopedTypeVariables, - UnboxedTuples #-} +{-# LANGUAGE BangPatterns, RankNTypes, ScopedTypeVariables #-} {-# LANGUAGE Trustworthy #-} -- Module: Data.Text.Lazy.Builder.Int @@ -20,16 +19,13 @@ module Data.Text.Lazy.Builder.Int import Data.Int (Int8, Int16, Int32, Int64) import Data.Monoid (mempty) import qualified Data.ByteString.Unsafe as B -import Data.Text.Internal.Builder.Functions ((<>), i2d) +import Data.Text.Internal.Builder.Functions (i2d) import Data.Text.Internal.Builder import Data.Text.Internal.Builder.Int.Digits (digits) import Data.Text.Array import Data.Word (Word, Word8, Word16, Word32, Word64) import GHC.Base (quotInt, remInt) import Control.Monad.ST -#if MIN_VERSION_base(4,11,0) -import Prelude hiding ((<>)) -#endif decimal :: Integral a => a -> Builder {-# RULES "decimal/Int8" decimal = boundedDecimal :: Int8 -> Builder #-} diff --git a/src/Data/Text/Lazy/Builder/RealFloat.hs b/src/Data/Text/Lazy/Builder/RealFloat.hs index bb8b2e3a2..d1882570b 100644 --- a/src/Data/Text/Lazy/Builder/RealFloat.hs +++ b/src/Data/Text/Lazy/Builder/RealFloat.hs @@ -1,8 +1,9 @@ -{-# LANGUAGE CPP, OverloadedStrings #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE Trustworthy #-} {-# OPTIONS_GHC -Wno-unrecognised-warning-flags #-} {-# OPTIONS_GHC -Wno-x-partial #-} +{- HLINT ignore "Use guards" -} -- | -- Module: Data.Text.Lazy.Builder.RealFloat @@ -20,14 +21,11 @@ module Data.Text.Lazy.Builder.RealFloat import Data.Array.Base (unsafeAt) import Data.Array.IArray -import Data.Text.Internal.Builder.Functions ((<>), i2d) +import Data.Text.Internal.Builder.Functions (i2d) import Data.Text.Lazy.Builder.Int (decimal) import Data.Text.Internal.Builder.RealFloat.Functions (roundTo) import Data.Text.Lazy.Builder import qualified Data.Text as T -#if MIN_VERSION_base(4,11,0) -import Prelude hiding ((<>)) -#endif -- | Control the rendering of floating point numbers. data FPFormat = Exponent diff --git a/tests/Tests/Properties/Transcoding.hs b/tests/Tests/Properties/Transcoding.hs index 38e799c71..25282c2d0 100644 --- a/tests/Tests/Properties/Transcoding.hs +++ b/tests/Tests/Properties/Transcoding.hs @@ -1,6 +1,6 @@ -- | Tests for encoding and decoding -{-# LANGUAGE CPP, OverloadedStrings, ScopedTypeVariables #-} +{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-} {-# OPTIONS_GHC -Wno-missing-signatures #-} {-# OPTIONS_GHC -Wno-unrecognised-warning-flags #-} {-# OPTIONS_GHC -Wno-x-partial #-} @@ -14,9 +14,6 @@ import Data.Bits ((.&.), shiftR) import Data.Char (chr, ord) import Data.Functor (void) import Data.Maybe (isNothing) -#if !MIN_VERSION_base(4,11,0) -import Data.Semigroup ((<>)) -#endif import Data.Word (Word8) import Test.QuickCheck hiding ((.&.)) import Test.Tasty (TestTree, testGroup)