Version 0.4.6
Released in Dec 2024. Fixes:try/catchhandling.- Pure flag for functions stored in variables.
Version 0.4.5
Released in Oct 2024. Fixes:- Bug in optimization of operator
<<.
Version 0.4.4
Released in May 2023. New features:- Better error-handling.
catchstack recovery.
Version 0.4.3
Released in Apr 2023. New features:- Improved optimization of int constants and unused variables.
- Better handling of incorrect inputs: fix UB and prevent crashes on some inputs.
- Analysis of repeat loops.
Version 0.4.2
Released in Mar 2023. New features: Fixes:- Handling of incorrect integer literal values.
Version 0.4.1
Released in Jan 2023. New features:- Added pragmas for precise control of computation order:
allow-post-modificationandcompute-asm-ltr. - Added legacy tester, a collection of smart-contracts which is used to check whether a compiler update changes compilation results.
- Compiler crashes for some exotic inputs.
Version 0.4.0
Released in Jan 2023. New features:try/catchstatements.throw_arg,throw_arg_if, andthrow_arg_unlessfunctions.- Support for in-place modification and mass assignment of global variables, e.g.,
a~inc()and(a, b) = (3, 5), whereais global.
- Disallowed ambiguous modification of local variables after their usage in the same expression. For example,
var x = (ds, ds~load_uint(32), ds~load_unit(64));is forbidden, whilevar x = (ds~load_uint(32), ds~load_unit(64), ds);is allowed. - Allowed empty inline functions.
- Fixed a rare optimization bug in
whileloops.
Version 0.3.0
Released in Oct 2022. New features:- Support for multiline
asmstatements. - Allow duplicate definitions of identical constants and
asmstatements. - Enable bitwise operations for constants.
Version 0.2.0
Released in Aug 2022. New features:- Unbalanced
if/elsebranches, where some branches return a value while others do not.
- FunC incorrectly handles
while(false)loops (#377). - FunC generates incorrect code for
if/elsebranches (#374). - FunC incorrectly returns from conditions in inline functions (#370).
Asm.fif: splitting large function bodies incorrectly interferes with inline (#375).
Version 0.1.0
Released in May 2022. New features: Fixes:- Resolved rare bugs in
Asm.fif.