-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathChanges
291 lines (235 loc) · 11.1 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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
0.55 2021-09-13
-feature: raw_$field now acts as a setter when a new value is provided
0.54 2021-09-03
-feature: added fragment() as alias of frag() (thanks markov2)
-bugfix: fixes several utf8 encoding bugs in html_url, normalize (thanks markov2)
0.53 2021-08-31
-bugfix: html_url w/ empty relative url crashes w/ floating point error (thanks markov2)
-bugfix: html_url w/ fragment appends null char to uri (thanks markov2)
-bugfix: html_url segfaults when both rel and base start with "//" (thanks markov2)
-bugfix: normalized URIs with an authority section and an empty path must have a trailing slash (thanks markov2)
0.52 2021-08-20
-feature: html_url now implemented in XS
-feature: html_url has OO ctor equivalent, new_html_url
-feature: short-hand ctor equivalent to new_abs, abs_uri
0.51 2021-08-12
-feature: new constructor, new_abs($rel, $base)
-feature: abs() aliased to absolute()
-feature: rel() aliased to relative()
-feature: canonical() aliased to normalize() (this was true in prior versions, but undocumented)
-feature: normalize() now decodes unreserved chars and normalizes + to %20 (RFC 3986, 6.2.2.2)
-feature: TO_JSON() added as alias of to_string()
-miscellaneous minor efficiency/speed improvements
0.50 2021-08-03
-behavior: correct uri_split and uri to treat leading double-slash in input
string as the beginning of the authority section, as URI and URI::Split do,
instead of as the beginning of the path with ad leading empty segment
-feature: new subroutine html_url, which scrubs whitespace permitted by URLs
read from HTML documents (tab, newline, carriage return) and replaces
backslashes with forward slashes (also allowed in HTML, I'm afraid)
0.49 2019-08-02
-make 0.48_01 official
0.48_01 2019-07-31
-bugfix: calling query_keyset with a zero-length key could result in a
malformed query string
-bugfix: calling set_param with an array containing a zero-length string could
result in a malformed query string
0.48 2019-07-09
-make 0.47_01 official
0.47_01 2019-07-06
-bugfix: fix dynamically set $VERSION in URI::Fast::IRI
0.47 2019-07-05
-bugfix: escape_tree and unescape_tree die when called with non-reference
argument
-workaround: an older release had a versioned URI::Fast::IRI, requiring that it
remains versioned to keep the cpan indexer happy; this change works around
that by linking it to $URI::Fast::VERSION.
-bugfix: path([]) caused infinite loop, because why would av_top_index return 0
for an empty array anyway?
0.46 2019-01-03
-feature: new routines escape_tree() and unescape_tree() added
0.45 2018-12-10
-feature: documented and exposed lower level method split_path, added
split_path_compat which replicates the behavior of URI->path_segments as a
getter
0.44 2018-12-05
-bugfix: removed hard-coded references to class name which were preventing expected
behavior when subclassing URI::Fast
0.43 2018-11-27
-new feature: append() method serially constructs a URI from fragments of path,
query, and fragment (credit: merlyn)
0.42 2018-11-21
-bugfix: uri_split() forces stringification of input
-behavior: URI::Fast::Test routines now automatically stringify and parse their parameters
0.41 2018-08-15
-bugfix: small memory leak in to_string when there is no authority section present
-bugfix: to_string did not properly encode authority section in some cases
-new method: absolute($base)
-new method: normalize (like URI->canonical)
-new method: relative($base)
-optimization: aliases moved to XS
-optimization: overload of to_string moved to XS
-optimization: shorthand constructors (uri, iri) moved to XS
-optimization: simple unified accessors moved to XS
0.40 2018-08-08
-bugfix: gracefully handle incorrectly encoded query strings with unencoded '=' not following a key
-bugfix: param and query incorrectly unset single parameters when passed a falsey value (credit: vroom)
-documentation: clarify handling of '+' in decode
-new method: clone() as an alias for uri() (credit: merlyn)
0.39 2018-07-22
-behavior: no size limit on member string sizes
-bugfix: encode and decode no longer emit a warning when passed undef
-bugfix: get_auth was not decoding utf8 as asserted by the docs
-bugfix: get_query was not decoding utf8 as asserted by the docs
-bugfix: some setters emit a warning and do not clear member when passed undef
-bugfix: some setters were not properly handling magic
-new methods: raw_$field to get the raw, encoded field value
0.38 2018-07-09
-behavior: uri_t->path increased from 1024 bytes to 2048
-behavior: setters now croak when an input string is truncated to fit within the uri_t struct
-bugfix: authority section ignored when no scheme present during construction (credit: martin)
-optimization: fixed slowness in encode/decode
0.37 2018-07-05
-cpan indexer issue with URI::Fast::IRI addressed
0.36 2018-07-05
-behavior: query_hash now accepts hash ref as a parameter
-bugfix: correctly count and skip utf8 bytes when encoding an IRI
-bugfix: drop invalid whitespace skipping scheme (credit: aeruder)
-bugfix: drop logic incompatible with bsd make
-bugfix: encode non-utf8 input strings in new() and uri_split()
-bugfix: increase some member sizes to allow room for utf8 sequences
-bugfix: path correctly handles forward slashes in segments when set with array
-bugfix: set utf8 flag in compound iri accessors
-optimization: use memcpy instead of strncpy in some cases
-optimization: xs setters return void
0.35 2018-06-28
-behavior: all query scanning functions now treat '&' and ';' as valid separators
-behavior: explicitly specifying a separator in a query setter replaces existing separators in the query
-behavior: skip whitespace surrounding parsed uris
-bugfix: correctly parse ipv6 addresses
-bugfix: possible buffer overflow in uri_scan_auth
-bugfix: set_query, set_fragment, set_path unnecessarily encode permitted characters (credit: Dave Hubbard)
-bugfix: when stringifying, use ':' instead of '://' when no authority section present
-bugfix: when stringifying, path is always separated from authority by '/'
-documention: stringification with overloaded ""
-new method: compare($other) with overloaded eq
-new method: query_keyset({...})
-new method: url_encode/url_decode aliased to encode/decode (credit: bluefeet)
-new module: URI::Fast::Test to make unit testing with Test2 easier (credit: merlyn)
-optimization: faster and more consistent query scanning
-optimization: reduced memset usage (credit: aeruder)
0.34 2018-06-13
-bugfix: set_param could clobber existing query parameters (credit: aeruder)
0.33 2018-06-13
-new method add_param() appends query parameters without clobbering existing
query keys (credit: sara)
0.32 2018-06-12
-alias as_string -> to_string (credit: merlyn)
0.31 2018-06-12
-@EXPORT_OK now includes encode() and decode() (credit: merlyn)
0.30 2018-06-12
-incompatible change: dropped default scheme; when no scheme is present in
the source string, the stringified URI is excluded
-dropped prototype from URI::Fast::uri()
0.29 2018-06-07
-optimization: uri() now sets default scheme to "file" in XS
-docs updated to clarify the unclear (credit: val, merlyn)
-incompatible change: param() croaks when called in scalar context but
encounters multiple parameter values (credit: merlyn)
0.28 2018-05-30
-bugfix: segfault when c function uri_decode called with len=0 and an input
string with length > 0
0.27 2018-05-26
-declare POD encoding
0.26 2018-05-25
-switch from Dist::Zilla and Inline::C to vanilla XS and ExtUtils::MakeMaker to
simplify building binary distributions
-support for interpreter threads
-remove separate URI::Fast::IRI module as Dist::Zilla's POD generator is no
longer used
0.25 (failed)
-failed due to version conflict in URI::Fast::IRI, which has no version
0.24 2018-05-23
-bugfix: move URI::Fast::IRI to its own file to unconfuse Dist::Zilla when generating docs
0.23 2018-04-26
-support for IRIs via new constructor, iri()
-documented uri_split()
0.22 2018-03-27
-bugfix: add 'name' and 'version' parameters to `use Inline` statment and call
to `Inline->init` to avoid runtime lookup errors
0.21 2018-03-27
-compromise: attempt to decode utf8 from percent-encoded sequences, but
fail gracefully
0.20 2018-03-27
-don't croak on invalid utf8; uri may include arbitrary encoded bytes
0.19 2018-03-27
-added minimal validation of decoded utf8 (croaks on invalid sequences)
0.18 2018-03-21
-support for tied scalar inputs in XS code
0.17 2018-03-19
-bugfix: in which sysread gives up and puts the code in __DATA__ after all
0.16 2018-03-19
-bugfix: mixed separators in generated source file path on some mswin32 systems
0.15 2018-03-16
-bugfix: split_path generates incorrect segments on //paths
0.14 2018-03-16
-bugfix: dynamically find path to uri_fast.c
-bugfix: move uri_fast.c out of lib root
0.13 2018-03-16
-support for specifying delimiter when modifying query parameters
-bugfix: inlined function visibility lost in generated xs scope
0.12 2018-03-14
-bugfix: fix compiler error on MSWin32 (thanks appveyor!)
0.11 2018-03-13
-bugfix: length was being ignored in uri_scan_auth
0.10 2018-03-13
-exposed clear_* methods
-get_auth replaced by function joining sub-members
-more thorough testing of parsing edge cases
-more thorough testing of memory leaks
-bugfix: missing bounds checks in parser and setters
-bugfix: segfault when query key not followed by '='
-bugfix: non-digits no longer accepted when setting/parsing port number
-bugfix: increased member size for uri_t
-added MetaProvides::Package Dist::Zilla plugin for experimental Kwalitee
0.09 2018-03-08
-constructor is more efficient
-set_param does less copying, uses less memory
-Bugfix: set_param incorrctly placed (or did not place) ampersands in some edge cases
-Kwalitee fixes
-Fix missing entries in v0.08's change log (oops)
0.08 2018-03-07
-Fix test dependency version causing cpan tester failures
-Adopted URI::Encode::XS's encoding/decoding strategy
-Reduced heap usage
0.07 2018-03-06
-UTF-8 support
-New methods: query_keys, query_hash, encode, decode
-Many methods rewritten in C/XS to make up for the added cost of UTF-8 support
-Switch tests from using Test2::Bundle::Extended to Test2::V0
-Bugfix: fix some missing test dependencies on restricted smoker setups
-Bugfix: some unit tests were using the uri being tested as the test name,
triggering errors when the uri included a fragment (hash and newlines are
invalid in test names)
0.06 2018-02-27
-New ultra-fast parser and struct-based object written in C
0.05 2018-02-27
-Update required version of Test2::Suite to 0.000049 to include U in
Test2::Bundle::Extended
0.04 2018-02-26
-Faster uri_split implemented with Inline::C
-Faster auth parsing implemented with Inline::C
-Faster auth assembly implemented with Inline::C
-Faster query param access by doing a regex for each access rather than parsing
and storing (who knew?)
-This module no longer has common::sense
-Bugfix: auth params now correctly url-encoded/decoded
-See also that a SEE ALSO section was added to POD
0.03 2018-02-20
-10% speedup in stringification by not creating variables
-Bugfix: setting auth or query did not clear sub-attributes
-Bugfix: host was being appended regardless of presence
0.02 2018-02-20
-Bump minimum URI::Encode::XS version to 0.07 (thanks eserte!)
0.01 2018-02-19
-Initial release