Skip to content

Releases: fjl/geas

v0.2

25 Nov 08:30
@fjl fjl
Compare
Choose a tag to compare

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.

v0.1

20 Nov 06:38
@fjl fjl
Compare
Choose a tag to compare

The initial release of geas. With more experimental changes to come soon, this release can be used a stable baseline.
Building geas v0.1 requires Go version 1.21 or later.