forked from meiersi/blaze-builder
-
Notifications
You must be signed in to change notification settings - Fork 12
/
CHANGES
158 lines (115 loc) · 5.52 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
* 0.4.2.1
- Bump cabal file to Cabal >= 1.10
* 0.4.2.0
- Make semigroup instances unconditional
- Support bytestring-0.11
- Support semigroups-0.19
* 0.4.1.0
- Gain compatibility with the Semigroup/Monoid proposal
- Add Word8 HTML escaping builders
- Speed up `fromHtmlEscapedText` and `fromHtmlEscapedLazyText`
* 0.4.0.2
- Fixed warnings on GHC 7.10, courtesy of Mikhail Glushenkov.
* 0.4.0.1
- Tightened the version constraints on the bytestring package for GHC 7.8
* 0.4.0.0
- This is now a compatibility shim for the new bytestring builder. Most
of the old internal modules are gone. See this blog post for more
information:
<http://blog.melding-monads.com/2015/02/12/announcing-blaze-builder-0-4/>
- The 'Blaze.ByteString.Builder.Html.Utf8.fromHtmlEscaped*' functions now
strip out any ASCII control characters present in their inputs. See
<https://github.com/lpsmith/blaze-builder/issues/1> for more
information.
* 0.3.3.0
- exposed the 'Buffer' constructor to enable keeping around a pool of
buffers.
* 0.3.2.0
- added 'writeToByteString' to construct a strict bytestring in a single
step. We can actually view 'Write's as strict-bytestring builders.
* 0.3.1.1
- Changed imports of Foreign.Unsafe to make it GHC 7.8 compatible
- -Wall clean on GHC 7.0 - 7.6
* 0.3.1.0
- Widened dependencies on text and bytestring
* 0.3.0.1
- Fix build warning in Blaze.ByteString.Builder.Word
(contributed by Greg Weber)
* 0.3.0.1
- Remove comparison to the 'text' library encoding functions of
'Blaze.Builder.Char.Utf8.fromText' and
'Blaze.Builder.Char.Utf8.fromLazyText'. Bryan O'Sullivan reported that on
his 64-bit system with GHC 7.0.3 the 'text' library is 5x faster than the
'blaze-builder' library.
* 0.3.0.0
- Renamings in internal modules: WriteIO -> Poke and associated functions.
* 0.2.1.4
- Fixed bug: appending to 'chunkedTransferEncoding somebuilder' also encoded
the appended builder, which is obviously wrong.
* 0.2.1.3
- Fixed bug: 'chunkedTransferTerminator' is now correctly set to "0\r\n\r\n".
* 0.2.1.2
- Add 'MonoPatBinds' language extension to all relevant files to solve the
issues caused by GHC bug http://hackage.haskell.org/trac/ghc/ticket/4498
* 0.2.1.1
- Reexport 'Write' datatype and 'fromWriteList', 'fromWriteSingleton',
'fromWrite' functions together with writes and builders for storables.
- Add 'MonoPatBinds' language extension to (hopefully) solve the issues
caused by GHC bug http://hackage.haskell.org/trac/ghc/ticket/4498
* 0.2.1.0
Incorporated several design changes:
- Writable buffer range is now represented in a packed form. This improves
speed slightly, as less currying is used.
- Writes are abstracted such that their internal representation can be
exchanged without breaking other library code.
- Writes are represented in a form that allows for efficient monoid
instances for branching code like UTF-8 encoding. For single character
encoding this results currently in a slight slowdown due to GHC not
recognizing the strictness of the returned value. This will be fixed in
the future.
- BuildSteps support returning a result in `Done`, which enables to
implement a `Put` monad using CPS.
- chunked list writes were removed, as they result in worse performance
when writing non-trivial lists. (cf. benchmarks)
- An internal buffering abstraction is introduced, which is used both
by the adaption of the `binary` package, as well as by the
`blaze-builder-enumeratee` package, to execute puts and builders.
It will be used later also by the execution functions of the
`blaze-builder` package.
Implemented new functionality
- `Blaze.ByteString.Builder.HTTP` provides a builder transformer for
doing in-buffer chunked HTTP encoding of an arbitary other builder.
- `Blaze.ByteString.Builder.Char8` provides functions to serialize the
lower 8-bits of characters similiar to what `Data.ByteString.Char8`
provides for bytestrings.
* 0.2.0.3
Loosen 'text' dependency to '>= 0.10 && < 0.12'
* 0.2.0.2
Fixed bug: use ' instead of ' for HTML escaping '
* 0.2.0.1
Added a missing benchmark file.
* blaze-builder-0.2.0.0
Heavily restructured 'blaze-builder' such that 'Blaze.ByteString.Builder' serves as
a drop-in replacement of 'binary:Data.Binary.Builder' which it improves upon
with respect to both speed as well as expressivity. See the documentation and
the benchmarks for details on improvements and new functionality.
Changed module structure:
Blaze.ByteString.Builder.Core -> Blaze.ByteString.Builder
Blaze.ByteString.Builder.Utf8 -> Blaze.ByteString.Builder.Char.Utf8
Blaze.ByteString.Builder.Html -> Blaze.ByteString.Builder.Html.Utf8
Changed function names:
writeByte -> writeWord8
fromByte -> fromWord8
fromWriteList -> fromWrite1List
Possibly performance sensitive implementation changes:
- 'fromByteString' and 'fromLazyByteString' check now if a direct insertion
of the bytestring(s) would be cheaper than copying it. See their
documentation on how to recover the old behaviour.
Deprecated functions:
'empty' : use 'mempty' instead
'singleton': use 'fromWord8' instead
'append' : use 'mappend' instead
* blaze-builder-0.1
This is the first version of 'blaze-builder'. It is explicitely targeted at
fast generation of UTF-8 encoded HTML documents in the 'blaze-html' and the
'hamlet' HTML templating libraries.