Conversation
CodSpeed Performance ReportMerging #2545 will not alter performanceComparing Summary
|
|
Change is simple but a lot of CI failed for some other reasons |
| alloy-eip2930 = { version = "0.2.1", default-features = false } | ||
| alloy-eip7702 = { version = "0.6.1", default-features = false } | ||
| alloy-primitives = { version = "1.1.2", default-features = false } | ||
| alloy-primitives = { version = "1.1.2", default-features = false, features = ["sha3-keccak"]} |
There was a problem hiding this comment.
cc @DaniPopes, in Foundry we are using asm-keccak.
Looking at the benchmark: https://github.com/DaniPopes/bench-keccak256 it makes sense to me to continue using it in the context of Foundry.
That said, given the limited support I can imagine it is reasonable not to be a default for Revm.
Does it make sense if we request this to be configurable using flags in Revm?
There was a problem hiding this comment.
the default with no features is tiny-keccak, and asm-keccak has the highest priority: https://github.com/alloy-rs/core/blob/7fbd34b431d8f8593f7fb6500056ca9a62d34917/crates/primitives/src/utils/mod.rs#L193
so there is no change for foundry here
There was a problem hiding this comment.
Thanks! That makes sense
|
hi @rakita , actually this PR is a breaking change. In alloy-primitives, if "native-keccak" is enabled, and none of "tiny-keccak" / "sha3-keccak" is enabled, then it will choose "native-keccak". After this PR, since here we always use "sha3-keccak", it is no longer possible to use "native-keccak". So maybe we'd better expose "revm/sha3-keccak" as a feature flag, who wants to use it can enable it. Thanks! |
|
@lispc I see, lets do exactly what you propose. |
* chore(test): preserve order of fields in json fixtures (bluealloy#2541) * feat: transact multi tx (bluealloy#2517) * chore: remove default capacity on journal reverts * wip multi tx exec support * wip * API changes * wip * fix compilation * some cleanup,introduce additional bench * cleanup and docs * fix op-revm, add transact-multi bench * bump criterion * add balance incr/decr and simplify calls to journal * add transact_multi bench * add journal entry for deduct_caller fn * cleanup * rm ResultAndState and fix tests * clippy * cheatcode example fix * rm cleanup after transact * cleaup on inner journal * cleanup on storage slot warm marking * cleanup unneded structs * fix discard bug * typo * fix benches * remove cloning of tx * rm with_capacity * clone journal * use mem::take * skip cloning * remove history entries * rm println * drain journal * bump testdata suite * use replay in bench * fix tests * cleanup and refactor, call discard_tx always * ci: remove concurrency from bench (bluealloy#2542) * feat: expand timestamp/block_number to u256 (bluealloy#2546) * chore: use sha3 by default (bluealloy#2545) * refactore: Add InstructionContext instead of Host and Interpreter (bluealloy#2548) * refac: extract `InstructionContext` for `Interpreter` and `Host` * refac: move `InstructionContext` out of main loop * refac: extract `instructions::context` mod * chore: drop redundant `Host` bound * remove additional ref to context * cleanup, remove some Host restraints * small cleanup --------- Co-authored-by: sergey-melnychuk <sergey-melnychuk@users.noreply.github.com> * feat: Config blob basefee fraction (bluealloy#2551) * feat: Config blob basefee fraction * fix test * chore: add dot to trigger ci (bluealloy#2552) * chore: simplify Interpreter loop (bluealloy#2544) * chore: check end of interpreter loop with ptr * Use Optional action * cleanup * feat: added TxEnv::new_bench() add util function (bluealloy#2556) * bench: add gas-cost-estimator selected bytecodes (bluealloy#2555) * bench: add gas-cost-estimator selected bytecodes * add gas cost estimation to codspeed bench * chore(cfg): add tx_chain_id_check fields. Optimize effective gas cost calc (bluealloy#2557) * cfg: add tx_chain_id_check fields. Optimize effective gas cost calc * cleanup logic * chore: ContextTr rm *_ref, and add *_mut fn (bluealloy#2560) * refactor: unify calling of journal account loading (bluealloy#2561) * docs: fix for eth tests in revme.md (bluealloy#2559) * docs: temporary fix for eth tests in revme.md * Update book/src/revme.md --------- Co-authored-by: rakita <rakita@users.noreply.github.com> * chore(docs): context crate lints (bluealloy#2565) * chore(docs): context crate lints * fix doc check * chore(docs): add lints to database-interface and op-revm crates (bluealloy#2568) * feat(database): Implement DatabaseRef for State (bluealloy#2570) * feat(database): Implement DatabaseRef for State * Fix clippy * Adjust to review * feat(Osaka): EIP-7825 tx limit cap (bluealloy#2575) * feat(Osaka): EIP-7825 tx limit cap * use const value * chore: Avoid clone before converting ref BundleAccount to CacheAccount (bluealloy#2574) * chore: Avoid clone before converting ref BundleAccount to CacheAccount * Bring back the none ref conversion * chore(op-revm): impl type alias for Default OpEvm (bluealloy#2576) * chore: support functions for eip7918 (bluealloy#2579) * wip blob * chore: support functions for eip7918 * deps: explicitly bump `auto_impl` (bluealloy#2583) * chore: use iter_batched for revme benches (bluealloy#2584) * fix(multitx): Add local flags for create and selfdestruct (bluealloy#2581) * fix(multitx): Add local flags for create and selfdestruct * fix tests * add test for selfdestruct * add selfdestruct crate test * fix zepter * feat: add with_caller for system_transact (bluealloy#2587) * bump: tag v75 revm v24.0.1 (bluealloy#2563) (bluealloy#2589) * refactor: unify calling of journal account loading * bump: tag v75 revm v24.0.1 * chore: release (bluealloy#2577) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * bump: tag v76 revm v25.0.0 (bluealloy#2590) * feat(InspectEvm): add inspect_finalize method for tx+inspector with state (bluealloy#2593) * add of inspect_finalize * add comment --------- Co-authored-by: Toki <toki@MacBook-Pro-de-Toki.local> * feat: add optional priority fee check configuration (bluealloy#2588) * feat: add optional priority fee check configuration * fmt * fmt and cleanup * chore: onlyy skip priority fee check * refactor: use local variable for priority fee check disable flag * clippy * nits * feat: added instruction_result fn in LoopControl trait (bluealloy#2595) * added instruction_result fn * smol fmt * and then * default impl * feat: enable P256 in Osaka (bluealloy#2601) * feat: add basic tests for modexp (bluealloy#2603) * feat: change blob_max_count to max_blobs_per_tx (bluealloy#2608) * feat: add Inspector implementation for either::Either (bluealloy#2614) * feat: add Inspector implementation for either::Either Implements Inspector trait for either::Either<L, R> where both L and R implement Inspector. This enables conditional inspector usage where the specific inspector type can be chosen at runtime while maintaining the same interface. Changes: - Add either dependency to inspector Cargo.toml - Create either.rs with Inspector implementation that forwards all method calls to the appropriate variant (Left or Right) - Add either module to lib.rs - Include comprehensive tests verifying the Either type works correctly with the Inspector trait Closes bluealloy#2607 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: resolve clippy warning for default_constructed_unit_structs Remove unnecessary .default() call on unit struct DummyInsp in test. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: run zepter --------- Co-authored-by: Claude <noreply@anthropic.com> * chore: rename `transact` methods (bluealloy#2616) * refactor: rename transact -> transact_one, transact_finalize -> transact * renames * default generic * inspect_tx * ResultAndState * fix * chore: build less stuff in codspeed ci (bluealloy#2620) * chore: make CallInput default 0..0 (bluealloy#2621) * perf: faster JumpTable bits lookup (bluealloy#2618) * perf: improve JumpTable access * use doc comment formatter * fix serialization via manual impl * fix clippy * nits - rename cached->table_ptr * chore(grammar): comments for workflows (bluealloy#2602) * Update zepter.yaml * Update release-plz.yml * feat: add clz opcode (bluealloy#2598) * feat: add clz opcode * chore: add tests for clz * fix: gate clz behind osaka Co-authored-by: rakita <rakita@users.noreply.github.com> * chore: fix count_opcodes test * fix: add special case for zero clz * fix: another special case because of default ruint leading_zeros behavior * fix: use proper specid in test * remove redundant stuff --------- Co-authored-by: rakita <rakita@users.noreply.github.com> * chore(tests): extend test for is_valid jumptable (bluealloy#2622) * ci: rm op-revm from bench (bluealloy#2624) * perf: optimize warm_preloaded_addresses reset (bluealloy#2625) * perf: optimize warm_preloaded_addresses reset * opt warm_precompiles * back to clone_from * check len == len * dbg assert eq * feat(precompile): rug/gmp-based modexp (bluealloy#2596) * feat: rug/gmp-based powmod * chore: use correct imports in gmp modexp * chore: add feature for gmp * Update README.md Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com> * fix: set ABI explicitly for gmp install * fix feature propagation * fix: use gmp not on i686 runners --------- Co-authored-by: rakita <dragan0rakita@gmail.com> Co-authored-by: rakita <rakita@users.noreply.github.com> * fix: change account state to None if NotExisting on insert_account_info (bluealloy#2630) * fix: change account state if NotExisting on insert_account_info * add update_info and update_account_state to DbAccount * chore: build less benchmark binaries (bluealloy#2629) * perf: store coinbase address separately to avoid cloning warm addresses in the common case (bluealloy#2634) * special case coinbase address warming * nits * fix: compare_or_save_testdata sig (bluealloy#2637) * perf: re-use frame allocation (bluealloy#2636) * wip * fix * fix: use Default instead of uninit * fix * chore: clippy * perf: try removing allocs from Default * chore: clippy * new: OutFrame abstraction over a maybe-uninit slot * perf: make SharedMemory::empty not allocate * inline * perf: do the stack thing * rename * perf: share the stack in the evm context * perf: initialize first frame the same way * rm inlines * jump_inner inline always * simplify frame init * cleanup move frame stack outside of run_exec_loop fun * cleanup inspector trait * add box around frame_stack items so we dont allocate a lot more of it * box included for no_std * unbox the init closure * WIP * move frame to evmtr * wip * clippy * fix inspection * some cleanup * cleanup * fix inspector test * cleaup, renames and moving of structs * renames --------- Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> * chore: claud.md (bluealloy#2638) * test: bump alloydb test (bluealloy#2640) * chore: claud.md * test: bump alloydb test * chore: lints for revm-database (bluealloy#2639) * feat(osaka): modexp assume minimal base/mod length of 32 (bluealloy#2613) (bluealloy#2643) * feat: configurable contract size limit (bluealloy#2611) (bluealloy#2642) * feat: configurable contract size limit (bluealloy#2611) * feat(devnet2): double contract size limit * set double value * tests * add initcode limit of 73kb * cleanup * clippy * chore: include local context as generic (bluealloy#2645) * chore: include local context as generic * fmt * feat: remove EOF (bluealloy#2644) * feat: remove EOF * remove more of eof code * fix test * remove tracer section and fn depth * docs * inline functions * clippy doc * chore: bump all deps (bluealloy#2647) * chore: bump all deps * propagate serde * docs: lints handler inspector interpreter (bluealloy#2646) * docs: lints for revm-handler * docs: lints for interpreter and inspector * docs for instructions * fmt * Add missing documentation to interpreter crate Added comprehensive documentation to resolve all clippy missing-docs warnings: - Module documentation for instructions modules - Function documentation for all instruction implementations - Struct field documentation for Interpreter - Trait and method documentation for interpreter types - Associated type documentation - Debug implementation for EthInterpreter All 154+ clippy warnings have been resolved to achieve 0 warnings. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix compilation error in TracerEip3155 Debug implementation Remove references to deleted fields 'section' and 'function_depth' from the Debug implementation, matching the changes from commit 1c0d770 that removed EOF support. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> * feat: add fallible conversion from OpHaltReason to HaltReason (bluealloy#2649) * chore: lints for examples (bluealloy#2650) * chore: release (bluealloy#2641) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: bump v77 (bluealloy#2651) * fix: call stack_frame.clear() at end (bluealloy#2656) * chore: release (bluealloy#2657) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * bump: tag v78 revm v26.0.1 (bluealloy#2658) * fix: implement `PartialEq` for `JumpTable` correctly (bluealloy#2654) * fix: implement PartialEq for JumpTable correctly * fix: implement PartialEq for JumpTable correctly * fmt * chore: fix typo (bluealloy#2660) * feat: optional_eip3541 (bluealloy#2661) * feat: optional_eip3541 * fmt * feat: implement `Transaction` for `Either` (bluealloy#2662) * feat: impl tx for either * fix bounds --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> * docs: fix copy-pasted inner doc comments (bluealloy#2663) * refactor: use TxEnv::builder (bluealloy#2652) * chore: lints for examples * feat: Use TxEnv builder * wip optx builder * builder for OpTx * compile * fix parts of it * revert runner changes * fix clippy * refactor: statetest runner cleanup (bluealloy#2665) * refactor: statetest runner cleanup * move function to statetest-types * clippy * docs: inline documentation of revm top modules (bluealloy#2666) This unifies the documentation of all revm crates into the `revm` documentation. Main benefit is the searchbox of the `revm` crate actually search into all crates. * test(op/handler): verify caller account is touched by zero value transfer (bluealloy#2669) * chore: cargo clippy --fix --all (bluealloy#2671) * chore: cargo +nightly clippy --fix --all * clippy second try * clippy in tests * feat: implement Database traits for either::Either (bluealloy#2673) * feat: implement Database traits for either::Either Adds Database, DatabaseCommit, and DatabaseRef trait implementations for the either::Either type, allowing it to be used as a database abstraction that can hold one of two different database types. * zepter * feat: blake2 avx2 (bluealloy#2670) * feat: blake2 avx2 * cleanup * clippy * cleanup * clippy * runtime check * test * test * test * fix compilation * cleanup * chore: release (bluealloy#2659) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * bump: tag v79 revm v27.0.0 (bluealloy#2680) * fix: OpTransactionBuilder dont override envelope (bluealloy#2681) * fix: OpTransactionBuilder dont override envelope * relax builder for known tx type * bump: v80 revm v27.0.1 (bluealloy#2683) * bump: v80 revm v27.0.1 * main changelog * docs: fix in pre_execution.rs about nonce bump for CREATE (bluealloy#2684) * feat: add custom precompile with journal access example (bluealloy#2677) * feat: add custom precompile with journal access example This example demonstrates how to create a custom precompile that can access and modify the journal (state). Key features: - CustomPrecompileProvider that extends EthPrecompiles - Precompile at address 0x0100 with journal access - Storage read/write operations using journal.sload/sstore - Balance transfers using journal.transfer - Proper gas accounting and error handling The example shows how to integrate custom precompiles with existing Ethereum precompiles and provides clear documentation on usage patterns. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * follow up * fix: resolve compilation errors and apply clippy suggestions in custom precompile journal example - Fix Handler::mainnet() API usage by using MainnetHandler::default() - Add missing imports for ContextSetters, EVMError, and InvalidTransaction - Fix output.data() pattern matching from optional to direct access - Add proper type annotations with error type alias - Correct mutable borrowing patterns for database access - Apply clippy suggestions for inline format args - Ensure clean compilation with no warnings 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * style: apply cargo fmt to custom precompile journal example - Format multi-line println\! statements to single lines where appropriate - Ensure consistent code formatting across the codebase 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> * docs: minor fixes (bluealloy#2686) * docs: document external state transitions for EIP-4788 and EIP-2935 (bluealloy#2678) * docs(book): document external state transitions for EIP-4788 and EIP-2935 * Update SUMMARY.md * docs: add rustdoc about external state transitions for EIP-2935 and EIP-4788 * Update system_call.rs * Update system_call.rs * Update external_state_transitions.md * chore: add PartialEq u8 (bluealloy#2688) * fix(inspector): revert pointer before calling step_end (bluealloy#2687) * fix(inspector): revert pointer before calling step_end * test that opcode will not panic * bump: tag v81 revm v27.0.1 (bluealloy#2689) * docs: fix minor typo (bluealloy#2672) * docs: bump changelog for v81 (bluealloy#2691) * fix typo: Rename is_created_globaly to is_created_globally (bluealloy#2692) * Update inner.rs * Update entry.rs * test: add comprehensive tests for TxEnvBuilder (bluealloy#2690) * test: add comprehensive tests for TxEnvBuilder Add comprehensive test coverage for TxEnvBuilder including: - Valid configurations for all transaction types (Legacy, EIP-2930, EIP-1559, EIP-4844, EIP-7702) - Error cases for missing required fields - build_fill() method auto-filling behavior - Transaction type derivation logic - Contract creation transactions - Custom transaction types - Method chaining verification Total: 24 new tests covering all build() and build_fill() scenarios 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * cargo fmt --------- Co-authored-by: Claude <noreply@anthropic.com> * chore: use c-kzg precompute value 8 (bluealloy#2698) * fix(Inspector): call_end not calle on first call fast return (bluealloy#2697) * chore: incorrect StorageKey and StorageValue parameter order in burntpix benchmark (bluealloy#2704) * refactor: simplify gas calculations by introducing a used() method (bluealloy#2703) * refactor: simplify gas calculations by introducing a used() method * fix(gas): update used() method to prevent underflow by using saturating_sub --------- Co-authored-by: megakabi <jakevin@megatechnology.com> * chore: release (bluealloy#2682) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * bump: tag v82 revm v27.0.3 (bluealloy#2710) * feat(migrate-to-v82): fix fairblock address, disable cancun fork support in e2e tests --------- Co-authored-by: rakita <rakita@users.noreply.github.com> Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Co-authored-by: sergey-melnychuk <sergey-melnychuk@users.noreply.github.com> Co-authored-by: Ishika Choudhury <117741714+Rimeeeeee@users.noreply.github.com> Co-authored-by: Johns Gresham <johnsgresham@gmail.com> Co-authored-by: cakevm <cakevm@proton.me> Co-authored-by: 0xDmtri <0xDmtri@protonmail.com> Co-authored-by: Roman Krasiuk <rokrassyuk@gmail.com> Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Toki <105550481+gitToki@users.noreply.github.com> Co-authored-by: Toki <toki@MacBook-Pro-de-Toki.local> Co-authored-by: Udoagwa Franklin <54338168+frankudoags@users.noreply.github.com> Co-authored-by: Soubhik Singha Mahapatra <160333583+Soubhik-10@users.noreply.github.com> Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com> Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Samuel Onoja <samiodev@icloud.com> Co-authored-by: Coder <161350311+MamunC0der@users.noreply.github.com> Co-authored-by: rakita <dragan0rakita@gmail.com> Co-authored-by: Beta <105949605+LevBeta@users.noreply.github.com> Co-authored-by: bernard-wagner <bernard-wagner@users.noreply.github.com> Co-authored-by: Wodann <Wodann@users.noreply.github.com> Co-authored-by: Afounso Souza <drewsmpk@gmail.com> Co-authored-by: Quentin Sabah <quentin.sabah@gmail.com> Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com> Co-authored-by: simonchen-supra <s.chen@supraoracles.com> Co-authored-by: VolodymyrBg <aqdrgg19@gmail.com> Co-authored-by: Kendra Karol Sevilla <smpkdrew@gmail.com> Co-authored-by: leopardracer <136604165+leopardracer@users.noreply.github.com> Co-authored-by: Micke <155267459+reallesee@users.noreply.github.com> Co-authored-by: jakevin <jakevingoo@gmail.com> Co-authored-by: megakabi <jakevin@megatechnology.com>
No description provided.