Skip to content

Releases: fjl/geas

v0.2.0

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

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.

v0.1.0

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.