-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathCHANGELOG
230 lines (184 loc) · 8.21 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
1.2.5
-----------------------------------
- ci: dropping travis in favor or github-workflow
- python/gcc/clang versions updated
1.2.4
-----------------------------------
- prophyc: python codecs use relative imports proper for:
* in-package and out-of-package imports
* py2 and py3 language versions
1.2.3
-----------------------------------
- prophy: adding class comparison handlers for struct, union and enum
- prophyc: bitwise or in isar frontend bugfix
- prophyc: prophy backend docstring bugfix
1.2.2
-----------------------------------
- prophyc.generators.python: adding utf-8 encoding shebang
- prophyc.generators: prophy & python: reinforced unicode support for python2
1.2.1
-----------------------------------
- adopting to newer renew version: 0.4.1
- fixing ISAR unicode bug introduced in 1.2.0
# warning for python2: this version had troubles generating python codec with unicode characters
# please use 1.2.2 instead, works well with python3.x however
1.2.0
-----------------------------------
- prophyc.generators.prophy: introduced prophy language generator
- prophyc.generators.python:
* generated source code is pep8-compliant (at least much more than it was before)
* generated imports do not use asterisk, implicitly lists imported names
* generated file contains annotation about fact of being generated by prophy
- prophyc.parsers.isar collects docstrings
- prophyc.model:
* refactor performed, shaped nodes' inheritance tree
* each node gets reproducible repr() (added renew package as dependency)
* each node gets str implementation that returns its prophy language representation
* each node may have a doc-string
* node name and docstring can be defined in unicode (special care in python2)
* Constant can be defined with numbers in hexadecimal literal format
# warning for python2: this version had troubles parsing XML's and generating python and prophy code
# with unicode characters, please use 1.2.2 instead, works well with python3.x however
1.1.2
-----------------------------------
- prophyc: python3 bug in C++ frontend fixed (libclang invocation contained unicode strings)
1.1.1
-----------------------------------
- prophy: decoding exceptions contain information about decoded type
- prophyc: sack parser processes isar-using hpp files with array members
- prophyc: bugfix - option parsing doesn't throws exception out of interpreter
1.1.0
-----------------------------------
- prophyc: can be invoked directly from python code
- prophyc: sack parser can implicity include definitionos from isar files
- prophyc: enums also included in model even if not used in structures
- prophy: forgiving misspelling in sizer name of ext sized array
1.0.2
-----------------------------------
- prophyc: sack parser properly handles typedef in namespace
- prophyc: sack parser prefers clangs up to 3.5, they don't ship with builtin headers (e.g. "stddef.h")
1.0.1
-----------------------------------
- prophy: copy_from works for optional fields
- prophyc: sack parser adapted to clang 391
1.0.0
-----------------------------------
- prophyc: clang python plugin vendored, libclang.so found more easily
- prophyc: isar parser: negative enum values treated as large unsigned numbers, like in sack
- prophyc: isar parser: optional struct member is optional according to attribute value, not presence
- prophy_cpp: packed attribute used in --cpp_out structs declarations
- prophy: python3 prints structs with bytes fields correctly
- housekeeping:
- travis and tox improved
- coverage added
- flake8-compliant
0.8
-----------------------------------
- prophyc: raw cpp codec:
- ensures naturally aligned message layouts by
filling fields and compiler attribute setting alignment
- fails generation if AST is not complete
(missing size-related information)
- may fail to compile on non-gcc and non-cgt compliant compiler
(__attribute__((aligned(N))) used)
- prophyc: compiler pass evaluating alignments/sizes/paddings fires warnings
- prophyc: patch static may accept identifiers
0.7.8
-----------------------------------
- prophyc: cpp and cpp_full generator puts 'u' suffix in
positive integer literals. It's meant not to increase
deduced int type size over 'int' unnecessarily.
0.7.7
-----------------------------------
- prophyc: quiet option to silence warnings
- prophyc: patch extension by struct and rename
- prophy python library: struct and union introspection
0.7.6
-----------------------------------
- prophyc: ply parser tables concurrent filesystem access bug solved
0.7.5
-----------------------------------
- prophy & prophyc: support for extsized arrays
0.7.4
-----------------------------------
- prophyc: isar parser supports two-dimensional array
0.7.3
-----------------------------------
- prophyc: sack parser properly parses files with .h and .c extensions
0.7.2
-----------------------------------
- prophyc: isar parser treats non-trivial include paths correctly
0.7.1
-----------------------------------
- prophyc: python output imports by leaf filename without parent directories
0.7
-----------------------------------
- prophy & prophyc: python 3.4 support added
0.6
-----------------------------------
- prophyc: isar mode includes
- prophyc: sack mode warnings and errors
- prophyc: prophylang mode includes
- prophyc: prophylang constant, enumerator and struct array size expressions
0.5.1
-----------------------------------
- prophyc cpp output: generated headers contain declarations of swap template functions
- prophy cpp library: single swap function template and implementation details hidden
0.5
-----------------------------------
- new cpp full output, exposes structs and unions as classes with value semantics,
provides means to encode/decode them in different endiannesses and print them
- prophy python library: union/optional alignment/padding bug fixed
- prophy python library: padding is always encoded after struct, even if it ends with an array
- prophy python library: empty line in stringified struct with empty optional field bug fixed
- documentation: encoding padding explained in-depth
0.4.2
-----------------------------------
- added documentation
- python prophy: encoding and decoding optimized
0.4.1
-----------------------------------
- installs dependencies automatically,
dependency on plyplus removed, plain ply used instead
- prophyc: parsing error checking and reporting improved
- prophyc: version showing
- prophy: fixed array decoding error with array size bigger than 255
- prophy: version attribute
0.4
-----------------------------------
- prophyc: dedicated input language based on xdr and thrift
0.3
-----------------------------------
- prophyc: cpp output added
- prophyc: bitMaskOr and shiftLeft operators are translated by isar parser
- cpp prophy: new output consists of structs defining messages and endianness swap algorithms
- python prophy: messages with multiple dynamic fields are split in parts in such way that
first part has alignment of all fields and each following part has alignment of its fields
0.2.5
-----------------------------------
- prophyc sorts symbols accorting to dependencies also in patched sack case
- prophy copy_from bug fixed
0.2.4
-----------------------------------
- prophyc sack mode doesn't use libclang to cross-compile for 32-bit platform
- prophyc sack mode removes all non-alphanumeric chars from identifiers in generic way
- prophy adds padding dynamically, which allows more freedom in using etc. strings
0.2.3
-----------------------------------
- prophyc dependency-sorts nodes in its model again after patching
0.2.2
-----------------------------------
- prophyc sack parses anonymous structs in files with hyphens in path name correctly
0.2.1
-----------------------------------
- prophyc sack parser parses incomplete arrays
0.2
-----------------------------------
- prophy structs, unions and arrays with enums return enum type instances instead of ints
enum instance has access to enumerator name string
0.1
-----------------------------------
- isar input (xml parser from standard library)
- sack input (C++ parser based on python clang and libclang, version at least 3.4)
- python output (python descriptors turned into codecs by python prophy library)
- patch mechanism (allows to modify parsed structures before rendering output)