Skip to content

Instantly share code, notes, and snippets.

View mablr's full-sized avatar
🚀

Mablr mablr

🚀
View GitHub Profile
@mablr
mablr / foundry-v1.8.4-release-review.md
Last active October 1, 2026 13:31
Foundry v1.8.4 release review

Foundry v1.8.4 release review

Range: v1.8.3 (cae51ad458f6abb64852b7709eb784352429825d) through origin/master at 50af4efe189dc64bad2b75ed6990b835de66c4ae (308 merged PR commits, 1,032 net-changed files, +76,865/−13,876).

Scope note: The open stable/RC workflow work in #16934 and #16982 is outside v1.8.4 scope and does not affect this verdict.

Verdict: READY. v1.8.4 is a broad patch release with substantial changes across EVM execution, tracing and replay, scripting, compiler integration, testing, and CLI behavior. The review found no remaining release blocker. Residual risk comes mainly from the unusually large diff, intentional compatibility changes, and major dependency updates; focused final canaries remain advisable but are not blockers.

Deep-dive outcomes

@mablr
mablr / PLAN.md
Created September 17, 2026 14:09
Foundry to evm2 migration: Ethereum-first design plan and source inventory

Foundry → evm2: Ethereum-first integration design audit

Source audit dated 2026-09-17. Foundry 11ebf0425f55f2e834b4cf2e81fcd7e9760a8f17; pristine evm2 2c8b67f03fb0c86c0c2502d840d2e529bdf4b1a8. Anvil implementation is explicitly deferred. The intended Ethereum completion milestone covers Forge, local Cast execution, Script, Chisel, and their shared tooling. Tempo is a subsequent, separately gated engine port; OP/Base/Monad retain their existing engines.

This is a source-grounded design and implementation plan, not a compatibility certification. No Rust code was changed or tests run for this audit. No prior local PoC implementation or timing is used to establish feasibility. Experimental engine patches are not counted as upstream capabilities. Exact file/line inventories accompany this document.

Assessment: We can begin a native integration, but cannot responsibly promise a small factory replacement or a full-Forge speedup yet. Ordinary Ethereum transactions have a plausible boundary. The critical

@mablr
mablr / network-dispatching-consistency-after-monad-support-introduction.md
Created August 21, 2026 11:30
Network dispatching consistency after Monad support introduction

Network dispatching consistency after Monad support introduction

Context

This audit follows the introduction of first-class Monad support in Foundry and a sequence of focused follow-up PRs intended to tighten network dispatch, isolate Monad-specific state and behavior, and reduce its footprint in generic EVM infrastructure:

Foundry v1.8.0

Foundry v1.8.0 is a testing-heavy release. It ships native symbolic testing, mutation testing, and major fuzzing and invariant improvements, while making isolate mode the default after a series of compatibility fixes. This release also ships the Rust foundryup, expands forge lint with a large set of security and gas detectors, and continues the structured CLI output work across Forge and Cast.

Highlights

Testing, Fuzzing, and Symbolic Execution

Testing is the main theme of v1.8.0. The release expands the ways Forge can find failures, make them reproducible, and turn them into smaller actionable counterexamples.

Decofe Perf PR Benchmark Plan

Static diff triage for deciding which PRs to combine and run through scfuzzbench. The goal is to avoid benchmarking dozens of tiny AI PRs one-by-one.

Run These scfuzzbench Branches

These are the concrete grouped benchmark candidates, in priority order.

1. Invariant campaign steady-state overhead

@mablr
mablr / README.md
Created June 8, 2026 18:33
Foundry PR #15070 follow-up: real invariant campaign source (corpus seed worker fan-out wall-clock + peak RSS benchmark)

Foundry PR #15070 follow-up — real invariant campaign

Real forge invariant project used to measure end-to-end wall-clock and peak RSS of the corpus-seed worker fan-out (companion to the micro-benchmark harness at https://gist.github.com/mablr/b87b9d75f3723b3de8b5796c72331ae2).

Target.sol exposes a large branch surface (1600 independent branch targets, ~3200 EVM edges, split across 8 functions to stay within solc's parser recursion limit) so coverage-guided invariant fuzzing accumulates a sizeable persisted corpus (~370 entries, depth-2000 sequences).

@mablr
mablr / corpus_seed_fanout_bench.rs
Last active June 8, 2026 16:42
Foundry PR 15070 corpus seed fan-out benchmark
use std::{env, hint::black_box};
#[derive(Clone)]
struct CorpusEntry {
tx_seq: Vec<u8>,
cmp_seq: Vec<u8>,
is_favored: bool,
}
#[derive(Clone, Default)]

Some Alloy2.0 Improvements

Alloy v2.0 includes several targeted improvements to the Network trait that make it significantly more ergonomic and versatile. These changes were driven in large part by Foundry's ongoing refactor towards fully generic Network and Evm abstractions, work motivated by Tempo support, which surfaced a some rough edges on workflows fully generic over Network.

Generic Signature Flow

NetworkWallet<N> is now generic over the Network trait, meaning EthereumWallet can be used seamlessly with custom network implementations without requiring a separate wallet type. The required bounds — N::TxEnvelope: From<Signed<N::UnsignedTx>> and N::UnsignedTx: SignableTransaction<Signature>, are placed on the impl rather than on Network itself, so existing custom network implementations are unaffected.

Non-signable transactions (such as Optimism deposit transactions) now return sealed envelopes rather than errors, removing a common source of boilerplate in OP Stack integrat