1 =======================================================================
3 main changes between versions 1.1 and 1.2:
5 * ports to linux and alpha, which should make snacc both endianess and
7 * to complement the destructors, T::T (const T&) and
8 T &T::operator = (const T &) have been added to override the defaults
9 supplied by the compiler. reason: simple pointer duplication may lead
10 to unreferenced objects and to objects referenced more than once (on
11 which the destructors delete may choke).
12 * the files asn_useful.[hcC] and tbl.[ch] get regenerated automagically.
13 since the compiler itself is compiled with it, a bootstapping version
14 is included in the distribution.
15 * the choice selector and all pointer members get initialized to get
16 predictable behaviour from the destructors (C++ code only, the C code
17 may still be broken!).
18 * turned C++ inline functions into normal functions. this can reduce
19 the size of .o files and executables dramatically! (the change was
20 partially made by IBM ENC.)
21 * the c++ lib compiles under gcc 2.6 (which has the bool type built-in).
22 * GNU autoconf support added.
23 * makefiles rewritten to provide the usual phony targets.
24 * code duplication (4 config files, 3 c_libs) reduced.
25 * C++ destructors added (partially contributed by IBM ENC).
27 =======================================================================
29 Snacc Changes from version 1.0 to 1.1
31 Thanks to many bug reports from users of snacc 1.0, snacc 1.1 is more
32 reliable. Most of the changes between 1.0 and 1.1 are listed in the
33 "1.0-to-1.1-changes" file.
35 Type tables are the biggest addition. The rest were mostly bug fixes.
36 If you reported a bug and you don't see the fix, I either didn't have
37 time or simply forgot. Sorry.
39 See README.future for the status of snacc now that I have graduated.
41 The remainder of this file contains descriptions of many of the fixes
42 between version 1.0 and 1.1. I am sure there are fixes that are not
45 =======================================================================
47 The GNU Library Public License (LGPL) has been punted.
49 =======================================================================
50 Added table generation the compiler
52 files: src/{ tbl.c tbl.h gen_tbls.c }
53 =======================================================================
55 Added table libraries and tools
57 files: tbl_include/* tbl_lib/* tbl_tools/* tbl_example/*
58 =======================================================================
60 Re-aligned data structure for parse tree with code generated by
61 newer version of snacc (yes, the parse tree was originally defined
62 in ASN.1 - see asn1specs/asn1module.asn1)
64 =======================================================================
65 defined T61String and ISO646String Tag codes.
67 files: snacc/c_inlcude/asn_tag.h and snacc/c++_inlcude/asn_tag.h
69 #define TT61STRING_TAG_CODE TELETEXSTRING_TAG_CODE
70 #define ISO646STRING_TAG_CODE VISIBLESTRING_TAG_CODE
72 =======================================================================
74 Named arcs in OBJECT IDENTIFER values no longer generate ASN.1 integers.
75 e.g. test OBJECT IDENTIFIER ::={2 3 4 ds(5) 1}
77 used to be equivalent to:
79 test OBJECT IDENTIFER ::= {2 3 4 ds 1}
81 Snacc now ignores the name (ds in this case). Ideally the arc could
82 be entered into an object identifier tree maintained by snacc.
84 files: snacc/src/val_parser.c
86 =======================================================================
88 Fixed bug in macro definition parsing that threw off the line
93 =======================================================================
95 Added file and line number information to import errors.
97 A lineNo field was added to the ImportElmt and ImportModule data
98 structures. The yacc code for the import elements & modules sets the
99 lineNo values correctly. The error reporting code in line_types.c and
100 line_values.c now prints the line number info.
102 files: link_types.c link_values.c asn1module.h asn1.yacc
105 =======================================================================
107 Added some line number info to multiply defined symbol error reports
109 file: err_chk.c - uses importElmt line number info
111 =======================================================================
113 Added line number info to export errors.
115 =======================================================================
117 Added file and line number info to typing errors for OBJECT
118 IDENTIFIER values. Also stopped errors that cascade from other
119 OID values referencing a malformed oid value.
124 =======================================================================
126 Error messages will be printed for recursively defined OBJECT
131 =======================================================================
133 Fixed bug #20. ie Not grabbing EOC on tagged (by def or in parent)
134 CHOICEs embedded in other SET, SEQ, CHOICE, SET OF or SEQ OF types.
138 =======================================================================
140 Fixed bug #21. ie Value linking problem when assigning a value
141 to a choice with a named number from one of the choice's elmts.
143 file: link_values.c, snacc_util.c (added routine "GetAllNamedElmts")
145 =======================================================================
148 Fixed bug #22 - potentially not allocating enough space for
149 a C++ field name conflict
151 file: snacc/src/back_ends/c++_gen/cpp_types.c
153 =======================================================================
155 Fixed nibble alloc bug. curr pointer could be incremened past
156 end ptr which then caused problems with new allocs.
158 file: c_lib/nibble_alloc.c tbl_lib/nibble_alloc.c
160 =======================================================================