Releases: 0xMiden/air-script
Releases · 0xMiden/air-script
v0.4.0
Language
- [BREAKING] Introduced "block" syntax for all declarations and statements (#350).
- Implemented support for pure functions (#351).
- [BREAKING] Introduced semicolons as statement terminators (#353).
- Allowed named constants in rage notation (#355).
- Added commas in match/case statements (#356).
- Implemented
busconstructs (#371). - Removed
auxandrandvalues from the frontend (#375). - Implemented variable length public input (for bus boundaries) (#376).
- Implemented nested list comprehension (#400).
Codegen
- Introduced initial version of the ACE backend (#370, #380, #386).
- Updated Winterfell codegen to the latest version (#388).
- Removed obsolete MASM codegen backend (#389).
Internal
v0.3.0
- Added support for library modules.
- Added support for evaluator functions.
- Added support for constraint comprehension.
- Added support for conditional constraints.
- Refactored parser to make it more robust and provide better error reporting.
- Fixed grammar ambiguities.
- Added initial implementation of Miden assembly backend.
v0.2.0
This version of AirScript is capable of expressing ~90% of the constraints for the MidenVM.
- Added support for named constants (scalars, vectors, and matrices).
- Added support for intermediate variables in
boundary_constraintsandintegrity_constraintssections (scalars, vectors, and matrices). - Added support for binding identifier names to groups of trace columns (in addition to single columns, which were already supported).
- Added the
$mainand$auxbuilt-ins for accessing columns in the execution trace by index. - [BREAKING] Replaced the
$randbuilt-in for accessing random values with an explicitrandom_valuesdeclaration section, enabling use of a custom identifier for the random values array. - Added support for binding identifiers to specific random values or groups of random values.
- Made significant changes to the IR, including:
- Moved the boundary constraints into the algebraic constraint graph.
- Made the trace reference more general to support additional trace segments in the future.
- Added analysis to differentiate between validity and transition constraints.
- Added the
Suboperation and removed theNegoperation.
- [FIX] Fixed a bug in the Winterfell codegen output for auxiliary transition constraints.
- Improved the Winterfell codegen by consolidating code generation for boundary and transition constraints and removing redundant parentheses.
v0.1.0
This is the first release of AirScript, a domain-specific language for expressing AIR constraints for STARK proofs. It includes a minimal but complete implementation of the AirScript compiler for an initial set of language features. Documentation is available at https://0xpolygonmiden.github.io/air-script/.
What's Changed
- Parser
- IR
- Code generation for Winterfell (in Rust)
- Command-line interface for transpilation
- Integration tests
- mdBook documentation
Full Changelog: https://github.com/0xPolygonMiden/air-script/commits/v0.1.0