You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ASLi aims to be a faithful implementation of ASL version 1.0 beta 7.
Unfortunately, the document DDI0612-asl_spec-00bet7 is no longer available from Arm's website so we cannot refer you to it. However beta 7 roughly corresponds to the state of ASLRef documentation around September 2024.
We know of the following differences between ASLi and ASL version 1.0 beta 7.
'.item0'/'.item1'/... syntax to extract fields from tuples
'pass' statements
'case' labels must be literal constants instead of constant expressions
'x DIV y' should report an error if 'y' is not an exact divisor of 'x'.
Extensions
We support the following extensions
Optional exception markers: Functions that may throw an exception are marked with '?' and functions that always throw an exception are marked with '!'. Markers appear after the function name in both definitions and calls to the function.
Bitvector literals can be written like this 32'xffff_ffff' where 32` is the bitwidth. (Literals can be written in hexadecimal (x), decimal (d) or binary (b).)
It is not necessary to define a setter function when defining a getter function. This is useful for registers that should not be written directly.
Records can have bitwidth parameters. This is useful when a record field is a bitvector whose size is not fixed.
Differences
Constraints inferred for mutable local variables
In ASL version 1.0 beta 7, the typechecker would infer the type "integer {0}" for mutable variable "x" in the following
var x = 0;
This would make sense for immutable variables since the only value x could have is 0. But, for a mutable variable, the inferred constraint would prevent the value being modified which is ... bizarre.
ASLi fixes this issue by inferring the unconstrained type "integer". (More generally, ASLi always discards the constraint of the initializer in any mutable local variable declaration.)
The text was updated successfully, but these errors were encountered:
ASLi aims to be a faithful implementation of ASL version 1.0 beta 7.
Unfortunately, the document
DDI0612-asl_spec-00bet7
is no longer available from Arm's website so we cannot refer you to it. However beta 7 roughly corresponds to the state of ASLRef documentation around September 2024.We know of the following differences between ASLi and ASL version 1.0 beta 7.
Missing features
The following features are missing
Extensions
We support the following extensions
32'xffff_ffff' where
32` is the bitwidth. (Literals can be written in hexadecimal (x), decimal (d) or binary (b).)Differences
Constraints inferred for mutable local variables
In ASL version 1.0 beta 7, the typechecker would infer the type "integer {0}" for mutable variable "x" in the following
This would make sense for immutable variables since the only value x could have is 0. But, for a mutable variable, the inferred constraint would prevent the value being modified which is ... bizarre.
ASLi fixes this issue by inferring the unconstrained type "integer". (More generally, ASLi always discards the constraint of the initializer in any mutable local variable declaration.)
The text was updated successfully, but these errors were encountered: