Releases: fjl/geas
Releases · fjl/geas
v0.2.0
This release has some language changes and new compiler features.
Go 1.23 or later is required to build this version.
Macro definition language change
Expresssion macro definitions must now contain an equals sign (=) before the body expresssion.
New definition syntax:
#define macro1 = 1
#define macro2(a) = (100 + $a) / b
Note the old syntax without '=' is still accepted, but produces a warning.
EVM target
You can now declare the EVM version the program should be compiled for.
Use the #pragma target
directive to change the target instruction set.
#pragma target "berlin"
All past forks up to "prague" are supported.
Other changes in this release
- Binary operator precedence is now implemented.
- Unused label detection: geas will now warn you about labels which are defined but never used.
- Unreachable code detection: a warning will also be issued for code that can never be reached
by the EVM, e.g. instructions after JUMP or STOP.