Skip to content

Releases: paritytech/revive

v0.5.0

03 Nov 15:18
046455d

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev: 2509.0.0

Added

  • Support for SELFDESTRUCT.

Changed

  • Emulated EVM heap memory accesses of zero length are never out of bounds.
  • Switched to newer and cheaper storage syscalls (omits reads and writes of 0 values).

Fixed

  • Introduced a workaround avoiding compiler crashes caused by a bug in LLVM affecting SDIV.
  • An off-by-one bug affecting SDIV overflow semantics.

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

v0.4.1

08 Oct 12:20
2090830

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev: 2503.0.1

Changed

  • The ast output is no longer pruned in standard JSON mode (required for foundry).
  • Support standard_json.output_selection to also look at per file settings.

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

v0.4.0

06 Oct 07:20
a57352f

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev: 2503.0.1

Changed

  • Remove the broken --llvm-ir mode.
  • Remove the unused fallback for size optimization setting.
  • Unlinked contract binaries are emitted as raw ELF objects.

Added

  • Line debug information per YUL builtin and for if statements.
  • Column numbers in debug information.
  • Support for the YUL optimizer details in the standard json input definition.
  • The revive-explorer compiler utility.
  • revive-yul: The AST visitor interface.
  • The --link deploy time linking mode.

Fixed

  • The debug info source file matches the YUL path in --debug-output-dir, allowing tools to display the source line.
  • Incosistent type forwarding in JSON output (empty string vs. null object).
  • The solc automatic import resolution.
  • Compiler panic on missing libraries definition.

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

v0.3.0

28 Jun 10:47
ed60869

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev: 2503.0.1

Fixed

  • llvm-context: Bugfix the SAR YUL builtin translation.
  • runtime-api: Add the missing memset builtin.
  • npm package: Bugfix the exports field defined in the package.json.

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

v0.2.0

03 Jun 13:56
e94432e

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev: 2503.0.1

Changed

  • Removed the license printer from the resolc binary.
  • EVM bytecode is no longer requested from solc (except in test utils) leading to less compilation work in the pipeline.

Fixed

  • solc-json-interface: Serializing of any custom key in the JSON input is only skipped if not provided.
  • npm package resolution no longer fails with an 'ERR_PACKAGE_PATH_NOT_EXPORTED' error for packages defining exports fields in the package.json.

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

v0.1.0

27 May 10:15
4d659ac

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev: 2503.0.1

Added

  • Add the PolkaVM heap size, stack size and debug info CLI compiler options to the standard JSON settings. This makes the standard JSON input succint for reproducible builds.

Changed

  • Supported polkadot-sdk version is now 2503.0.1
  • The emsdk version is now 4.0.9

Fixed

llvm-18.1.8-revive.af39d50

21 May 07:17
af39d50

Choose a tag to compare

LLVM is a dependency of revive. The LLVM releases are used by our CI to build revive.

v0.1.0-dev.16

08 May 13:56
0421869

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev:c29e72a8628835e34deb6aa7db9a78a2e4eabcee

Added

  • Move the npm package from paritytech/js-revive, into this repo. The package @parity/resolc will be deployed to npm for each release.
  • Support for solc v0.8.30

Changed

  • By default, heavy size optimizations are applied.

Fixed

  • @parity/resolc: The solc dependency package is constrained to the latest supported version, preventing breaking the package ever time a new solc package was released.
  • The resolc npm package no longer ignores the optimizer settings

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

v0.1.0-dev.15

08 May 12:28
32f55b9

Choose a tag to compare

Changelog

This is a development pre-release.

Supported polkadot-sdk rev:c29e72a8628835e34deb6aa7db9a78a2e4eabcee

Added

  • Move the npm package from paritytech/js-revive, into this repo. The package @parity/resolc will be deployed to npm for each release.
  • Support for solc v0.8.30

Changed

  • By default, heavy size optimizations are applied.

Fixed

  • @parity/resolc: The solc dependency package is constrained to the latest supported version, preventing breaking the package ever time a new solc package was released.
  • The resolc npm package no longer ignores the optimizer settings

Note for macOS Users

The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.

llvm-18.1.8-revive.e3a9c95

07 May 13:11
e3a9c95

Choose a tag to compare

LLVM is a dependency of revive. The LLVM releases are used by our CI to build revive.