The current production release version of the ASN1C compiler is 6.09. Bug fixes that went into this release include the following:
- Removed get and set methods for open extensions when both
-noopenextand-getsetare specified for Java code generation. (PR #ASN-1285) - Fixed decoding of DER bit strings terminated by one or more zeros. (See PR# ASN-444.)
Changes made between 6.08 and 6.07 include:
- Fixed crash in code generation that occurred when compilation triggered an "Error limit exceeded" failure. (PR #ASN-1227)
- Fixed bug in C# GUI to reflect that streaming encoding is not available for DER. (PR #ASN-1202)
- Fixed XML code generation so that non-sequential enums would be properly converted to string values. (PR #ASN-1187)
- Fixed a bug in the GUI that prevented extra options specified not to be properly interpreted by the compiler.
- Provided
equalsmethod for Asn1Null types for both C# and Java runtimes. All null types are equal to each other. (PR #ASN-1149) - Fixed additional name clash with code generation of SEQUENCE and CHOICE types that include an element named "length." (PR #ASN-1103; cf ASN-890)
- Updated XER decoding of open types specified as binary
via the
<binext>tag (cf PR #ASN-682). - Fixed code generation for XML when
-noopenextwas specified on the command-line.
Changes made between 6.07 and 6.06 include:
- Removed spurious try/catch for NULL values when generating Java code using the -xer option. (PR #ASN-1059)
- Fixed bugs in the generation of XSD files when used in conjunction with the -xer option. (PR #ASN-1058)
- Added ToString methods for named INTEGER constants in Java and C# code generation. (PR #ASN-1046)
Changes made between 6.06 and 6.05 include:
- Fixed a bug that caused time strings with trailing zeros to be truncated. (PR #ASN-1035)
- Fixed a bug that caused improper accessor method names
when
-getsetwas specified on the command-line. (PR #ASN-1008) - Fixed a bug that caused a crash when performing ASN.1 to XSD translations with constrained BIT STRINGs. (PR #ASN-1004)
- Updated C# code generation to produce constraints on REAL
types when
-strictis passed. (PR #ASN-1003) - Updated "intCType" configuration parameter for Java to allow "int" to be used instead of "long" types in modules (work-around for modules that have too many parameters in the constructor). (PR #ASN-991)
- Fixed enumerated types so that values were treated as simple rather than complex types. (PR #ASN-968)
- Fixed test code generation for UTC and GeneralizedTime types when using PER. (PR #ASN-950)
- Updated Java Asn1CharString.equals() to return false when comparing null values. (PR #ASN-936)
- Updated C runtime error codes to include more diverse socket failures. (PR #ASN-932)
- Updated C/C++, Java, and C# runtimes to support both BCD and TBCD-style strings. (PR #ASN-912).
- Fixed a problem in compiling the MMS specs with -depends in which certain dependent productions deep in the stack were not being included in the final production set. (PR #ASN-901).
- Fixed a name clash bug caused by the generation of accessor and mutator methods for elements of CHOICE and SEQUENCE types named "length." (PR #ASN-890)
- Fixed Java and C# code generation for PER and BER for XSD inputs involving CHOICE and SEQUENCE types. (PR #ASN-882)
Changes made between 6.05 and 6.04 include:
- Fixed a class-cast exception error in C# when underyling open type values could not be encoded using XER. (PR #ASN-865)
- Fixed a bug in which the -uniqueNames qualifier was not working correctly in the case of Java and C#.
- Fixed Java and C# runtime decoding of character strings to permit constructed elements of length 0 (PR #ASN-855)
- Fixed a bug in which enumerated values were not being resolved properly when defined values were used as enumered constants. (PR #ASN-862)
- Fixed a number of C/C++ code generation issues related to compiling TADIG XML schema files. (PR# ASN-849).
- Modified C/C++ test code generation logic to populate XSD string type variables that contained pattern constraints with matching strings. (PR #ASN-848).
- Fixed bug in processing XSD types with enumeration restrictions with numeric constants that contained decimal points. These constants were being treated as integers. (PR #ASN-848)
- Fixed bug in generated C XML encoders generated from XSD in which start element tags in X.694 derivations types would be terminated prematurely. (PR #ASN-848)
- Fixed bug in XSD-to-ASN.1 translation in which ASN.1 modules with the same name would be created if XSD schemas were in different files with the same target namespace. (PR #ASN-848)
- Modified C run-time code to fix issues with compile and link with ARM Thumb compiler (tcc).
- Fixed bugs in Java / C# XML decode logic generated from XSD for cases of repeating elements within embedded choice constructs.
- Fixed bug in regular expression constants generated in Java or C# for elements within a constructed type when different elements had different patterns.
- Fixed bug in Java or C# decoders generated from XSD in which elements with minOccurs=0 which were not set would cause a null pointer exception on encode.
- Fixed bug in configuration processing in which mapping of a SEQUENCE OF type to an array was not working in some cases. (PR #ASN-829)
Changes made between 6.04 and 6.03 include:
- Added Qt-based GUI for HP-UX.
- Fixed a bug in C/C++ BER decoding of integers constrained to be unsigned (>= 0) in which negative numbers did not cause a constraint violation error to be raised. (PR# ASN-783)
- Added "value" as a reserved word to prevent name clashes when subclassing runtime library classes. (PR# ASN-778)
- Fixed small conversion bug in rtxByteToHexChar. (PR #ASN-766)
- Fixed C/C++ test code generation to properly follow size constraints on derived OCTET STRING types. (PR #ASN-743)
- Fixed test code generation to create real-valued strings for xsd:decimal types. (PR #ASN-738)
- Updated Java reader and writer code generation to give XER or XML precedence in encoding and decoding logic to avoid conflicts in declared objects. (PR #ASN-738)
- Fixed GUI to disable '-tables' when XER code generation is specified. (PR #ASN-733)
- Fixed small bug in printing of NULL types that caused calls to be made to #define macros instead of actual functions. (PR #ASN-730)
- Fixed GUI to allow modifying C# namespace values. (PR #ASN-718)
- Fixed precision error in Java XER encoding for REAL values using IEEE 754 notation. (PR #ASN-717)
- Modified Java BER encode logic to not continually create Asn1Tag objects. (PR #ASN-717)
- Fixed bug in generating C/C++ value constants for ROSE OPERATIONs that occurred when compiling GSM MAP specification (Siemens version). (PR #ASN-707)
- Fixed missing help text in GUI.
- Fixed Java PER code generation for strings restricted to a specific character set. (PR #ASN-691)
- Fixed Java PER code generation for extended elements with default values. (PR #ASN-691)
- XSD files are now generated for imported modules. (PR #ASN-684)
- XER encodes open types in hexadecimal if they are determined to be binary. (PR #ASN-682)
Changes made between 6.03 and 6.02 include:
- Fixed Java compare function generation for optional elements. (PR #ASN-672)
- Modified C++ BER decode logic to provide improved performance when reading large TAP3 batch files. (PR# ASN-651)
- Added support for UDP Socket Streams. (PR# ASN-643)
- Added support for printing NULL types in output. (PR #ASN-637)
- Fixed Java license checking code to prevent premature error when checking IP addresses. (PR# ASN-613)
- Fixed bug in which global configuration of SEQUENCE OF types as arrays was not working (directive <storageType>array</storageType>). (PR# ASN-594)
- Added constraint check in Java/C# PER integer encode/decode logic when multi-part value range specified (for example: 1 | 5..8). (PR# ASN-585)
- Added sanity checks when freeing memory allocated to open extension SEQUENCE elements. (PR# ASN-571).
- Fixed bug in copy code generation for UTF-8 strings that were missing appropriate type casting. (PR# ASN-563, 638)
- Fixed bug in Java license-checking code that caused host checking to fail prematurely. (PR# ASN-554)
- Fixed bug in PER encoding of ENUMERATED types that have subtype constraints. (PR# ASN-528)
Changes made between 6.02 and 6.01 include:
- Fixed bugs in code generation of C++ BER reader and writer programs when -stream option was specified. (PR# ASN-532)
- Fixed bug in generation of C copy functions for string type embedded in linked list (PR# ASN-532)
- Fixed bug in C/C++ BER encoding of 16-bit signed numbers in the range of -255 to -129. (PR# ASN-523)
- Fixed problems with incorrect C++ code being generated when -compact option was used. (PR# ASN-517)
- Fixed a crash in 64-bit integer decode logic which would occur when using optimized C/C++ libraries. (PR# ASN-513)
- Fixed bug in C/C++ PER encode/decode of enumerated values when constrained to a subset of the values in a higher-level enumerated type. (PR# ASN-497)
- Fixed bug in C/C++ PER encoding of small, non-negative whole number when value greater than 63 (i.e. extended case). (PR# ASN-472)
- Added string validation routines for 8-bit character strings when -strict is specified. (PR# ASN-471)
- Minor user interface fixes. (PR# ASN-468, ASN-469)
- Fixed code generation for print-to-string and print-to-stream routines for UTF-8 character strings. (PR# ASN-465).
- Fixed encoding of BIT STRING's using DER to adjust bit count to exclude all trailing zero bits. Fix was done for all languages (C, C++, Java, and C#). (PR# ASN-444)
- Updated print format for BIT STRINGs. If the final byte contains less than 8 bits, it is printed in binary instead of hex, with x used in positions that are unset. (PR# 000627)
Changes made between 6.01 and 6.00 include:
- Support for parsing and formatting XML documents that comply with a given XML schema definition (C/C++, Java, and C#).
- Added support for ASN.1 base 10 encode/decode to allow support of XSD decimal data type.
- Fixed problem with C# PER encode/decode of 64-bit integer values with extremely large ranges. (PR#ASN-361)
- Fixed errors in Java/C# PER handling of items with lengths greater than 64k.
New items and bug fixes in the initial 6.00 release include:
- Support for parsing and formating XML documents that comply with a given XML schema definition (C/C++ only).
- A new cross-platform graphical user interface based on TrollTech's Qt libraries.
- Support for Visual Studio project files when using the -genmakeoption.
- Support for fully-qualified enumeration using the -fqenumoption.
- Various bug fixes, including but not limited to the following:
- Fixed Java code generation; circular reference in import statement (PR#000611).
- Modified C++ EncodeTo and DecodeFrom base class method to return a run-time error if invoked (PR#000524).
- Fixes for BCD conversion routines (C#).

