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).