Skip to content

v2.1.0

Latest

Choose a tag to compare

@PatrickHegemann1 PatrickHegemann1 released this 30 Jan 09:43
ce2bfca

Overview

This release of the arDSL Compiler brings significant improvements to code completion reliability, enhanced hover information, better syntax highlighting, and important bug fixes for model merging and compilation stability.

New Features

AUTOSAR R25-11 Support

The compiler now supports the latest AUTOSAR R25-11 schema, allowing you to work with the newest standard definitions.

Default to Latest AUTOSAR Version

When no AUTOSAR schema version is specified, the compiler now automatically uses the latest available version. This eliminates the need to explicitly set the version for most use cases.

Deprecation Warnings for AUTOSAR Properties

The compiler now warns you when writing to deprecated AUTOSAR properties. This helps you stay current with AUTOSAR standards and avoid using outdated model elements that may be removed in future AUTOSAR versions.

Language Server Stdio Mode

The language server now also supports communication via stdin/stdout. This enables integration with additional editors like Vim, Helix, and other LSP-compatible editors.

Enhancements

Flexible Function Ordering

Functions can now be called from anywhere in your code, regardless of where they are defined. You no longer need to define functions before using them:

@let result: string = $foo()     // This now works!

@function foo(): string {
  @return "the_string"
}

Bug Fixes

Compilation Stability

  • Fixed internal error with empty checksum lists: Compilation no longer crashes when processing models with empty checksum lists
  • Fixed multiplicity exceeded error: Resolved an internal error that could occur in certain model configurations
  • Fixed empty collection handling: Resolved an internal error when using compact value variation point syntax with empty collections
  • Fixed into-statement on merged heap objects: Using into-statements on merged heap objects with children no longer causes internal errors
  • Fixed nested heap object usage: Resolved issues with nested usage of heap objects that could cause internal errors
  • Fixed path queries as function arguments: Path queries now work correctly when passed as function arguments
  • Fixed @using in compact nested packages: The @using statement now works correctly within compact nested package declarations (e.g., ARPackage A/B/C { @using ... })
  • Fixed @iref return from functions: Returning an @iref literal from a function no longer causes internal errors
  • Fixed ForeignModelReference handling: Using ForeignModelReference no longer throws exceptions
  • Fixed misplaced shortName: Assigning a shortName to an object of a type that does not have a shortName no longer causes internal errors
  • Fixed let-statement references: Referencing objects created by let-statements now compiles correctly

Improved Error Messages

  • Duplicate shortnames now produce clear user-facing errors instead of internal errors
  • Better error messages when statements appear after a return statement
  • Internal type names (like _void) are less frequently exposed in error messages

Model Merging Improvements

  • Conditional object merging: Invariant properties of object like EthernetClusterConditional and CanClusterConditional are now properly merged when combining multiple part-models

Technical Improvements

Build and Distribution

  • Compiler artifacts have been restructured and renamed for better compatibility with downstream tooling integrations
  • Improved artifact naming convention to avoid confusion with internal tooling packages

Internal Improvements

  • Enhanced parser error recovery for better IDE responsiveness
  • Improved analysis of code completion approaches for syntactically incorrect input
  • Various internal refactoring for better maintainability