diff --git a/changelog.md b/changelog.md index 3ecaa8c4..8ab11a34 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,37 @@ ### 2.1.2 +* [Update case mappings for Unicode 16.0](https://github.com/haskell/text/pull/618) + * [Add type synonym for lazy builders. Deprecated `StrictBuilder` for `StrictTextBuilder`](https://github.com/haskell/text/pull/581) +* [Add `initsNE` and `tailsNE`](https://github.com/haskell/text/pull/558) + +* [Add `foldlM'`](https://github.com/haskell/text/pull/543) + +* [Add `Data.Text.Foreign.peekCString`](https://github.com/haskell/text/pull/599) + +* [Add `Data.Text.show` and `Data.Text.Lazy.show`](https://github.com/haskell/text/pull/608) + +* [Add pattern synonyms `Empty`, `(:<)`, and `(:>)`](https://github.com/haskell/text/pull/619) + +* [Improve precision of `Data.Text.Read.rational`](https://github.com/haskell/text/pull/565) + +* [`Data.Text.IO.Utf8`: use `B.putStrLn` instead of `B.putStr t >> B.putStr "\n"`](https://github.com/haskell/text/pull/579) + +* [`Data.Text.IO` and `Data.Text.Lazy.IO`: Make `putStrLn` more atomic with line or block buffering](https://github.com/haskell/text/pull/600) + +* [Integrate UTF-8 `hPutStr` to standard `hPutStr`](https://github.com/haskell/text/pull/589) + +* [Serialise `Text` without going through `ByteString`](https://github.com/haskell/text/pull/617) + +* [Make `splitAt` strict in its first argument, even if input is empty](https://github.com/haskell/text/pull/575) + +* [Improve lazy performance of `Data.Text.Lazy.inits`](https://github.com/haskell/text/pull/572) + +* [Implement `Data.Text.unpack` and `Data.Text.toTitle` directly, without streaming](https://github.com/haskell/text/pull/611) + +* [Make `fromString` `INLINEABLE` instead of `INLINE`](https://github.com/haskell/text/pull/571) to reduce the size of generated code. + ### 2.1.1 * Add pure Haskell implementations as an alternative to C-based ones, diff --git a/src/Data/Text.hs b/src/Data/Text.hs index 9b1cc407..09da02ac 100644 --- a/src/Data/Text.hs +++ b/src/Data/Text.hs @@ -1041,6 +1041,8 @@ foldl1' f t = S.foldl1' f (stream t) {-# INLINE foldl1' #-} -- | /O(n)/ A monadic version of 'foldl''. +-- +-- @since 2.1.2 foldlM' :: Monad m => (a -> Char -> m a) -> a -> Text -> m a foldlM' f z t = S.foldlM' f z (stream t) {-# INLINE foldlM' #-} @@ -2096,6 +2098,8 @@ overflowError :: HasCallStack => String -> a overflowError fun = P.error $ "Data.Text." ++ fun ++ ": size overflow" -- | Convert a value to 'Text'. +-- +-- @since 2.1.2 show :: Show a => a -> Text show = pack . P.show diff --git a/src/Data/Text/Internal/Lazy.hs b/src/Data/Text/Internal/Lazy.hs index fbf6380e..c66d13fe 100644 --- a/src/Data/Text/Internal/Lazy.hs +++ b/src/Data/Text/Internal/Lazy.hs @@ -51,6 +51,8 @@ import qualified Data.Text as T data Text = Empty -- ^ Empty text. + -- + -- @since 2.1.2 | Chunk {-# UNPACK #-} !T.Text Text -- ^ Chunks must be non-empty, this invariant is not checked. deriving (Typeable) diff --git a/src/Data/Text/Lazy.hs b/src/Data/Text/Lazy.hs index 59bbc9d4..4ea92ac7 100644 --- a/src/Data/Text/Lazy.hs +++ b/src/Data/Text/Lazy.hs @@ -853,6 +853,7 @@ foldl1' f t = S.foldl1' f (stream t) -- | /O(n)/ A monadic version of 'foldl''. -- +-- @since 2.1.2 foldlM' :: Monad m => (a -> Char -> m a) -> a -> Text -> m a foldlM' f z t = S.foldlM' f z (stream t) {-# INLINE foldlM' #-} @@ -1828,6 +1829,8 @@ zipWith f t1 t2 = unstream (S.zipWith g (stream t1) (stream t2)) {-# INLINE [0] zipWith #-} -- | Convert a value to lazy 'Text'. +-- +-- @since 2.1.2 show :: Show a => a -> Text show = pack . P.show diff --git a/text.cabal b/text.cabal index 4e1fac80..0c9adfe4 100644 --- a/text.cabal +++ b/text.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: text -version: 2.1.1 +version: 2.1.2 homepage: https://github.com/haskell/text bug-reports: https://github.com/haskell/text/issues