-
Notifications
You must be signed in to change notification settings - Fork 30
/
NEWS
282 lines (209 loc) · 10.8 KB
/
NEWS
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
Future
------
* c++-lib: File Descriptor streambuffer
* c++-lib: streambuf monitor
* c++-lib: IOManipulator based encoding/decoding
* c++-lib: ROSE support infrastructure
* documentation: Developer's guides
* esnacc-logo: A mascot (and CC-BY license) was added for esnacc
* py-lib: Introduce a first cut at a python back-end
* py-gen: Add python backend, which supports only basic explicit tagging, no
extensions, and BER only.
1.80
----
* Restarting full eSnacc support with eSnacc NG
* Converted to modern automake
* All c++ libraries have been renamed to cxx
* Fixed minbuf to follow the GenBuf abstraction
* Fixed GenBuf prototype
* Moved GenBuf macros to static inline functions
* Added support for modern style CONTAINs/SIZEs
* Fixed default value generation code for the C++ backend.
* Added experimental AUTOMATIC tags support
=======================================================================
New in 1.7:
* Enchancements to C++ runtime:
* Support of constraints checking for BER/PER
* Added Asn-Relative-Oid's
* Updated Asn-Oid to be inherited from Asn-Relative-Oid
* Added Extensibility to the set/sequence/choice syntax (BER encoding/decoding only, PER is not yet supported)
* asn::list has been changed to std::list (many changes)
* non-optional set/sequence/choice elements are no longer generated as pointers
* PER encode/decode capability for both aligned and unaligned variants (see PER beta notes below)
* Enchancements to C runtime:
* Added useful types
* Added Asn-Relative-Oid's
* Enhancements to compiler
* eSNACC no longer supports un-named types (2002 syntax update)
* added -b compiler option to turn on/off PER encoding/decoding function generation in set/sequence/choice (Note -- calling PEnc/PDec will still work, but will not produce correct encoding unless -b is used!!)
New in EKMS PER Beta (Packed Encoding Rules):
* Aligned and unaligned PER variants (C++ only)
* Limited constraint checking and PER encoding for PER visible constraints
* Supported
* char Stringtypes
* Integer
* Octet String
* Bit String
* Sequence-of / Set-of (limited)
* Currently Unsupported
* wide char stringtypes
* extensibility in constraints
New in 1.6Beta:
* Updated "C" library to automatically handle ANY load/unloads as buffers.
* Added interpretation of ASN.1 integer constants as values in tag references for "C" and C++.
* Added "--snacc namespace: " pre-processor feature for unique C++ ASn.1 module namespace references.
* Updated SNACC document (in the ./SNACC/doc directory) to present DigitalNet updates/enhancements.
* Updated c++-examples and c-examples to demontrate recent features.
New in 1.5:
* Updated "C" library to automatically handle ANY load/unloads as buffers.
* Added interpretation of ASN.1 integer constants as values in tag references for "C" and C++.
* Added "--snacc namespace: " pre-processor feature for unique C++ ASn.1 module namespace references.
* Updated SNACC document (in the ./SNACC/doc directory) to present DigitalNet updates/enhancements.
* Updated c++-examples and c-examples to demontrate recent features.
New in 1.4:
* rewrote makefiles to make build process easier and faster.
* Enchancements to C++ runtime:
* AsnInt changed to be so that it no longer inherits AsnOcts
* AsnBits enchanced to construct BitStrings from binary strings.
* Added AsnSetOf and AsnSeqOf templates.
* Added Exception handling (see snaccexcept.h)
* Moved BDecPdu to AsnType. So every type as access to it now. This
was done to help reduce the number of symbols & methods the compiler
generates.
* Added useful types
* Enchancements to C runtime:
* Added useful types
* Enhancements to compiler
* Removed -u switch because useful types are now in the runtime library.
* Added useful types as basic types.
New in 1.3b4:
* Generic table decoding routines with callback mechanism in tbl library
* New tool "berdecode", decoding any BER data, can also use table file
* New Tcl/Tk tool "asnwish", reads table files, access to grammar, en-/decoding
* Fix for tag values > 2^14
* Fix for table-encoding tag values dividable by 128
* Small fix in AsnBits::GetBit to return TRUE (i.e., 1) instead of #bit in byte
New in 1.3b3:
* Added isPdu flag to tables
* Added number range checks during parsing
New in 1.3b2:
* Small fix of C value string generation wrt char values >127
* Added (limited) size constraints, bitstring and enumeration names to tables
New in 1.3b1:
* Made snacc.h more C++-readable (credits to Steve Walker).
* Improved dependency generation for stupid makedepends.
* Corrected PeekTag to peek into buffer only as far as necessary.
* Added installable error handler.
* Fixed small glitch in idl-code generator (credits to Markku Savela).
* Finally fixed cut-and-paste error in SEQUENCE OF parsing.
New in 1.3a<n>:
* Continued porting C, C++, tbl to 64 bit, any endianness: Hash typedef,
PeekTag algorithm used by tables.
* Fixed cut-and-paste error in SEQUENCE OF parsing.
* Added missing initialisation of exponent in asn-real.[Cc].
* Fixed tbl-free.c and some other table-related bugs.
* Added casts and stuff for picky C++ compilers.
* Incorporated all valid bug fixes from snacc-bugs.
* Initial move of tcl stuff to tcl7.6/tk4.2/tree4.1.
main changes between versions 1.1 and 1.2:
* ports to linux and alpha, which should make snacc both endianess and
64 bit clean.
* to complement the destructors, T::T (const T&) and
T &T::operator = (const T &) have been added to override the defaults
supplied by the compiler. reason: simple pointer duplication may lead
to unreferenced objects and to objects referenced more than once (on
which the destructors delete may choke).
* the files asn_useful.[hcC] and tbl.[ch] get regenerated automagically.
since the compiler itself is compiled with it, a bootstapping version
is included in the distribution.
* the choice selector and all pointer members get initialized to get
predictable behaviour from the destructors (C++ code only, the C code
may still be broken!).
* turned C++ inline functions into normal functions. this can reduce
the size of .o files and executables dramatically! (the change was
partially made by IBM ENC.)
* the c++ lib compiles under gcc 2.6 (which has the bool type built-in).
* GNU autoconf support added.
* makefiles rewritten to provide the usual phony targets.
* code duplication (4 config files, 3 c_libs) reduced.
* C++ destructors added (partially contributed by IBM ENC).
=======================================================================
Snacc Changes from version 1.0 to 1.1
Thanks to many bug reports from users of snacc 1.0, snacc 1.1 is more
reliable. Most of the changes between 1.0 and 1.1 are listed in the
"1.0-to-1.1-changes" file.
Type tables are the biggest addition. The rest were mostly bug fixes.
If you reported a bug and you don't see the fix, I either didn't have
time or simply forgot. Sorry.
See README.future for the status of snacc now that I have graduated.
The remainder of this file contains descriptions of many of the fixes
between version 1.0 and 1.1. I am sure there are fixes that are not
documented here.
=======================================================================
The GNU Library Public License (LGPL) has been punted.
=======================================================================
Added table generation the compiler
files: src/{ tbl.c tbl.h gen_tbls.c }
=======================================================================
Added table libraries and tools
files: tbl_include/* tbl_lib/* tbl_tools/* tbl_example/*
=======================================================================
Re-aligned data structure for parse tree with code generated by
newer version of snacc (yes, the parse tree was originally defined
in ASN.1 - see asn1specs/asn1module.asn1)
=======================================================================
defined T61String and ISO646String Tag codes.
files: snacc/c_inlcude/asn_tag.h and snacc/c++_inlcude/asn_tag.h
#define TT61STRING_TAG_CODE TELETEXSTRING_TAG_CODE
#define ISO646STRING_TAG_CODE VISIBLESTRING_TAG_CODE
=======================================================================
Named arcs in OBJECT IDENTIFER values no longer generate ASN.1 integers.
e.g. test OBJECT IDENTIFIER ::={2 3 4 ds(5) 1}
used to be equivalent to:
ds INTEGER ::= 5
test OBJECT IDENTIFER ::= {2 3 4 ds 1}
Snacc now ignores the name (ds in this case). Ideally the arc could
be entered into an object identifier tree maintained by snacc.
files: snacc/src/val_parser.c
=======================================================================
Fixed bug in macro definition parsing that threw off the line
number global.
file: asn1.lex
=======================================================================
Added file and line number information to import errors.
A lineNo field was added to the ImportElmt and ImportModule data
structures. The yacc code for the import elements & modules sets the
lineNo values correctly. The error reporting code in line_types.c and
line_values.c now prints the line number info.
files: link_types.c link_values.c asn1module.h asn1.yacc
=======================================================================
Added some line number info to multiply defined symbol error reports
file: err_chk.c - uses importElmt line number info
=======================================================================
Added line number info to export errors.
=======================================================================
Added file and line number info to typing errors for OBJECT
IDENTIFIER values. Also stopped errors that cascade from other
OID values referencing a malformed oid value.
file: normalize.c
=======================================================================
Error messages will be printed for recursively defined OBJECT
IDENTIIFER values.
file: link_values.c
=======================================================================
Fixed bug #20. ie Not grabbing EOC on tagged (by def or in parent)
CHOICEs embedded in other SET, SEQ, CHOICE, SET OF or SEQ OF types.
file: gen_c_dec.c
=======================================================================
Fixed bug #21. ie Value linking problem when assigning a value
to a choice with a named number from one of the choice's elmts.
file: link_values.c, snacc_util.c (added routine "GetAllNamedElmts")
=======================================================================
Fixed bug #22 - potentially not allocating enough space for
a C++ field name conflict
file: snacc/src/back_ends/c++_gen/cpp_types.c
=======================================================================
Fixed nibble alloc bug. curr pointer could be incremened past
end ptr which then caused problems with new allocs.
file: c_lib/nibble_alloc.c tbl_lib/nibble_alloc.c
=======================================================================