Releases: paritytech/revive
llvm-21.1.8.emsdk-5.0.0-revive.7afd3af
LLVM is a dependency of revive. The LLVM releases are used by our CI to build revive.
llvm-21.1.8-revive.59ba21b
LLVM is a dependency of revive. The LLVM releases are used by our CI to build revive.
v1.0.0
Changelog
Supported polkadot-sdk rev: unstable2507
Changed
- Removed the
revive-explorerutility.
Fixed
- OOB access in
calldataloadandcalldatacopyshould always produce zero values instead of consuming all gas. - The superfluous byte swap in
linkersymbol. - Compiling with
--standard-jsonnow compiles to PolkaVM bytecode only for the contracts explicitly requested in theoutputSelection, significantly improving compilation time when none or a subset of files requests bytecode. PR#461 - Compiling with
--standard-jsonnow outputs only the explicitly requested output (e.g.evm.assembly,evm.bytecode,ast, etc.). PR#461
// Example:
{
"settings": {
// ...
"outputSelection": {
"path/to/my/file1.sol": {
// Contracts in this file will generate bytecode.
// Only these fields of the JSON output selection will be in the `contracts` output.
"*": ["abi", "evm.methodIdentifiers", "metadata", "evm.bytecode"],
// Only this field of the JSON output selection will be in the `sources` output.
"": ["ast"]
},
"path/to/my/file2.sol": {
// No contracts in this file will generate bytecode.
"*": ["abi", "evm.methodIdentifiers", "metadata"],
// No `ast` will be in the `sources` output (only the automatically added `id`,
// similar to solc as this is not a configurable output selection).
"": []
},
}
}
}Note for macOS Users
The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.
v0.6.0
Changelog
This is a development pre-release.
Supported polkadot-sdk rev: unstable2507
Added
- The comprehensive revive compiler book documentation page: https://paritytech.github.io/revive/
- Support for solc v0.8.33.
- Support for the
clzYul builtin.
Changed
- Instruct the LLVM backend and linker to
--relax(may lead to smaller contract code size). - Standard JSON mode: Don't forward EVM bytecode related output selections to solc.
- The supported
polkadot-sdkrelease isunstable2507. - The
INVALIDopcode and OOB memory accesses now consume all remaining gas. - Emit the
call_evmanddelegate_call_evmsyscalls for contract calls. - The
revive-runnercan execute arbitrarily large contract blobs. - Set the default PolkaVM stack and heap size values to 128KB.
Fixed:
- The missing
STOPinstruction at the end ofcodeblocks. - The missing bounds check in the internal sbrk implementation.
- The call gas is no longer ignored.
- The
settings.polkavm.memoryConfigobject and its fields are now in camelCase.
Note for macOS Users
The macOS binary is unsigned and it needs to be made runnable using xattr -c resolc-universal-apple-darwin.
v0.5.0
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
0values).
Fixed
- Introduced a workaround avoiding compiler crashes caused by a bug in LLVM affecting
SDIV. - An off-by-one bug affecting
SDIVoverflow 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
Changelog
This is a development pre-release.
Supported polkadot-sdk rev: 2503.0.1
Changed
- The
astoutput is no longer pruned in standard JSON mode (required for foundry). - Support
standard_json.output_selectionto 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
Changelog
This is a development pre-release.
Supported polkadot-sdk rev: 2503.0.1
Changed
- Remove the broken
--llvm-irmode. - 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
ifstatements. - Column numbers in debug information.
- Support for the YUL optimizer details in the standard json input definition.
- The
revive-explorercompiler utility. revive-yul: The AST visitor interface.- The
--linkdeploy 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
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
memsetbuiltin. - 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
Changelog
This is a development pre-release.
Supported polkadot-sdk rev: 2503.0.1
Changed
- Removed the license printer from the
resolcbinary. - 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
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-sdkversion is now2503.0.1 - The
emsdkversion is now4.0.9