Skip to content

Releases: DanielT/a2ltool

Version v3.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Aug 22:38
  • Allow insertion of bitfield values using --measurement / --characteristic . It was already possible to insert them using regexes; this change restores parity.
  • When creating items with --from-source, MAIN_GROUP is now used as the default group for any items if there is no GROUP statement (@lennart24)
  • Fix: ignore constexpr members in C++ classes/structs while loading debug info instead of pretending they're at offset 0
  • Fix: C++ allows inheritance on structs too; the dwarf debug reader now handles this case
  • Fix: correctly update MATRIX_DIM of a CHARACTERISTIC that represents a struct member selected by FNC_VALUES
  • Fix: Verify CHARACTERISTIC bit masks in strict update mode
  • Fix: 64-bit enums with negative values were not detected as signed

Version v3.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 21:07
  • a2ltool can now be installed as a Python wheel using pip install a2ltool (by zariiii9003)

a2lfile

  • update to a2lfile 3.5.0
    • Don't crash when removing the last item from a list
    • Don't crash during check if CHARACTERISTIC has 6 or more AXIS_DESCR
    • Don't crash on a cycle of /include directives
    • Don't crash on a cycle of A2ML /include directives
    • Fix infinite loop when parsing empty TaggedStruct/TaggedUnion in IF_DATA
    • Reject signed hex numerical constants like "-0x20" in the tokenizer
    • Fix TYPEDEF_* and INSTANCE-related module merging bugs
    • Fix bad error messages for CrossReferenceError during check
    • Fix merge of FUNCTION.DEF_CHARACTERISTIC and FUNCTION.REF_CHARACTERISTIC, which were previously ignored
    • Fix: STATUS_STRING_REF target can be deleted by cleanup
    • Fix: off by one in CRLF detection at the end of A2ML blocks
    • merge-includes in IF_DATA now recurses into Array/Sequence

Creator (--from-source)

  • Fix: the creator no longer crashes on recursive structure definitions; these are now reported as an error, since a recursive struct definition cannot occur in a real program
  • Fix: a single comment can now contain multiple a2l creator commands
  • Fix: incorrect handling of VAR_CHARACTERISTIC in the creator
  • Fix: the creator no longer crashes when a VAR_CRITERION has no values
  • Fix: the creator no longer crashes on malformed input
  • Fix: the creator no longer creates duplicate item names
  • Fix: curve/map items could not be changed using overwrite
  • Fix: use the correct compu_tab for a compu_method if the target's name had to be changed to avoid a naming conflict
  • Prevent arithmetic errors while creating an axis with a fixed range
  • Improve handling of invalid split templates
  • Fix: correct the position tracking in the comment scanner, which could cause incorrect error locations
  • Prevent a u16 overflow when creating a string object or flattening matrix dimensions during version downgrade; values are saturated instead
  • The ALIAS of an INSTANCE definition is now also applied without --enable-structures

Insert

  • Fix: newly inserted characteristics no longer use the raw input string as the item name; they are now cleaned up the same way as inserted measurements
  • Complex C++ symbol names are now fully cleaned up when inserting items. Previously only :: was removed, so characters like < and > could remain, producing invalid a2l identifiers
  • Fix: --old-arrays was ignored when inserting new items
  • Fix: create REF_CHARACTERISTIC instead of REF_MEASUREMENT for calibration-type INSTANCEs

Update

  • Fix: the update result for INSTANCEs and VAR_CHARACTERISTICs is now correctly counted as a strict-mode error
  • Fix: reduce unnecessary rebuilding of types while updating INSTANCEs and TYPEDEFs
  • Fix: possible record layout name conflicts when new record layouts are created during an update
  • Fix a potential crash while updating VAR_ADDRESS
  • Fix: the displayed update count for VAR_CHARACTERISTIC was always zero
  • Fix: IF_DATA CANAPE_EXT entries were incorrectly zeroed out during an address-only update
  • Fix: the size field in the IF_DATA ASAP1B_CCP block was incorrectly zeroed out during an address-only update
  • Fix a potential crash while updating typedefs
  • Fix: cleanup of unused typedefs could stop too early
  • Fix a potential crash during typedef update for 64-bit bitfields
  • Fix: typedef-nested arrays could get their inner dimension encoded twice
  • Fix: SymbolNotFound errors were logged twice

Remove

  • Fix: a2ltool no longer crashes if the regex given to --remove is invalid
  • Fix: remove ranges are now upper-exclusive, as documented

Debug info (DWARF/PDB)

  • Fix a crash when DWARF data contains an array of zero-sized elements
  • Fix: PDB multi-dimensional arrays had the wrong strides
  • Fix a crash on invalid PDB files; this is now reported as an error instead
  • Fix: PDB type info for global variables could be overwritten by type info of a static variable with the same name
  • Fix: derived class member types could be overwritten with base class info
  • Handle array dimensions more carefully: incomplete debug info could produce arrays without a dimension, and dimensions larger than u16 were not handled correctly

General

  • Fix regex matching for patterns containing | (alternatives), used by --insert and --remove by name. Unanchored patterns without ^/$ were previously extended incorrectly, so a|b became ^a|b$; they are now wrapped in a group, e.g. ^(?:a|b)$
  • Fix: allow --target-group to be combined with both --from-source and --characteristic-section, as intended
  • Fix the mangled-symbol fallback path when the original Symbol Link contains extra info such as {Namespace:Global}
  • Don't fail to set the version if the file has no existing ASAP2_VERSION
  • Fix: upper limits of signed bitfields were off by one
  • Fix limit calculation for linear conversions with negative factors
  • Prevent division by zero when recalculating RAT_FUNC limits

Version v3.3.0

Choose a tag to compare

@github-actions github-actions released this 28 Jun 08:07
  • Allow the INSTANCE definition in source comments to contain multpile groups and an alias.
  • Fix: Take the symbol offset into account when using CANAPE_EXT/LINK_MAP to identify a symbol
  • Fix: specifiying an invalid file name with --from-source is an error. When specifiying multiple files or patterns at least one file must be valid and readable.
  • Fix: Correct some errors in the documented grammar of the comment syntax used by --from-source

Version v3.2.2

Choose a tag to compare

@github-actions github-actions released this 22 Apr 21:44

Fix: Preserve top level comments during all operations

Version v3.2.1

Choose a tag to compare

@github-actions github-actions released this 01 Mar 10:42
  • Fix: repeatedly resolve type references until an actual type is found. This fixed nested type references in PDB debug info (by Louis Caron)
  • Fix new clippy warnings
  • update to a2lfile 3.3.2
    • Fix: Allow fallback parser to skip comments in unknown IF_DATA blocks (Akhil T Thomas)
    • Fix: Non-strict parsing should not fail if a string was expected, but comment + identifier was found. Previously the comment prevented the error recovery, where an identifier is accepted in place of a string. (Louis Caron)

Version v3.2.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 19:44
  • Fix: creating new TYPEDEF_CHARACTERISTICs from the command line was broken
  • Fix: Handle of the offset value in SYMBOL_LINKs correctly.
  • DWARF type reader: get names from DebugLineStrRef too
  • estimate sizes for structures created using --from-source

Version v3.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 07:23
  • Add the --old-arrays option. It allows the use of old array notation (e.g. "._3_") to be forced,
    even if the file version is 1.7.0 or 1.7.1 where new array notation (e.g. [2]) is possible.
  • Add the --insert-a2ml option. When this option is set, a2ltool's built-in A2ML defintion is inserted into the a2l file if it doesn't contain an one already.
  • Bugfix: In some cases, depending on the debug info generated by the compiler, integer types were treated as bitfields
  • Bugfix: The upper limit of bitfield values is no longer off by one
  • Bugfix: prevent infinite recursion in the DWARF debug data reader if the element type of an array is the array itself
  • Workaround: Some compilers claim that an enum is unsigned even if it contains enumerators with negative values. In this case the datatype is switched to a signed type.
  • ignore case in parameters of command line options. For example --update ADDRESSES can also be written as --update addresses now.
  • Correctly support the combination of --enable-structures with --from-source
  • Stop with an error message if there are problems while processing definitions in source files

Version v3.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 19:27
  • Implement compatibility with Vector's ASAP2 Creator and allow creation of a2l elements using the same special comment syntax
  • Implement additional modes for file merges.
    The standard so far was to keep both conflicting elements. Now the --merge-preference option can be used to always use the existing version or the new version instead.
  • Add a manual for a2ltool.
  • Support non-standard SYMBOL-LINK notation, where the compile unit name is used as a prefix of the real symbol name
  • Implement the ability to update VAR_ADDRESS info of VAR_CHARACTERISTIC
  • Handle negative bit-offsets in DWARF2 debug info correctly instead of panicing
  • Increase the size of the containing type for bitfields that extend past the end of their nominal containig type.
  • Add more plausibility checks to --check

Version v2.7.0

Choose a tag to compare

@github-actions github-actions released this 30 Apr 21:54
  • support C++ references in the DWARF debug data reader
  • update to a2lfile 3.0.0
    • Comments are now preserved in some cases. Specifically, any comment that occurs in a position where a block is permitted
      can be can be represented in the data, and is written to the output file. Sorting a2l files erases comments.
    • The values of BIT_MASK and error mask are u64 instead of u32, and parsing no longer fails for values that don't fit in u32.
    • Allow multiple CALIBRATION_HANDLEs inside of CALIBRATION_METHOD (by Rainer Zaiser)

Version v2.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Mar 17:16
  • handle offset values other than zero in SYMBOL_LINK
    Offset values are still restricted to only point to the beginning of values, and cannot refer to e.g. the second byte of a 32-bit value.
  • update to a2lfile 2.5.0, which brings some bug fixes:
    • improvements for the merge function:
      • TYPEDEF_CHARACTERISTIC may reference a MEASUREMENT, but this reference was not updated during merges
      • USER_RIGHTS can no longer get duplicate user entries as a result of the merge
      • all items are merged in the order in which they appear in the merge file. Previously they were merged in reverse order
    • During checking, accept referneces from an AXIS_PRS_REF or CURVE_AXIS_REF of a TYPEDEF_CHARACTERISTIC
      to a structure component of the containing structure using the notation THIS.component_name.