forked from msgpack/msgpack-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
341 lines (242 loc) · 15.9 KB
/
CHANGES.txt
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
Release 0.1 - 2011/1/4
Porting from Message Pack Java 0.3.
FEATURES
* MessagePackObject is implemented.
* Packer APIs (Packer class) are implemented.
* Buffered Unpacker APIs (Unpacker class) are implemented.
* Unbuffered Unpacker APIs (Unpacking class) are implemented.
Release 0.2 - 2012/6/19
FEATURES
* Geneneric Serializer is implemented. (See MessagePackSerializer.Create<T>().)
* Redesign basic APIs.
* Support Mono, Silverlight, WP 7.1 (experimental).
* RPC (See https://github.com/yfakariya/msgpack-rpc-cli/)
Release 0.3 - 2013/1/27
BREAKING CHANGES
* Unpacker.Feed is removed. Use Unpacker.Create(Stream) and feed data to the passing Stream instead of Unpacker.
* IUnpackable.UnpackFromMessage now takes Unpacker instead of MessagePackObject to be symmetric as IPackable and improve custom unpacking performance.
* Unpacker.Create() is removed because it is completely useless.
* Unpacker does not remember interruptted stream state now. So, unpacker throws exception when it reaches end of stream.
Data feeding should be handled on the underlying stream layer like NetworkStream does -- it is not unpacker layer's responsibility.
FEATURES
* Improve protobuf-net compatibility.
* Add non-generic overload for MessagePackSerializer.Create().
* Add direct read method for primitive types on Unpacker. It enable dramatic performance improvement on deserializer.
* Support WinRT (experimental, .NET Fx core only, that is, WinMD is not supported yet).
* Add SerialializerGenerator which provides capability to generate pre-built serializer assembly.
* Unpacker.ReadItem/UnpackSubtree makes easy to unpack collection as MessagePackObject.
IMPROVEMENTS
* Improve unpacking performance.
BUG FIXES
* Fix 'sparse' declaration (i.e. field ids are not continuous on the objects' MessagePackDataMember attribute) causes deserialization error.
* Fix synchronization related error.
* Serializers respects IPackable/IUnpackable.
Release 0.3.1 - 2013/5/4
FEATURES
* [issue1] Add byte-array based serialization APIs.
BUG FIXES
* [issue6] Fix deserializing from a map which contains unknown member causes MessageTypeException.
Release 0.3.2 - 2013/6/30
FEATURES
* Support safe deserialization for the stream which contains new types of MsgPack spec.
see https://github.com/msgpack/msgpack/blob/master/spec.md for details.
BUG FIXES
* Fix infinite loop for invalid stream which header is Raw and it does not have enough length contents.
Release 0.3.2.1 - 2013/8/17
BUG FIXES
* Fix Unpacker.ReadString/ReadBinary of subtree unpacker leads to subsequent unpacking failure when unpacked value is nil or empty.
Release 0.4 - 2013/10/6
BREAKING CHANGES
* Packer.PackRaw(IEnumerable<byte>) can emit compact binary when the IEnumerable<byte> object also implements ICollection<byte> or ICollection.
* There are little issues in corner cases.
* Unpacker.Data never returns null even if it is in before head of underlying stream.
* MessagePackSerializer<T>.UnpackFrom does not throw exception when unpacker is still in before head of the underlying stream. Note that generated serializer still require that the unpacker is in head of the underlying array or map.
FEATURES
* Support binary types, string8 types, and extension types of MsgPack spec.
see https://github.com/msgpack/msgpack/blob/master/spec.md for details.
* SerializerGenerator now enable to specify output directory.
* Specify default collection types for well-known abstract collection types (IList<T>, IDictionary<TKey,TValue>, etc.).
BUG FIXES
* Fix SerializerGenerator only support one serealizer per assembly.
* Fix UTC DateTime serialization is corrupt in Mono.
* Fix Boolean? unpacking is not implemented.
* Fix bugs of NilImplication.
NOTE
* Nullable<MessagePack> based unpacker API is deprecated because of their poor performance. You should use fast non-nullable APIs instead (properties/methods with 'Data' suffixes).
* This version is tested on .NET 4.5 and Mono 2.10.8.1.
Release 0.4.1 - 2013/12/07
BUG FIXES
* Fix Readme code error (issue #20.)
* Fix MessagePack.Create<T>() might fail due to type lock synchronization does not coordinate multiple threads (issue #19.)
* Fix deserializing as MessagePackObject fails when unpacking data is list or map (issue #13.)
Release 0.4.2 - 2014/3/17
BUG FIXES
* Add API to re-register serializer (issue #24). It allows you to override default(built-in) serializer as you like.
Release 0.4.3 - 2014/3/22
BUG FIXES
* Fix creating serializer for IEnumerable<T> (and not IList<T> nor IDictionary<TKey, TValue>) causes NullReferenceException.
* Fix built-in object serializer cannot deserialize array/map correctly.
* Fix PackerUnpackerExtensions.Pack<T>() ignore Default serialization context and uses brand-new instance every time.
Release 0.4.4 - 2014/4/13
BUG FIXES
* Fix creating serializer for IDictionary<TKey, TValue> causes NullReferenceException.
* Fix serializers' default constructor IL (it is not used in the library, but can be called via reflection).
Release 0.5 - 2014/7/21
FEATURES
* CodeDOM serializer generator, which generates source code for custom serializer. It enables debugger break points, insert your own codes, etc.
* Start Xamarin supporting with CodeDOM serializer generator and runtime code generation free Nullable/Enum serializers.
* Start Unity supporting with same mechanism as Xamarin support and mpu.exe helper tool.
* Support .NET 4.5 including immutable collections support.
* Support on-the-fly IEnumerable<T> (such as the result of Enumerable.Range()) packing. Note that unpacking is still unsupported.
* Support underlying integral based enum serialization.
* Add new PackerUnpackerExtensinos' extension methods for collections and dictionaries to improve overloading stability (predictability).
* System.Runtime.Serialization assembly is not required now (pull-request #29).
* Non public members annotated with MessagePackMember attribute or DataMemberAttribute are supported now (issue #33).
BUG FIXES
* PackerUnpackerExtensions.Pack(Object) takes long time. (#14)
* Fix Readme code error (issue #20. Ported from 0.4 branch.)
* Fix MessagePack.Create<T>() might fail due to type lock synchronization does not coordinate multiple threads (issue #19. Ported from 0.4 branch.)
* Fix deserializing as MessagePackObject fails when unpacking data is list or map (issue #13. Ported from 0.4 branch.)
* Readonly members now silently ignored except they are annotated with MessagePackMember attribute or DataMemberAttribute (pull-request #30, issue#28).
NOTE
* This release unifies .NET build and Mono build for main source codes (testing codes have not been unified yet.)
* This release contains reimplementation of serializer generation stack. It might change implementation detail dependant behavior (it usually potential issue).
Release 0.5.1 - 2014/8/9
FEATURES
* Reflection serializer. It enables on-the-fly serializer generation in Xamarin and Unity3D.
BUG FIXES
* Fix concurrency bug in WinRT.
* Fix built-in NamedValueCollection serializer generates invalid stream when the values of a key are empty.
NOTE
* This release changes drop for Unity3D from source assets to dll assets (source assets are still available).
Release 0.5.2 - 2014/9/6
BREAKING CHANGES
* MessagePackObjectEqualityComparer does not inherit EqualityComparer<T> now to avoid ExecutionEngineException on iOS.
FEATURES
* Support Windows Phone 8.1 (Both of WinRT & Silverlight) issue #36
* Add MessagePackSerializer.Get() for usability.
BUG FIXES
* Fix FILETIME is not available in WinRT
* Fix does not work in Unity3D. issue #37
Relase 0.5.3 - 2014/09/15
BREAKING CHANGES
* MessagePackObject from byte[] now always act as binary, not string. It affects only low level API and unpacked from bin8, bin16, bin32 types. Issue #39
FEATURES
* Using new MessagePackMemberAttribute.Name property, you can customize map keys of serialized objects when you use SerializationMethod.Map. Related to issue #38
Release 0.5.4 - 2014/09/22
FEATURES
* Add mpu --internal option for source code form assets in Unity3D.
BUG FIXES
* An -o option of mpu.exe -s does not work.
* Same (.NET4.5 + WinRT8 + WP8.1) configured portable project cannot refer MsgPack NuGet package.
MISCS
* Unity drop is now only included in zip file at github release page.
Release 0.5.5 - 2014/10/12
BUG FIXES
* The serializer returned with `MessagePackSerializer.Create<MessagePackObjectDictionary>()` does not deserialize nested element correctly. Issue #42
* MessagePackConvert.FromDateTime[Offset] might emit wrong value due to rounding error. Issue #44
IMPROVEMENTS
* Portable library drop for Universal App does not refer `libc` now. Issue #41
Release 0.5.6 - 2014/11/30
BUG FIXES
* The type which has indexer(s) and does not implement IDictionary nor IDictionary<TKey,TValue> is failed to create serializer. Issue #49
* Fix Unpacking a map with extra fields. Issue #50
Release 0.5.7 - 2014/12/23
BUG FIXES
* Fix serializer uses unnecessary reflection to get collection typed property.
* Fix generated serializers in source code style may have extra fields when multiple serializers are generated at a time.
* Mpu.exe's --refernce option distinction now respects platform rules and uses absolute paths instead of relative paths.
* Fix lambda expressions in source code causes failure of mpu.exe in Mono.
IMPROVEMENTS
* Add mpu.exe -r option which is shorthand of --reference.
* Add default and implicit --reference=./MsgPack.dll option in mpu.exe
Release 0.5.8 - 2015/1/18
BUG FIXES
* Fix Unpacker fails to unpack data when the stream returns data one by one. Issue #59
* Fix Unpacker cannot read empty bytes from System.Net API. Issue #60
Relase 0.5.9 - 2015/2/01
BUG FIXES
* Fix NullReferenceException is thrown for annotated non-public members serialization/deserialization in WinRT.
* Fix collection typed property which has non-public setter are not handled correctly. Issue #62.
* Fix ArgumentOutOfRangeException occurs when serializing members count is greater than 127. Issue #63.
Release 0.5.10 - 2015/2/10
CHANGES
* WinRT and Windows Phone (not Silverlight) builds now do not have AllowPartiallyTrustedCallersAttribute because it causes MethodAccessException on Windows Phone. This should not be breaking change effectively because apps in app container themselves should be SecurityCritical. Issue #64.
BUG FIXES
* Avoid memcmp usage for Windows Phone App Certification. Issue #65.
Release 0.5.11 - 2015/3/1
NEW FEATURE
* `MessagePackIgnoreAttribute` to exclude properties. Issue #55
Release 0.6.0 Alpha1 - 2015/3/2
BREAKING CHANGES
* Non-public types such as internal/Assembly types are not supported even if WinRT or Reflection serializer had worked for them because it had been just bug and non-public types should not be serialized.
Note that .NET default serializers and pre-generated serializers for Xamarin are not affected because they had failed to generate serializers for non-public types.
BUG FIXES
* Non-public types causes `TypeLoadException` in .NET and pre-generated assembly, causes compilation error in pre-generated sources, results undefined behavior on other platforms.
Non-public types are now rejected with `SerializationException`. This fix leads (probably small) breaking changes.
NEW FEATURE
* Deserializer now uses 'best match' constructor when all members are read-only. Issue #52.
* `MessagePackSerializer.UnpackMessagePackObject` API. This is convinient shortcut to deserialize stream as `MessagePackObject` tree.
Release 0.6.0 Beta1 - 2015/04/27
NEW FEATURE
* Add Type Embedding. Issue #47.
BUG FIXES
* MessagePackSerializer.Create now always returns new instance.
* Fix build problem related to interface generic parameter variance.
Release 0.6.0 Beta2 - 2015/05/24
NEW FEATURE
* New utility method of SerializationContext to switch back the behavior to previous version's one.
* Add corlib only build (MsgPack.Unity3D.Micro). This build only depends mscorlib. This feature is experimental. Related to Issue #70.
IMPROVEMENTS
* Add many workarounds for AOT issues of Mono on iOS (in particular, Unity).
* System.DateTime, System.DateTimeOffset, System.Runtime.InteropServices.ComTypes.FILETIME are now serialized native representation by default, it keeps 100-nanosecond resolution, DateTimeKind, and Offset.
You can revert the behavior to the previous Unix Epoc via SerializationContext.DefaultDateTimeConversion or [MessagePackDateTimeMember] custom attribute. Issue #74
* System.DBNull become serializable now. Issue #72.
BUG FIXES
* Fix System.Object instance causes StackOverflowException. Issue #73
Release 0.6.0 Beta3 - 2015/06/14
BUG FIXES
* Remove FILETIME dependency to avoid build error in Xamarin/Unity. Issue #87
Release 0.6.0 Beta4 - 2015/07/05
BREAKING CHANGES / IMPROVEMENTS
* Unity3D DLL now only depends on mscorlib.dll. This breaks compabitlity because the library cannot recognize Stack<T>, Queue<T>, NameValueCollection, and System.Uri. If you want to these types support, use Unity3D.Full drop instead.
IMPROVEMENTS
* Non-SZ arrays (multidimensional arrays and vector with non-zero based) are supproted. Issue #81.
BUG FIXES
* Fix Unity source code to avoid nullable equality operator. Issue #88
* Fix MessagePackObject deserializer cannot handle empty collection correctly. Issue #92.
* Fix disposing "subtree" Unpacker twice causes Exception.
Release 0.6.0 Beta5 - 2015/07/20
BREAKING CHANGES / IMPROVEMENTS
* Internal type-info encoding has changed, so encoded type-info is NOT compatible with 0.6.0 beta1-beta4.
IMPROVEMENTS
* Add built-in support for IReadOnlyCollection<T>, IReadOnlyList<T>, IReadOnlyDictionary<TKey, TValue>, based upon issue #91 and PR #93. Thank you @drewnoakes!
* Improve exception message for known type mapping error. Issue #95,
BUG FIXES
* Non-SZ arrays are not deserialized correctly in WP/Silverlight.
Release 0.6.0 - 2015/08/09
IMPROVEMENTS
* ImmutableArray now supported.
* SerializerGenerator now support automatic dependent serializer(s) generation.
* Add SerializerContext.ResolveSerializer event to make pre-built serializer registration more robust. Issue #103.
BUG FIXES
* Fix Unpacker does not handle bin types and str8 type in skipping. PR #98, Thank you @webcoyote!
* Fix Unpacker does not handle ext types in skipping.
* Fix SerializerGenerator and mpu.exe do not handle EnumSerializationMethod. Issue #102.
* Fix SerializerGenerator and mpu.exe do not exclude types which are handled with built-in serializers. Issue #104.
Release 0.6.1 - 2015/08/16
IMPROVEMENTS
* Recursive generation now supports generic arguments and array element types. Issue #106.
* New SerializerGenerator.GenerateSerializerCodeAssembly and GenerateSerializerSourceCodes, which return structured information including target types and serializer type names. It should improve pre-generation experience. Issue #107.
BUG FIXES
* Fix SerializerGenerator does not filter out built-in types when they are appeared in members instead of API arguments. Issue #105.
* Fix type embedding fails if the type name starts with its assembly simple name. Issue #108.
Release 0.6.1.1 - 2015/08/16
This release is only zip release for Unity because other dists are not affected at all.
BUG FIXES
* Fix IL2CPP crash. Issue #101.
Release 0.6.2 - 2015/08/30
BUG FIXES
* Fix built-in serializer for System.Object does not honor current context. Issue #111.
IMPROVEMENTS
* Add built-in System.Globalization.CultureInfo serializer. Issue #112.