-
Notifications
You must be signed in to change notification settings - Fork 117
/
ChangeLog
363 lines (216 loc) · 11.3 KB
/
ChangeLog
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
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
2024-11-11 1.7.5
* Rerelease 1.7.4 with fixed java package.
2024-11-11 1.7.4
* Fixed a potental memory leak when recursive unpacker raise.
2024-10-03 1.7.3
* Limit initial containers pre-allocation to `SHRT_MAX` (32k) entries.
2023-07-18 1.7.2:
* Fix a potential GC bug when packing data using recursive extensions and buffers containing over 512KkiB of data (See #341).
* Fix a regression where feeding an empty string to an Unpacker would be considered like the end of the buffer.
2023-05-19 1.7.1:
* Fix JRuby 9.4 compatibility.
* Fix compilation on older compilers (gcc 4.x).
* Fix an infinite recursion issue when registering a Symbol type with a `nil` packer.
2023-03-29 1.7.0:
* Fix a possible double-free issue when GC triggers inside `_msgpack_rmem_alloc2`.
* `Unpacker#feed` now always directly read in provided strings instead of copying content in its buffer.
* `Unpacker#feed` is now an alias of `Unpacker#feed_reference`.
* Implement `Factory::Pool#unpacker` and `Factory::Pool#packer` to allow for more precise serialization.
* Require Ruby 2.5+.
2023-03-03 1.6.1:
* Undefine `#clone` and `#dup` on `MessagePack::Buffer`, `MessagePack::Packer` and `MessagePack::Unpacker`.
These methods were never intended, and using them could cause leaks or crashes or worse.
* Fix a possible GC crash when GC trigger inside `MessagePack::Buffer.new` (#314).
2022-09-30 1.6.0:
* Fix a potential use-after-free bug in Buffer_free when accessing a packer or unpacker buffer.
* `old-style-definition` compilation warnings.
* Restore zero-copy buffer feed when provided a Ruby string. This was accidentally broken in 1.5.4.
* Provide implementations for `ObjectSpace.memsize`. Message pack objects now properly report their size to Ruby.
* Fix an endianess bug on Windows platform.
2022-08-23 1.5.6:
* No actual code change, just re-release the `java` version properly.
2022-08-22 1.5.5:
* Fix a segfault when GC triggers inside a recursive extension.
2022-07-25 1.5.4:
* Fix a segfault when deserializing empty symbol (`:""`).
* Improve compilation flags to not strip debug symbols.
2022-05-30 version 1.5.3:
* Fix deduplication of empty strings when using the `freeze: true` option.
* Use `rb_hash_new_capa` when available (Ruby 3.2) for improved performance when parsing large hashes.
2022-05-27 version 1.5.2:
* Fix bug about unpacking ext type objects with the recursive option
2022-04-07 version 1.5.1:
* Fix bug about packing/unpacking ext type objects with the recursive option
2022-04-06 version 1.5.0:
* Add recursive option on Factory#register_type to operate Packer/Unpacker manually
* Add oversized_integer_extension option on Factory#register_type to pack/unpack bigint using ext types
* Add Factory#pool method and Factory::Pool class to provide pooled Packer and Unpacker instances
2022-02-15 version 1.4.5:
* Fix to create UTF-8 Symbol keys when symbolize_keys: true
* Fix to assume Symbols as US-ASCII or UTF-8
* Optimize Packer/Unpacker initialization
* Optimize extension class lookup
* Rename Packer#clear as Packer#reset (#clear is still available as an alias)
2022-01-22 version 1.4.4:
* Specify the build option --platform=8 for older Java platforms
2022-01-20 version 1.4.3:
* Optimize serialization/deserialization of Symbols
* Support registering ext types for objects of subclasses of primitive types (like Hash)
* Add optimized_symbols_parsing option to Factory#register_type on MRI implementation
* Optimize to deduplicate Hash keys on JRuby
* Support JRuby 9.3 (and drop 9.1)
2021-02-01 version 1.4.2:
* Add the required Ruby version (>= 2.4) to avoid compilation errors on older Ruby runtimes
* Drop the support of old Ruby versions explicitly (1.8, 1.9, 2.0, 2.1, 2.2, 2.3)
2021-01-27 version 1.4.1:
* Bugfix about the wrong string encoding longer than 256 bytes (#200)
2021-01-27 version 1.4.0:
* Introduce the optimization to use frozen/deduped keys for map objects
* Stop releasing fat gem (pre-built binaries) for mswin32 arch environments
2020-02-05 version 1.3.3:
* Hotfix release for Windows environments: 1.3.2 missed including binaries
2020-02-04 version 1.3.2:
* Add Ruby 2.7.0 binary in gem releases for Windows
2019-08-05 version 1.3.1:
* Fix timestamp ext type bug about timestamps with seconds larger than 32bit int (after 2106-02-07 06:28:16 UTC)
2019-06-20 verison 1.3.0:
* Add timestamp ext type (id:-1) support
2019-04-19 version 1.2.10:
* Optimze MessagePack.unpack not to copy source string
2019-03-13 version 1.2.9:
* Hotfix release only for JRuby: 1.2.8-java was built incorrectly
2019-03-11 version 1.2.8:
* Fix a regression that MessagePack#unpack raises error if IO is assigned as the (only) argument
* Improve compatibility that MessagePack#pack returns nil if IO is assigned as 2nd argument
2019-03-01 version 1.2.7:
* Add Packer#write_bin and Packer#write_bin_header methods
2019-01-08 verison 1.2.6:
* Update Ruby version 2.6 dependency (especially for Windows environment)
* (version 1.2.4 and 1.2.5 were also releases for updated Ruby versions)
2018-03-02 version 1.2.3:
* Add Ruby 2.5.0 binary in gem releases for Windows
2018-01-11 version 1.2.2:
* Fix bug to occur SEGV occasionally (depends on GC timing) when exttype is used
* Fix bug to encode an ext type with wrong type id if superclass is also registered as ext type
2017-12-08 version 1.2.1:
* Hotfix release only for JRuby: 1.2.0-java was built in incorrect way
2017-12-07 version 1.2.0:
* Add MessagePack::Factory#dump and MessagePack::Factory#load as convenient methods
like MessagePack.dump and MessagePack.load
* Fix bug to accept MessagePack::Factory#register_type after #freeze
2017-02-28 version 1.1.0:
* Fix the extension type handling to accept modules in addition to classes
2017-01-24 version 1.0.3:
* Support Ruby 2.4
2016-10-17 version 1.0.2:
* Bump version up to release newer version to fix broken gem release for JRuby
2016-10-17 version 1.0.1:
* Fix a bug to crash at packer when ext type is registered for superclass of packed object
* Fix JRuby implementation about inconsistent API of Unpacker constructor
2016-07-08 version 1.0.0:
* Fix to be able to pack Symbol with ext types
* Fix for MRI 2.4 (Integer unification)
2016-05-10 version 0.7.6:
* Fix bug to raise IndexOutOfBoundsException for Bignum value with small int in JRuby
2016-04-06 version 0.7.5:
* Improved support for i386/armel/armhf environments
* Fix bug for negative ext type id and some architectures (arm*)
2016-01-08 version 0.7.4:
* Improved compatibility of Packer between CRuby and JRuby about argument IO-ish object values.
2016-01-07 version 0.7.3:
* Add Packer#write_float32 method to pack floating point numbers into FLOAT of messagepack.
2016-01-06 version 0.7.2:
* Improved compatibility of Unpacker between CRuby and JRuby to accept stream-like object
by checking respond_to(:read) in addition to class check
2015-11-20 version 0.7.1:
* Fixed bug to pack/unpack ext type objects larger than 256bytes incorrectly.
2015-10-24 version 0.7.0:
* Add extension types support.
* Fix to share almost all test cases between CRuby and JRuby implementations.
* Fixed JRuby implementation to raise UnknownExtTypeError for unregistered ext type ids
instead to generate MessagePack::ExtensionValue instances.
(Specify `allow_unknown_ext: true` as unpacker option for v0.6.x behavior.)
2015-07-22 version 0.6.2:
* Fix release workflow: Ruby 2.1 and 2.2 are supported for Windows (2.0 is omitted)
* Fix to encode symbols along its encoding
* Fix segmentation fault in minor case
2015-07-01 version 0.6.1:
* Added :compatibility_mode option to Packer#initialize. Default is false. If it
is set to true, str8 format and bin format family will not be used.
2015-05-26 version 0.6.0:
* Added support for Binary types
* Fixed to encode/decode between Binary types and ASCII-8BIT Ruby String objects
2015-05-21 version 0.5.12:
* Added support for JRuby 9K.
* Added a benchmarking suite.
* Fixed a bug in the handling of options given to MessagePack.unpack in JRuby.
2015-02-04 version 0.5.11:
* Fixed Encoding::CompatibilityError error when serializing a long string
longer than write_reference_threshold (5KB by default) and whose encoding
is not ASCII-8BIT.
* Fix read_(map|array)_header (@funny-falcon++).
* Internally, rename msgpack_unpacker_{init,reset,destroy} functions
so that we can load msgpack-c in the same process (@miihael++)
2015-01-09 version 0.5.10:
* Merged msgpack-jruby by @iconara. JRuby can run `require 'msgpack'` to use
msgpack-jruby.
2014-10-05 version 0.5.9:
* Fixed Unpacker#read_map_header and #read_array_header
* Added support for Symbol GC added since MRI 2.2.0
2013-12-14 version 0.5.8:
* Fixed compatibility with Ruby 2.1.0
* Added :symbolize_keys option to MessagePack.load and Unpacker#initialize
2013-10-12 version 0.5.7:
* Added deserialization support for the new MessagePack spec
2013-09-23 version 0.5.6:
* Fixed "can't modify frozen String" exception in Unpacker with ruby 2.1.0-dev
* Getting work with Ruby v2.0 on Windows (Thank you @thegreendroid)
* Fixed EOFError handling in Unpacker
2013-05-12 version 0.5.5:
* Fixed SEGV problem in to_msgpack
* Fixed a possible race condition in MessagePack.load when it loads data from IO
* mingw32 package includes binary for ruby-2.0.0
2013-03-15 version 0.5.4:
* Added missing MessagePack::Unpacker#reset method
2013-02-14 version 0.5.3:
* Fixed segfault problem on Buffer#clear (reuse rmem internal fragment optimization)
* Fixed segfault problem on Buffer (rmem free code)
2013-02-07 version 0.5.2:
* Fixed invalid pack/unpack on 32bit architecture such as Win32
* Disable rmem on Rubinius because rmem is not thread safe
2012-12-23 version 0.5.1:
* Fixed compile error with Rubinius 2.0.0-dev
* Optimized msgpack_packer_write_hash for Rubinius
2012-12-20 version 0.5.0:
* Rewrote all code and improved performance significantly
* Added MessagePack::Buffer class
* Added MessagePack::Packer class
* Added Packer#buffer and Unpacker#buffer accessors which return MessagePack::Buffer
* Added Packer#write_{array,map}_header and Unpacker#read_{array,map}_header methods
* Added Packer#write_nil and Unpacker#skip_nil methods
* Added Packer#write -> #pack alias and Unpacker#read method
* Added exception classes - UnpackError, MalformedFormatError, StackError and TypeError
* Added MessagePack.dup -> .pack and MessagePack.load -> .unpack aliases
* Added Packer#empty?, #size and #clear methods
* Added Packer#write_to(io) method to flush serialized data to IO efficiently
* Added Unpacker#skip method to skip an object efficiently
* Removed obsoleted Unpacker#fill, #execute, #execute_limit, #finished? and #data methods
* Removed obsoleted Unapcker#stream and #stream= methods. Use unpacker.buffer.io instead
2012-05-05 version 0.4.7:
* Fixed serialization of double values on ARM OABI architectures
* Fixed byteorder problem on big-endian platforms
* Don't use MRI internals in the Ruby extension for Rubinius
* Detect whether st.h is present and don't use RUBY_VM as the condition for
Rubinius
2011-08-08 version 0.4.6:
* Fixed compile error problem on Mac OS X Lion
2011-05-09 version 0.4.5:
* Improves compatibility with JRuby
2010-11-28 version 0.4.4:
* Adds Unpacker#feed_each method
* Improves compatibility with Rubinius
* Improves compatibility with ruby-1.8.5
* Encodings of String instances to UTF-8 on Ruby 1.9
2010-06-29 version 0.4.3:
* Adds MessagePack::VERSION constant
* Fixes SEGV problem caused by GC bug at MessagePack_Unpacker_mark