ASN1C 7.5.1 was released on May 26, 2021. Changes in this release include the following:
- Fixed a defect that could cause an assertion violation during OER code generation (A1C-329).
- Fixed a defect that could cause uncompilable code to be generated for OER (A1C-329).
- Fixed a defect that could cause a test BIT STRING in a generated Python writer not to encode (A1C-340).
- Added C and Java samples for decoding a file of CDRs with TS 32.297 headers.
- Fixed a defect that would cause the Java run-time to throw an invalid exception while decoding a TS 32.297 file header.
- Fixed a bug in C/C++ aligned PER decoding in which byte count for OCTET STRING types was not getting set correctly. The count was being set to number of bits instead of number of bytes.
- Fixed a bug in C/C++ CER OCTET STRING encoding in which an error would be returned if the string was zero length.
- Improved efficiency of generated code for decoding C/C++ unaligned PER (UPER) signed integer values.
ASN1C 7.5.0 was released on March 10, 2021. New features in this release include the following:
- The primary new capability added in this release is the capability to generate code for the Go language (see golang.org). Support for the aligned and unaligned variants of the packed encoding rules (PER/UPER) have been implemented. Support for other encoding rules may be added in the future.
- Support has been added via the new -avn command-line option for generating encoders and decoders that support ASN.1 Value Notation in C/C++. This works in a similar fashion to code that support other textual formats such as XML/XER and JSON/JER.
- Support has been added via the new -aper command-line option for generating encoders and decoders that support only aligned PER in C/C++. Previously, the -per option allowed this, but allowed for switching bewteen aligned or unaligned at run-time. The new option provides for improved performance by doing a number of calculations at compile time that were previouly being done at run-time.
- New platform types. ASN1C SDK's are now available for the 64-bit ARM platform type (AArch64) and Apple M1. These SDK's contain the command-line compiler only and not the GUI.
- A format option has been added (bits) for printing BIT STRING's as binary data (1's and 0's). The default format for printing BIT STRING's is hex bytes with a binary last byte showing the unused bits in that byte.
- Support for IMPORTS ... WITH. X.680-2015 Amendment 1 updated the IMPORTS clause to allow importing definitions from new versions of a given module. IMPORTS statements can now specify "WITH SUCCESSORS" or "WITH DESCENDANTS" to allow modules with related OIDs to satisfy the import.
The following defects were fixed in this release as well as in ASN1C 7.4.5:
- Fixed a defect that could cause a crash during OER message encoding (A1C-174).
- Fixed a defect in the 3GPP NAS add-on for 5G Tracking area identity list. The number of elements was mishandled (A1C-160).
- Fixed generation of non-compilable C/C++ code for JSON decoding in the case where a table constraint uses an information object set with just one information object (A1C-266).
- Fixed a bug where, when using -cpp11 -xml, some code would be generated as for OSRTDList representation though std::list was being used, resulting in uncompilable code (A1C-265).
- Fixed generation of copy code for atomic PDU types. When using -copy -tables, this code was uncompilable (A1C-265).