Skip to content

Commit e0ced3c

Browse files
authored
chore: v108 release prep (#3689)
1 parent afc2293 commit e0ced3c

12 files changed

Lines changed: 89 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
Because this is workspace with multi libraries, tags will be simplified, and with this document you can match version of project with git tag.
22

3+
# v108
4+
date: 19.05.2026
5+
6+
Prep for Amsteradam, bal-devnet-7 version (EIP-8037)
7+
8+
* `revm-primitives`: 23.0.0 -> 24.0.0 (⚠ API breaking changes)
9+
* `revm-bytecode`: 10.0.0 -> 11.0.0 (⚠ API breaking changes)
10+
* `revm-state`: 11.0.1 -> 12.0.0 (⚠ API breaking changes)
11+
* `revm-database-interface`: 11.0.1 -> 11.1.0 (✓ API compatible changes)
12+
* `revm-context-interface`: 17.0.1 -> 18.0.0 (⚠ API breaking changes)
13+
* `revm-context`: 16.0.1 -> 17.0.0 (⚠ API breaking changes)
14+
* `revm-database`: 13.0.1 -> 14.0.0 (✓ API compatible changes)
15+
* `revm-interpreter`: 35.0.1 -> 36.0.0 (⚠ API breaking changes)
16+
* `revm-precompile`: 34.0.0 -> 35.0.0 (⚠ API breaking changes)
17+
* `revm-handler`: 18.1.0 -> 19.0.0 (⚠ API breaking changes)
18+
* `revm-inspector`: 19.0.0 -> 20.0.0 (⚠ API breaking changes)
19+
* `revm-statetest-types`: 17.0.1 -> 18.0.0 (✓ API compatible changes)
20+
* `revm`: 38.0.0 -> 39.0.0 (✓ API compatible changes)
21+
* `revme`: 15.0.0 -> 16.0.0 (✓ API compatible changes)
22+
323
# v107
424
date: 17.04.2026
525

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,16 @@ default-members = ["crates/revm"]
4141

4242
[workspace.dependencies]
4343
# revm
44-
revm = { path = "crates/revm", version = "38.0.1", default-features = false }
44+
revm = { path = "crates/revm", version = "39.0.0", default-features = false }
4545
primitives = { path = "crates/primitives", package = "revm-primitives", version = "24.0.0", default-features = false }
4646
bytecode = { path = "crates/bytecode", package = "revm-bytecode", version = "11.0.0", default-features = false }
47-
database = { path = "crates/database", package = "revm-database", version = "13.1.0", default-features = false }
47+
database = { path = "crates/database", package = "revm-database", version = "14.0.0", default-features = false }
4848
database-interface = { path = "crates/database/interface", package = "revm-database-interface", version = "11.1.0", default-features = false }
4949
state = { path = "crates/state", package = "revm-state", version = "12.0.0", default-features = false }
5050
interpreter = { path = "crates/interpreter", package = "revm-interpreter", version = "36.0.0", default-features = false }
5151
inspector = { path = "crates/inspector", package = "revm-inspector", version = "20.0.0", default-features = false }
5252
precompile = { path = "crates/precompile", package = "revm-precompile", version = "35.0.0", default-features = false }
53-
statetest-types = { path = "crates/statetest-types", package = "revm-statetest-types", version = "17.0.2", default-features = false }
53+
statetest-types = { path = "crates/statetest-types", package = "revm-statetest-types", version = "18.0.0", default-features = false }
5454
context = { path = "crates/context", package = "revm-context", version = "17.0.0", default-features = false }
5555
context-interface = { path = "crates/context/interface", package = "revm-context-interface", version = "18.0.0", default-features = false }
5656
handler = { path = "crates/handler", package = "revm-handler", version = "19.0.0", default-features = false }

MIGRATION_GUIDE.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,58 @@
11

2+
# v108 tag (revm v39.0.0)
3+
4+
### EIP-8037 Amsterdam — bal-devnet-7 ([#3667](https://github.com/bluealloy/revm/pull/3667))
5+
* `Cfg`, `Host`, `LocalContextTr` gained required `cpsb()`. `LocalContextTr` also gained `set_cpsb`.
6+
* `InitialAndFloorGas`: `initial_total_gas` / `eip7702_reservoir_refund` removed; `initial_regular_gas` / `state_refund` added.
7+
* `ResultGas::state_gas_spent` removed — use `state_gas_spent_final`.
8+
* New struct fields (break literal construction): `LocalContext.cpsb`, `CallInputs.charged_new_account_state_gas`, `CallOutcome.charged_new_account_state_gas`, `PrecompileOutput.refill_amount`.
9+
* `GasParams` accessors (`sstore_state_gas`, `new_account_state_gas`, `code_deposit_state_gas`, `create_state_gas`, `tx_eip7702_per_empty_account_cost`, `tx_eip7702_auth_refund`, `initial_tx_gas`) each gained one CPSB param. `tx_eip7702_per_auth_state_gas` and `split_eip7702_refund` removed (also dropped from `GasId`).
10+
* `calculate_initial_tx_gas` 6→7 params; `calculate_initial_tx_gas_for_tx` 2→3; `validate_initial_tx_gas` 5→6; `build_result_gas` 2→3; `apply_auth_list` 4→3; `initial_gas_and_reservoir` 2→3.
11+
* `Handler::last_frame_result` trait method 2→3 params. `return_create` 5→4 params and 2→1 generics.
12+
13+
### JournalTr restructure ([#3663](https://github.com/bluealloy/revm/pull/3663))
14+
* New required methods `db_and_state` / `db_and_state_mut` (no default).
15+
* `JournalExt` now requires `JournalTr` as supertrait and is no longer dyn-compatible. `evm_state` / `evm_state_mut` removed.
16+
17+
### Instructions return `Result` ([#3558](https://github.com/bluealloy/revm/pull/3558))
18+
* Opcode fns now return `InstructionExecResult` instead of `()`.
19+
* New `InstructionResult::Suspend` variant (update exhaustive matches).
20+
* `InstructionResult::is_error` / `InterpreterResult::is_error` deprecated.
21+
22+
### Split instruction & gas tables ([#3561](https://github.com/bluealloy/revm/pull/3561))
23+
* `Instruction::new` 2→1 param; `Instruction::static_gas` removed.
24+
* `InstructionProvider` gained required `gas_table(&self) -> &GasTable`.
25+
* `EthInstructions`: no longer struct-literal constructible (`instruction_table` field removed). `new` 2→3 params; `insert_instruction` 2→3.
26+
* `Interpreter::step` / `run_plain` / `run_plain_as_output` 2→3 params; `inspect_instructions` 4→5.
27+
* `interpreter::instruction_table_gas_changes_spec` removed.
28+
29+
### Reservoir in OOG constructors ([#3580](https://github.com/bluealloy/revm/pull/3580))
30+
* `Gas::new_spent` removed.
31+
* `InterpreterResult::new_oog`, `CallOutcome::new_oog`, `CreateOutcome::new_oog`, `FrameResult::new_call_oog`, `FrameResult::new_create_oog` each gained a trailing `reservoir` param.
32+
33+
### SpecId cleanup ([#3593](https://github.com/bluealloy/revm/pull/3593), [#3649](https://github.com/bluealloy/revm/pull/3649))
34+
* `num_enum` dropped — use the manual `TryFrom<u8>`. New `SpecId::NEXT` constant.
35+
* Variants removed: `FRONTIER_THAWING`, `DAO_FORK`, `CONSTANTINOPLE`, `MUIR_GLACIER`, `ARROW_GLACIER`, `GRAY_GLACIER` (with their `name::*` consts).
36+
* Discriminants of the remaining variants shifted (e.g. `HOMESTEAD` 2→1, `AMSTERDAM` 20→14) — fix any `as u8` / pointer-cast usage.
37+
38+
### `op-revm` removed ([#3568](https://github.com/bluealloy/revm/pull/3568))
39+
Moved to `ethereum-optimism/optimism` (`rust/op-revm`). Update dependency paths.
40+
41+
### Other
42+
* `Bytecode::new_analyzed` is now `unsafe` ([#3557](https://github.com/bluealloy/revm/pull/3557)) — no PUSH-padding validation.
43+
* `OpCode::new_unchecked` deprecated ([#3566](https://github.com/bluealloy/revm/pull/3566)).
44+
* `BalError` ([#3619](https://github.com/bluealloy/revm/pull/3619)): `AccountNotFound` / `SlotNotFound` are now struct variants; new `InvalidAccountId` variant; discriminants no longer stable.
45+
* `StorageBal::get` 2→3 params; `get_bal_writes` 1→2.
46+
* `Account.original_info` pub field removed (now private — use accessors) ([#3590](https://github.com/bluealloy/revm/pull/3590)).
47+
* `MemoryTr::limit_reached` 2→1 param ([#3599](https://github.com/bluealloy/revm/pull/3599)).
48+
* CALL handlers unified ([#3626](https://github.com/bluealloy/revm/pull/3626)): `contract::call_code` / `delegate_call` / `static_call` removed — use `contract::call::<KIND, _, _>`. `contract::create` swapped const-generic / type-generic order.
49+
* `MemoryExtensionResult` enum removed ([#3646](https://github.com/bluealloy/revm/pull/3646)).
50+
* Removed: `Stack::pop_unsafe`, `Stack::top_unsafe`, `Interpreter::step_dummy`.
51+
* Macros removed: `resize_memory!`, `as_usize_or_fail_ret!`, `as_isize_saturated!`, `berlin_load_account!`.
52+
* `LoadError` variant discriminants swapped (`DBError` 0→1, `ColdLoadSkipped` 1→0).
53+
* `GasParams::get` and `log_cost` no longer `const fn` ([#3608](https://github.com/bluealloy/revm/pull/3608)).
54+
* `revm_precompile::blake2::algo` module + `SIGMA` / `IV` consts removed ([#3609](https://github.com/bluealloy/revm/pull/3609)).
55+
256
# v107 tag (revm v38.0.0)
357

458
* `Handler::first_frame_input` ([#3578](https://github.com/bluealloy/revm/pull/3578)): `init_and_floor_gas: &InitialAndFloorGas` param replaced by `reservoir: u64`. Compute via `InitialAndFloorGas::initial_gas_and_reservoir(tx_gas_limit, tx_gas_limit_cap, is_eip8037) -> (gas_limit, reservoir)`.

bins/revme/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
## [15.0.1](https://github.com/bluealloy/revm/compare/revme-v15.0.0...revme-v15.0.1) - 2026-05-19
10+
## [16.0.0](https://github.com/bluealloy/revm/compare/revme-v15.0.0...revme-v16.0.0) - 2026-05-19
1111

1212
### Other
1313

bins/revme/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "revme"
33
description = "Rust Ethereum Virtual Machine Executable"
4-
version = "15.0.1"
4+
version = "16.0.0"
55
authors.workspace = true
66
edition.workspace = true
77
keywords.workspace = true

crates/database/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
## [13.1.0](https://github.com/bluealloy/revm/compare/revm-database-v13.0.1...revm-database-v13.1.0) - 2026-05-19
10+
## [14.0.0](https://github.com/bluealloy/revm/compare/revm-database-v13.0.1...revm-database-v14.0.0) - 2026-05-19
1111

1212
### Added
1313

crates/database/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "revm-database"
33
description = "Revm Database implementations"
4-
version = "13.1.0"
4+
version = "14.0.0"
55
authors.workspace = true
66
edition.workspace = true
77
keywords.workspace = true

crates/revm/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
## [38.0.1](https://github.com/bluealloy/revm/compare/revm-v38.0.0...revm-v38.0.1) - 2026-05-19
10+
## [39.0.0](https://github.com/bluealloy/revm/compare/revm-v38.0.0...revm-v39.0.0) - 2026-05-19
1111

1212
### Other
1313

crates/revm/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "revm"
33
description = "Revm - Rust Ethereum Virtual Machine"
4-
version = "38.0.1"
4+
version = "39.0.0"
55
authors.workspace = true
66
edition.workspace = true
77
keywords.workspace = true

0 commit comments

Comments
 (0)