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
@usingin compact nested packages: The@usingstatement now works correctly within compact nested package declarations (e.g.,ARPackage A/B/C { @using ... }) - Fixed
@irefreturn from functions: Returning an@irefliteral from a function no longer causes internal errors - Fixed ForeignModelReference handling: Using
ForeignModelReferenceno 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
EthernetClusterConditionalandCanClusterConditionalare 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