Skip to content

Commit 54e9abb

Browse files
revert(evm): remove the revmc JIT integration (#227) (#236)
* revert(evm): remove the revmc JIT integration (#227) Removes the optional revmc JIT execution added in #227 (862ef51) together with the LLVM 22 toolchain it pulled into every default build, the Docker image, and CI, plus the apt.llvm.org bootstrap hardening that only existed to serve it (#229, #234, #235). Why: compiled code cannot produce Unzen's per-opcode zk-gas metering (`spec_supports_jit(UNZEN) = false`), and Unzen is active on every shipped network (mainnet since 2026-08-06, hoodi since 2026-06-18, devnet/masaya from genesis), so the JIT can never run for a new block anywhere; pipeline sync never opts in either. What remained was build and maintenance cost with no measured benefit. Kept from #227: the beacon-root override plumbing and the non-zero parent-beacon-root rejection (consensus-relevant riders unrelated to the JIT), and the removal of the `.github/**` paths-ignore so workflow changes still run CI. `transact_raw` keeps driving `TaikoEvmHandler` directly (finalize-before-error on both paths) rather than restoring the pre-#227 `ExecuteEvm`/`InspectEvm` entry points. Verified: `just fmt`, `just clippy`, `just test` (283/283) and `cargo check --workspace --all-features --all-targets --locked`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(cli): reject --jit for re-execute like the node does reth's `re-execute` parses its own `JitArgs` and applies them through `ConfigureEvm::with_jit_support`, which is a no-op for the Taiko config, so `re-execute --jit` would silently run interpreter-only while `node --jit` errors. Share one `reject_jit_args` between the executor builder and the re-execute arm so both fail loudly (review feedback). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 298b37c commit 54e9abb

31 files changed

Lines changed: 113 additions & 1677 deletions

File tree

.github/scripts/check_reth_pin.sh

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,15 @@
55
# coherent while Alethia's reth pin references the exact commit OP pins (see the
66
# reth-optimism-trie note in Cargo.toml); a drifted pin splits the workspace into two
77
# incompatible reth copies.
8-
#
9-
# Also fails on multiple paradigmxyz/revmc revisions: Alethia pins revmc by rev while reth's
10-
# own (unused) `jit` feature declares it by branch, so re-enabling that reth feature would
11-
# otherwise split the graph into two revmc copies silently.
12-
#
13-
# Finally, verifies Alethia's revmc revision equals the one reth's own Cargo.lock pins at our
14-
# reth revision. reth tracks revmc by branch in its manifest, so nothing enforces this at
15-
# build time — a reth bump that forgets to move Alethia's revmc rev would build fine while
16-
# compiled-code semantics silently drift from what upstream tested against.
178
set -euo pipefail
189

19-
single_rev() {
20-
local repo=$1
21-
local revs count
22-
revs=$(grep -oE "github\.com/paradigmxyz/${repo}(\.git)?\?[^\"]*#[0-9a-f]{40}" Cargo.lock | sed 's/.*#//' | sort -u)
23-
count=$(printf '%s' "$revs" | grep -c . || true)
24-
25-
if [ "$count" -ne 1 ]; then
26-
echo "Error: expected exactly one paradigmxyz/${repo} revision in Cargo.lock, found $count:" >&2
27-
printf '%s\n' "$revs" >&2
28-
exit 1
29-
fi
30-
31-
printf '%s' "$revs"
32-
}
33-
34-
reth_rev=$(single_rev reth)
35-
echo "single reth revision in Cargo.lock: $reth_rev"
36-
revmc_rev=$(single_rev revmc)
37-
echo "single revmc revision in Cargo.lock: $revmc_rev"
38-
39-
reth_lock_url="https://raw.githubusercontent.com/paradigmxyz/reth/${reth_rev}/Cargo.lock"
40-
if ! reth_lock=$(curl -fsSL --retry 5 "$reth_lock_url"); then
41-
echo "Error: failed to fetch reth's lockfile from $reth_lock_url" >&2
42-
exit 1
43-
fi
44-
45-
reth_locked_revmc=$(grep -oE 'github\.com/paradigmxyz/revmc(\.git)?\?[^"]*#[0-9a-f]{40}' <<< "$reth_lock" | sed 's/.*#//' | sort -u)
46-
if [ -z "$reth_locked_revmc" ]; then
47-
echo "Error: found no locked revmc revision in $reth_lock_url" >&2
48-
exit 1
49-
fi
10+
revs=$(grep -oE 'github\.com/paradigmxyz/reth\?[^"]*#[0-9a-f]{40}' Cargo.lock | sed 's/.*#//' | sort -u)
11+
count=$(printf '%s' "$revs" | grep -c . || true)
5012

51-
if [ "$revmc_rev" != "$reth_locked_revmc" ]; then
52-
echo "Error: Cargo.lock pins revmc $revmc_rev, but reth $reth_rev locks:" >&2
53-
printf '%s\n' "$reth_locked_revmc" >&2
54-
echo "Keep the revmc rev in Cargo.toml matched to the reth pin's locked revmc." >&2
13+
if [ "$count" -ne 1 ]; then
14+
echo "Error: expected exactly one paradigmxyz/reth revision in Cargo.lock, found $count:" >&2
15+
printf '%s\n' "$revs" >&2
5516
exit 1
5617
fi
5718

58-
echo "revmc revision matches reth's locked revmc"
19+
echo "single reth revision in Cargo.lock: $revs"

.github/scripts/install_llvm.sh

Lines changed: 0 additions & 16 deletions
This file was deleted.

.github/scripts/install_llvm_ubuntu.sh

Lines changed: 0 additions & 108 deletions
This file was deleted.

.github/scripts/tests/install_llvm_ubuntu_test.sh

Lines changed: 0 additions & 166 deletions
This file was deleted.

0 commit comments

Comments
 (0)