Releases: esa/asn1scc
Bugfix
ICD Generation improvement
Implements feature described in #343
Addition of a filter in a panel to simplify the navigation in the generated ICD documents
Bugfixes
Maintenance release - bugfix
Fix issue #332 - generation of duplicate macro definitions in C, causing compiler warnings
Code optimization and decoding bufix
-
Major bugfix (issue #330) Possible invalid memory access in BitStream_ReadByte (could point to an invalid memory address if buffer was larger than value set in the byte counter)
-
This version introduces a functionality to automatically detect and exclude unused generated functions, resulting in significantly smaller output code for both C and Ada backends.
Key Features
-
Unused Function Elimination via
-icdPdus
When using the-icdPdus
argument, ASN1SCC now performs a dependency analysis starting from the specified PDUs and their associated functions (isEqual()
,isValid()
,init()
,encode()
, anddecode()
).- Only the functions directly or indirectly required by these PDUs are generated.
- All unused functions are excluded from the output, reducing code size and improving maintainability.
-
New
-dpdus
Argument
A new command-line option,-dpdus
, was added to help identify Protocol Data Units (PDUs) in the input ASN.1 grammar.- PDUs are defined as top-level types that are not referenced by any other type.
- Detected PDUs are printed to the console to help users configure
-icdPdus
more easily.
Impact
- Reduces the size of generated code by omitting unused functions.
- Especially beneficial for resource-constrained systems or projects aiming to minimize binary size.
Bugfixes
- Fix missing Xer_EncodeNull and Xer_DecodeNull functions (#326)
- Fix erroneous variable name in XER encoders (#325)
- Removed warnings from latest GCC in compilation of autogenerated test cases (#323)
- Fix corner case with hyphens generated in place of underscores (#322)
- Detect and report REAL numbers that can't be represented in memory when used in bounds (#321)
v4.5.2.4 - Performance boost
This release is a maintenance release (no new features) addressing parsing performance (10x boost).
Parsing performance boost and Scala update
This release introduces
- a major performance improvement for the parser
- a major update of the Scala backend with new proofs and complete support
Documentation (ICD) Generation and Performance Improvements
This new release improves the ICD (Interface Control Document) generation as well as the parsing performance:
- A new command line flag allows to select which ASN.1 types you want to see in the ICD (by default: all of them)
e.g.asn1scc -icdAcn icd.html -icdPdus "TELECOMMAND,TELEMETRY" dataview.asn
will generate the ICD only for the types namedTELECOMMAND
andTELEMETRY
(and all their dependencies) - The hyperlinks to the ASN.1 and ACN grammars have been fixed
- Various cosmetics improvements to improve the clarity of the tables (e.g. comments for ACN-inserted fields)
- To smoothen the transition, the new ICDs are generated in a file with the
_new.html
suffix (the prefix being the ICD name given in the command line). - Major parsing performance boost