Bump version to 1.2.3.0 (and release notes)
[packages/text.git] / changelog.md
1 1.2.3.0
2
3 * Bug fix: the lazy `takeWhileEnd` function violated the
4   [lazy text invariant](https://github.com/bos/text/blob/1.2.3.0/Data/Text/Internal/Lazy.hs#L51).
5
6 * Spec compliance: `toCaseFold` now follows the Unicode 9.0 spec
7   (updated from 8.0)
8
9
10 1.2.2.2
11
12 * The `toTitle` function now correctly handles letters that
13   immediately follow punctuation. Before, `"there's"` would turn into
14   `"There'S"`. Now, it becomes `"There's"`.
15
16 * The implementation of unstreaming is faster, resulting in operations
17   such as `map` and `intersperse` speeding up by up to 30%, with
18   smaller code generated.
19
20 * The optimised length comparison function is now more likely to be
21   used after some rewrite rule tweaking.
22
23 * Bug fix: an off-by-one bug in `takeEnd` is fixed.
24
25 * Bug fix: a logic error in `takeWord16` is fixed.
26
27 1.2.2.1
28
29 * The switch to `integer-pure` in 1.2.2.0 was apparently mistaken.
30   The build flag has been renamed accordingly.  Your army of diligent
31   maintainers apologizes for the churn.
32
33 * Spec compliance: `toCaseFold` now follows the Unicode 8.0 spec
34   (updated from 7.0)
35
36 * An STG lint error has been fixed
37
38 1.2.2.0
39
40 * The `integer-simple` package, upon which this package optionally
41   depended, has been replaced with `integer-pure`.  The build flag has
42   been renamed accordingly.
43
44 * Bug fix: For the `Binary` instance, If UTF-8 decoding fails during a
45   `get`, the error is propagated via `fail` instead of an uncatchable
46   crash.
47
48 * New function: `takeWhileEnd`
49
50 * New instances for the `Text` types:
51     * if `base` >= 4.7: `PrintfArg`
52     * if `base` >= 4.9: `Semigroup`
53
54 1.2.1.3
55
56 * Bug fix: As it turns out, moving the literal rewrite rules to simplifier
57   phase 2 does not prevent competition with the `unpack` rule, which is
58   also active in this phase. Unfortunately this was hidden due to a silly
59   test environment mistake. Moving literal rules back to phase 1 finally
60   fixes GHC Trac #10528 correctly.
61
62 1.2.1.2
63
64 * Bug fix: Run literal rewrite rules in simplifier phase 2.
65   The behavior of the simplifier changed in GHC 7.10.2,
66   causing these rules to fail to fire, leading to poor code generation
67   and long compilation times. See
68   [GHC Trac #10528](https://ghc.haskell.org/trac/ghc/ticket/10528).
69
70 1.2.1.1
71
72 * Expose unpackCString#, which you should never use.
73
74 1.2.1.0
75
76 * Added Binary instances for both Text types. (If you have previously
77   been using the text-binary package to get a Binary instance, it is
78   now obsolete.)
79
80 1.2.0.6
81
82 * Fixed a space leak in UTF-8 decoding
83
84 1.2.0.5
85
86 * Feature parity: repeat, cycle, iterate are now implemented for lazy
87   Text, and the Data instance is more complete
88
89 * Build speed: an inliner space explosion has been fixed with toCaseFold
90
91 * Bug fix: encoding Int to a Builder would infinite-loop if the
92   integer-simple package was used
93
94 * Deprecation: OnEncodeError and EncodeError are deprecated, as they
95   are never used
96
97 * Internals: some types that are used internally in fusion-related
98   functions have moved around, been renamed, or been deleted (we don't
99   bump the major version if .Internal modules change)
100
101 * Spec compliance: toCaseFold now follows the Unicode 7.0 spec
102   (updated from 6.3)
103
104 1.2.0.4
105
106 * Fixed an incompatibility with base < 4.5
107
108 1.2.0.3
109
110 * Update formatRealFloat to correspond to the definition in versions
111   of base newer than 4.5 (https://github.com/bos/text/issues/105)
112
113 1.2.0.2
114
115 * Bumped lower bound on deepseq to 1.4 for compatibility with the
116   upcoming GHC 7.10
117
118 1.2.0.1
119
120 * Fixed a buffer overflow in rendering of large Integers
121   (https://github.com/bos/text/issues/99)
122
123 1.2.0.0
124
125 * Fixed an integer overflow in the replace function
126   (https://github.com/bos/text/issues/81)
127
128 * Fixed a hang in lazy decodeUtf8With
129   (https://github.com/bos/text/issues/87)
130
131 * Reduced codegen bloat caused by use of empty and single-character
132   literals
133
134 * Added an instance of IsList for GHC 7.8 and above
135
136 1.1.1.0
137
138 * The Data.Data instance now allows gunfold to work, via a virtual
139   pack constructor
140
141 * dropEnd, takeEnd: new functions
142
143 * Comparing the length of a Text against a number can now
144   short-circuit in more cases
145
146 1.1.0.1
147
148 * streamDecodeUtf8: fixed gh-70, did not return all unconsumed bytes
149   in single-byte chunks
150
151 1.1.0.0
152
153 * encodeUtf8: Performance is improved by up to 4x.
154
155 * encodeUtf8Builder, encodeUtf8BuilderEscaped: new functions,
156   available only if bytestring >= 0.10.4.0 is installed, that allow
157   very fast and flexible encoding of a Text value to a bytestring
158   Builder.
159
160   As an example of the performance gain to be had, the
161   encodeUtf8BuilderEscaped function helps to double the speed of JSON
162   encoding in the latest version of aeson! (Note: if all you need is a
163   plain ByteString, encodeUtf8 is still the faster way to go.)
164
165 * All of the internal module hierarchy is now publicly exposed.  If a
166   module is in the .Internal hierarchy, or is documented as internal,
167   use at your own risk - there are no API stability guarantees for
168   internal modules!
169
170 1.0.0.1
171
172 * decodeUtf8: Fixed a regression that caused us to incorrectly
173   identify truncated UTF-8 as valid (gh-61)
174
175 1.0.0.0
176
177 * Added support for Unicode 6.3.0 to case conversion functions
178
179 * New function toTitle converts words in a string to title case
180
181 * New functions peekCStringLen and withCStringLen simplify
182   interoperability with C functionns
183
184 * Added support for decoding UTF-8 in stream-friendly fashion
185
186 * Fixed a bug in mapAccumL
187
188 * Added trusted Haskell support
189
190 * Removed support for GHC 6.10 (released in 2008) and older