-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCHANGELOG
More file actions
285 lines (184 loc) · 7.25 KB
/
CHANGELOG
File metadata and controls
285 lines (184 loc) · 7.25 KB
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
0.8.0 (2013-12-13)
------------------
Major feature:
* Fixes and explicit testing of C89, C90, Visual C++
Minor features:
* Internal implementation of pyparsing (currently disabled)
Various minor fixes.
0.7.2 (2011-07-10)
------------------
Minor features:
* Allow more than one child in a sequenceof.
* Add const correctness to compiled C decoders.
* Add the start of an Microsoft Word specification.
Minor bugfixes:
* Add more detailed copyright and license information.
* Correctly escape the '&' character when printing xml.
* Fix build warnings when compiling with gcc 4.6.
0.7.1 (2011-04-06)
------------------
Bugfixes:
* Fix linking against the variable integer files from c++.
* Fix copyright & license information from the PRESENSE changes.
0.7.0 (2011-02-16)
------------------
Major feature:
* Encoding data structures to binary is now supported. It includes encoding
from python instances, xml, and C structures.
* When encoding, the values of hidden fields is correctly deduced from
visible uses of that field. For example, if a 'count' field is hidden but
used in a sequenceof, it will look at the length of the sequenceof when
encoding the field.
Features:
* Specifications can now be split into multiple files. Simply pass all of the
specification files to the decode / encode / compile programs.
* Allow the user to specify the main protocol entry, overriding the default.
Bugfixes:
* Too many to mention!
Backwards incompatible changes:
* The 'bdecode' command now takes the file to decode though the '-f'
option, not as the second argument.
* The 'bcompile' command now takes the output directory through the '-d'
option, not as the second argument.
0.6.2 (2010-02-02)
------------------
Bugfixes:
* Correctly decode sequence values in the instance decoder.
* Correctly resolve references found in conditional & constraint expressions.
* Fix exception when we reference an unknown entry in an expression.
* Report missing reference errors from the entry that defined the reference.
* Improve the error messages from data errors.
* Don't throw an exception when choosing and not enough data available.
* Decode sequence entries with both a min and a max.
* Correctly handle conditional references.
* Report errors from the entry opening line & column number, not the closing location.
* Data objects now supports non-seekable files such as stdin.
0.6.1 (2009-12-05)
------------------
Features:
* C representation for choice entries whose children don't contain data is now
an enum. Previously these entries generated a union without members, which is
invalid C/C++ (and caused memory errors with g++).
Bugfixes:
* Fix the 'bcompile' script (was crashing).
* Various C compilation fixes (tests now use gcc instead of g++).
* Fix the range of 64 bit values.
0.6.0 (2009-11-30)
------------------
Features:
* Decode floating point, signed integer, and 64 bit values.
* Range analysis on integer types to determine suitable C-types.
* Conditional entries.
* Constraints on sequence values.
Bugfixes:
* Whitespace in xml output
* Fix referenencing length & value of the same entry
Thanks to Fernando Martín for the example patch adding signed integer and
floating point support.
0.5.3 (2009-04-01)
------------------
Bugfixes:
* Fix issue that could cause the wrong (lower priority) option in a choice be
decoded.
* Fix compilation of some sequence integer entries to integers instead of
structs.
0.5.2 (2009-02-26)
------------------
Bugfixes:
* Correctly hide common entries that have been referenced with a hidden name.
* Fix out of data error reporting invalid ranges.
* Fix compilation errors when entries named after keywords (such as 'int').
* Allow references to be used as common entries.
0.5.1 (2009-02-18)
------------------
Bugfixes:
* Report the correct entry when there is a missing referenced entry.
* Fix Mako compile exception when running from an egg (ignore .pyc files).
0.5.0 (2009-02-14)
------------------
Features:
* Compilation speedups (the jpeg spec now only takes 5 seconds to compile
instead of 25).
* Python decoding speedups (decoding a small sample pdf document now takes 10
seconds instead of 300).
* Compiled choices are now represented by an 'enum' to identify the decoded
option, and a 'union' for the decoded value. This requires considerably
less memory allocations, and is easier for client applications to use.
* Expressions can now directly reference choice entries to reference the
decoded option.
* New 'tips' section in the documentation. Includes the ':' hidden entry
hint.
Bugfixes:
* Fix entries whose values are passed both in and out of an entry due to
expressions.
* Fix little endian fields with an expected value in compiled specifications.
0.4.1 (2008-11-30)
------------------
Features:
* Allow the project to be compiled to an egg (including templates).
* Allow the generated C to be used from C++ programs (eg: extern "c").
* Install 'bdecode' and 'bcompile' as part of the egg install.
Bugfixes:
* Generated C language type names are consistent across runs.
0.4.0 (2008-10-08)
------------------
Features:
* Allow common entries to be given another name.
* Improve readability of generated C code.
* Don't include unnecessary data structures in C headers.
* Change to LGPL license.
* Documentation updates.
Bugfixes:
* Various fixes in C decoders.
* Fix mp3 specification.
0.3.2 (2008-07-06)
------------------
Features:
* The c decoder memory is now freed
* Decoders are validated with valgrind
* A new 'release' script to simplify making new releases
Bugfixes:
* Handle sequence values in the C decoder
* Print sequence values in the c decoder output
* Xml output no longer includes whitespace around decoded values
* Allow entry names to use the '-' character
* Improve speed when choosing between embedded choices
* Bit buffers now allocate their own memory (instead of reusing the input)
0.3.1 (20 April 2008)
---------------------
Docs:
* Add external documentation (and tutorial), and update internal docs
Format specifications:
* Add a png specification
0.3.0 (3 April 2008)
--------------------
Core:
* Detect invalid integer encodings in a specification
* Nosetests can now find all unit tests
* Expressions are resolved after the spec as loaded (allows resolving into
common items not yet specified).
* Referenced items can no longer use 'end-sequenceof'
Format specifications:
* Add a basic asf specification (wma/wmv)
* Add boolean type (pdf)
* Limit possible comment characters (pdf)
* Add test data files for pdf, mp3, jpeg, and vfat
0.2.0 (17 September 2007)
-------------------------
Core:
* Add a 'file' tool that attempts to identify the format of a binary file.
* Support efficient decoding of files (the whole file is no longer read into
memory).
Format specifications:
* More complete pdf protocl specification.
* Fixes to 'mp3' and 'vfat' specifications.
0.1.1 (8 August 2007)
---------------------
Initial standalone release of bdec library. Allows complex specifications
to be written that can be automatically decoded. The included example
specifications include;
* pdf documents
* mp3 and jpg media files
* fat12/fat16/fat32 filesystems
Encoding is supported only for very basic specifications (no use of
expressions).