-
Notifications
You must be signed in to change notification settings - Fork 18
/
CHANGELOG
218 lines (163 loc) · 8.77 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
protobluff-1.1.1 (2020-02-23)
* Fixed compilation error when including in C++ units
protobluff-1.1.0 (2019-07-11)
* Fixed generator compatibility issues with protobuf 3.6+
protobluff-1.0.3 (2018-08-02)
* Fixed buffer size not being cleared during destruction
protobluff-1.0.2 (2017-02-27)
* Removed -march=native as it makes cross-compiling impossible
protobluff-1.0.1 (2017-02-10)
* Fixed compile error when linking with CXX
* Fixed missing implicit default value for enumerations
protobluff-1.0.0 (2017-01-08)
protobluff reaches maturity.
Runtime:
* Fixed descriptor iterator prev/next return values
* Fixed warnings in descriptor tests
* Added constants for tags to generated source (_T suffixes)
* Added _V suffixes to generated source for enum values
* Added reference guide
* Enabled stripped build by default
* Removed pb_cursor_pos() (deprecated in 0.4.0)
* Removed raw pointer access (deprecated in 0.4.0)
Generator:
* Fixed generated source of nested enum value accessors
protobluff-0.5.0 (2016-01-11)
This release adds support for oneofs. protobluff now implements all features
of the Protocol Buffers specification version 2 (known as proto2), except
groups and generic services which are both deprecated. However, there may be
a gRPC-based service implementation in form of a plugin in the future.
This is the last release before bumping the version to 1.0.0. proto3 support
is basically possible (and not that complicated to implement), and may also
be something that is added in the future. The libtool version has been
updated to 4.0.0, due to the renaming of some descriptor-related functions.
Runtime:
* Fixed occurrence handling of non-repeated fields in message and cursor
* Added regression tests for occurrence handling
* Added support and tests for oneofs
* Moved descriptor iterators from util into core (won't affect core size)
* Changed field descriptor accessors for clarity ("nested", "enum", "oneof")
* Renamed enum descriptor value into enum value descriptor (consistency)
Generator:
* Added support for oneofs
* Removed banners for empty sections in generated source
* Removed from field constructors (may be introduced with "Any" in proto3)
* Refactored generator for better readability
protobluff-0.4.1 (2015-12-21)
Bugfix release for packed field support, no interface changes.
Runtime:
* Fixed alignment bug for packed fields after erasing from cursor
* Added tests for corner cases of packed fields
* Refactored part alignment internals
protobluff-0.4.0 (2015-12-16)
This release adds full support for packed fields (in lite and full runtime).
Furthermore, some functions have been deprecated to prepare for the 1.0.0
release, in particular raw pointer access, because unaligned access of floats
and doubles may cause undefined behavior on some architectures, and the
position of the cursor, as due to the possible erasure of fields during a
cursor's lifetime, the position may not be accurately determined.
Again, this release is mostly compatible with prior versions, but a few
breaking changes to the ABI could not be omitted. See the MIGRATION file for
further assistance. However, approaching the 1.0.0 release, the ABI can be
considered stable very soon. The libtool version has been updated to 3.0.0.
Runtime:
* Deprecated raw pointer access (will be removed in 1.0.0)
* Deprecated pb_cursor_pos() (will be removed in 1.0.0)
* Fixed invalid reads reported when compiling with -fsanitize
* Fixed incorrectly reported position in pb_cursor_seek()
* Fixed cursor state when erasing the last field in a message
* Fixed alignment issues and checks after erasing parts
* Added support for packed fields
* Added missing error string for PB_ERROR_EOM (could have caused segfault)
* Added tests for packed fields
* Changed cursor semantics: cursor will now skip unknown fields
* Changed cursor to directly initialize descriptor
* Changed encoder interface to account for packed fields
* Removed obsolete PB_ERROR_WIRETYPE and PB_ERROR_DESCRIPTOR error codes
* Removed pb_cursor_tag() from ABI in favor of pb_cursor_descriptor()
* Renamed C-linkage classifier to avoid name clashes
* Adapted message and field from cursor constructors
* Adapted examples to interface changes
Generator:
* Added support for packed fields
* Changed encoder generator to account for repeated fields
protobluff-0.3.0 (2015-11-30)
Complete overhaul of the internal structure: an encoder and decoder have
been implemented which now form the core of protobluff, together with the
buffer, descriptor and varint-packing logic. protobluff is turning into a
full-featured multi-purpose library: messages can be streamed using the
encoding and/or decoding functions, fields and messages can be read and
written without decoding/encoding the entire message using the message
and cursor functions (as before).
In addition protobluff has been split into a lite and full runtime. The lite
runtime only contains the core functionality and currently weighs 16kb
(stripped) on x86_64, the full runtime weighs 36kb (stripped). Though not
being the highest priority task on the list, compatibility with embedded
environments is planned, as the groundwork has now been done. Furthermore
the project structure has been revamped and is now completely modular, and
some examples on how to use protobluff for encoding/decoding were added.
Regardless of the addition of a whole bunch of new functions, this release is
mostly compatible with prior versions. Nevertheless, the libtool version has
been updated to 2.0.0 to reflect some breaking changes. See the MIGRATION
file for more information on how to migrate from older versions.
Runtime:
* Complete overhaul of runtime
* Fixed improper encoding and decoding of zig-zag encoded varints
* Added functions for type-specific packing and unpacking of varints
* Added function to efficiently grow buffers
* Added decoder and encoder to stream messages
* Added tests for all new structures
* Added validator as a replacement for pb_message_check()
* Added some usage examples for encoding and decoding messages
* Changed directory structure to reflect new modular design
* Changed macros to inline functions for better type checking
* Renamed binary into buffer and fleshed out the implementation
* Renamed binary stream into stream and refactored implementation
* Merged journaling with binary functionality into journal
* Merged descriptors into single translation unit
* Adapted existing code to work with new internal structure
Generator:
* Fixed accessor generation for nested enumerations
* Added compile-time field, message, enum and enum value deprecations
* Added generators for interfacing with the decoder and encoder
* Changed generated code from macros to inline functions
protobluff-0.2.2 (2015-09-05)
* Fixed circular message type references in generator
* Added chunk allocator implementation
* Added tests for chunk allocator
* Removed implicit default values for non-optional enums
protobluff-0.2.1 (2015-09-02)
* Fixed bug in lookup of enum descriptor value with number 0
* Fixed invalid reference in raw accessor generator
* Added pb_binary_append() to prepare streaming interface
* Added further tests for binaries
* Added convenience function pb_binary_dump() to dump binaries
protobluff-0.2.0 (2015-08-27)
This release adds full support for extensions and proper descriptors for
enums, and is fully compatible with code generated by 0.1.x. The only
breaking ABI change is the renaming of the function pb_message_validate()
into pb_message_check() which doesn't directly affect generated code.
The libtool version has been updated to 1.0.0 to account for the ABI changes.
Runtime:
* Added support for extensions
* Added enum type and descriptor
* Added tests for extensions
* Added tests for enums values
* Removed double underscore prefixes in function names
* Renamed pb_message_validate() into pb_message_check()
Generator:
* Complete overhaul of generator
* Fixed order of message descriptor fields in generated code
* Added generators for extensions
* Added generators for enums and enum values
* Added implicit default values for enumerations (first value in definition)
* Removed const qualifier on generated message descriptors for extensions
* Removed double underscore prefixes in generated code
* Limited nested accessors to nested message types in generated code
* Appended literal suffixes for default values of type integer
protobluff-0.1.1 (2015-07-29)
* Added support for field deprecations [deprecated = true]
* Set up continuous integration with travis-ci.org
* Set up coverage reports with coveralls.io
protobluff-0.1.0 (2015-07-20)
* Initial release