diff --git a/CHANGELOG.md b/CHANGELOG.md index aa88479..aa3cb80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,14 +6,22 @@ This is a development pre-release. Supported `polkadot-sdk` rev: `2509.0.0` +## v0.5.0 + +This is a development pre-release. + +Supported `polkadot-sdk` rev: `2509.0.0` + ### Added -- Support for `selfdestruct`. +- 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 -- An off-by-one bug cusing incorrect `SDIV` overflow semantics. +- Introduced a workaround avoiding compiler crashes caused by a bug in LLVM affecting `SDIV`. +- An off-by-one bug affecting `SDIV` overflow semantics. ## v0.4.1 diff --git a/Cargo.lock b/Cargo.lock index 0748c12..7e937c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8958,7 +8958,7 @@ dependencies = [ [[package]] name = "resolc" -version = "0.4.1" +version = "0.5.0" dependencies = [ "anyhow", "clap", @@ -9042,7 +9042,7 @@ dependencies = [ [[package]] name = "revive-integration" -version = "0.2.0" +version = "0.3.0" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -9070,7 +9070,7 @@ dependencies = [ [[package]] name = "revive-llvm-builder" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "assert_cmd", @@ -9113,7 +9113,7 @@ dependencies = [ [[package]] name = "revive-runner" -version = "0.2.0" +version = "0.3.0" dependencies = [ "alloy-primitives", "anyhow", @@ -9132,7 +9132,7 @@ dependencies = [ [[package]] name = "revive-runtime-api" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "inkwell", @@ -9163,7 +9163,7 @@ dependencies = [ [[package]] name = "revive-yul" -version = "0.3.1" +version = "0.4.0" dependencies = [ "anyhow", "inkwell", diff --git a/Cargo.toml b/Cargo.toml index f93529c..27498e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,21 +15,21 @@ rust-version = "1.85.0" [workspace.dependencies] lld-sys = { version = "0.1.0", path = "crates/lld-sys" } -resolc = { version = "0.4.0", path = "crates/resolc", default-features = false } +resolc = { version = "0.5.0", path = "crates/resolc", default-features = false } revive-benchmarks = { version = "0.1.0", path = "crates/benchmarks" } revive-build-utils = { version = "0.2.0", path = "crates/build-utils" } revive-builtins = { version = "0.1.0", path = "crates/builtins" } revive-common = { version = "0.2.1", path = "crates/common" } revive-differential = { version = "0.2.0", path = "crates/differential" } revive-explorer = { version = "0.1.0", path = "crates/explore" } -revive-integration = { version = "0.2.0", path = "crates/integration" } +revive-integration = { version = "0.3.0", path = "crates/integration" } revive-linker = { version = "0.2.0", path = "crates/linker" } revive-llvm-context = { version = "0.5.0", path = "crates/llvm-context" } -revive-runner = { version = "0.2.0", path = "crates/runner" } -revive-runtime-api = { version = "0.3.0", path = "crates/runtime-api" } +revive-runner = { version = "0.3.0", path = "crates/runner" } +revive-runtime-api = { version = "0.4.0", path = "crates/runtime-api" } revive-solc-json-interface = { version = "0.4.0", path = "crates/solc-json-interface", default-features = false } revive-stdlib = { version = "0.2.0", path = "crates/stdlib" } -revive-yul = { version = "0.3.1", path = "crates/yul" } +revive-yul = { version = "0.4.0", path = "crates/yul" } hex = "0.4.3" cc = "1.2" diff --git a/crates/integration/Cargo.toml b/crates/integration/Cargo.toml index d32942b..8311f6e 100644 --- a/crates/integration/Cargo.toml +++ b/crates/integration/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revive-integration" -version = "0.2.0" +version = "0.3.0" license.workspace = true edition.workspace = true repository.workspace = true diff --git a/crates/llvm-builder/Cargo.toml b/crates/llvm-builder/Cargo.toml index 2e463d9..4abb8e3 100644 --- a/crates/llvm-builder/Cargo.toml +++ b/crates/llvm-builder/Cargo.toml @@ -6,7 +6,7 @@ authors = [ "Anton Baliasnikov ", "Cyrill Leutwiler ", ] -version = "0.3.0" +version = "0.4.0" license.workspace = true edition.workspace = true repository.workspace = true diff --git a/crates/resolc/Cargo.toml b/crates/resolc/Cargo.toml index 2ddcad5..7a2758c 100644 --- a/crates/resolc/Cargo.toml +++ b/crates/resolc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "resolc" -version = "0.4.1" +version = "0.5.0" license.workspace = true edition.workspace = true repository.workspace = true diff --git a/crates/runner/Cargo.toml b/crates/runner/Cargo.toml index 23ba7e7..6460d45 100644 --- a/crates/runner/Cargo.toml +++ b/crates/runner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revive-runner" -version = "0.2.0" +version = "0.3.0" license.workspace = true edition.workspace = true repository.workspace = true diff --git a/crates/runtime-api/Cargo.toml b/crates/runtime-api/Cargo.toml index 2c632d0..84d56ff 100644 --- a/crates/runtime-api/Cargo.toml +++ b/crates/runtime-api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "revive-runtime-api" -version = "0.3.0" +version = "0.4.0" license.workspace = true edition.workspace = true repository.workspace = true diff --git a/crates/yul/Cargo.toml b/crates/yul/Cargo.toml index 82dc053..6afb0ea 100644 --- a/crates/yul/Cargo.toml +++ b/crates/yul/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "revive-yul" description = "The revive YUL parser library." -version = "0.3.1" +version = "0.4.0" authors.workspace = true license.workspace = true edition.workspace = true diff --git a/js/resolc/package.json b/js/resolc/package.json index 145f65d..dea0c78 100644 --- a/js/resolc/package.json +++ b/js/resolc/package.json @@ -1,7 +1,7 @@ { "name": "@parity/resolc", "license": "Apache-2.0", - "version": "0.4.1", + "version": "0.5.0", "author": "Parity (https://parity.io)", "module": "index.ts", "types": "./dist/index.d.ts", diff --git a/package-lock.json b/package-lock.json index d7a06f9..3939dc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ }, "js/resolc": { "name": "@parity/resolc", - "version": "0.4.1", + "version": "0.5.0", "license": "Apache-2.0", "dependencies": { "@types/node": "^22.9.0", @@ -1585,6 +1585,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz", "integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==", "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.32.1", "@typescript-eslint/types": "8.32.1", @@ -1752,6 +1753,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2361,6 +2363,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz", "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -2519,6 +2522,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@ethersproject/abi": "5.8.0", "@ethersproject/abstract-provider": "5.8.0", @@ -4393,6 +4397,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver"