@@ -28,38 +28,84 @@ resolver = "2"
2828# and we don't rely on it for debugging that much
2929debug = 0
3030
31- # These speed up local tests
32- [profile .dev .package .ethers-solc ]
33- opt-level = 3
31+ # Speed up tests and dev build
32+ [profile .dev .package ]
33+ revm.opt-level = 3
34+ revm-primitives.opt-level = 3
35+ revm-interpreter.opt-level = 3
36+ revm-precompile.opt-level = 3
3437
35- [ profile . dev . package . revm ]
36- opt-level = 3
38+ ruint.opt-level = 3
39+ primitive-types. opt-level = 3
3740
38- # These speed up all forge script related integration tests
39- [profile .test .package .axum ]
40- opt-level = 3
41-
42- # Local "release" mode, more optimized than dev but much faster to compile than release
43- [profile .local ]
44- inherits = " dev"
45- opt-level = 3
46- # Set this to 1 or 2 to get more useful backtraces
47- debug = 0
48- panic = ' unwind'
49- # better recompile times
50- incremental = true
51- codegen-units = 16
41+ axum.opt-level = 3
5242
5343[profile .release ]
54- # Optimize for binary size, but keep loop vectorization
5544opt-level = " s"
56- # Performance optimizations
5745lto = " fat"
58- debug = 0
5946strip = true
6047panic = " abort"
6148codegen-units = 1
6249
50+ [profile .release .package ]
51+ # Optimize all non-workspace packages for speed
52+ "*".opt-level = 3
53+
54+ # Package overrides
55+ foundry-evm.opt-level = 3
56+
57+ ethers-solc.opt-level = 1
58+ foundry-abi.opt-level = 1
59+ mdbook.opt-level = 1
60+ protobuf.opt-level = 1
61+ rusoto_core.opt-level = 1
62+ rusoto_credential.opt-level = 1
63+ rusoto_kms.opt-level = 1
64+ toml_edit.opt-level = 1
65+ trezor-client.opt-level = 1
66+
67+ # Given that the `"*"` above takes precedence over the defaults for build scripts and macros, we
68+ # have to override all of them to reduce compile times
69+ syn.opt-level = 0
70+ prettyplease.opt-level = 0
71+ lalrpop.opt-level = 0
72+
73+ ethers-contract-abigen.opt-level = 0
74+ ethers-contract-abigen-derive.opt-level = 0
75+ async-recursion.opt-level = 0
76+ miette-derive.opt-level = 0
77+ strum_macros.opt-level = 0
78+ enumn.opt-level = 0
79+ clap_derive.opt-level = 0
80+ serde_derive.opt-level = 0
81+ pear_codegen.opt-level = 0
82+ num_enum_derive.opt-level = 0
83+ scale-info-derive.opt-level = 0
84+ parity-scale-codec-derive.opt-level = 0
85+ time-macros.opt-level = 0
86+ phf_macros.opt-level = 0
87+ pin-project-internal.opt-level = 0
88+ auto_impl.opt-level = 0
89+ derive_more.opt-level = 0
90+ rlp-derive.opt-level = 0
91+ impl-trait-for-tuples.opt-level = 0
92+ async-trait.opt-level = 0
93+ tokio-macros.opt-level = 0
94+ tracing-attributes.opt-level = 0
95+ futures-macro.opt-level = 0
96+ thiserror-impl.opt-level = 0
97+ wasm-bindgen-macro-support.opt-level = 0
98+ wasm-bindgen-backend.opt-level = 0
99+
100+ # Local "release" mode, more optimized than dev but much faster to compile than release
101+ [profile .local ]
102+ inherits = " release"
103+ opt-level = 1
104+ lto = " none"
105+ codegen-units = 16
106+ # Empty, clears `profile.release.package`
107+ package = {}
108+
63109[workspace .dependencies ]
64110ethers = { git = " https://github.com/gakonst/ethers-rs" , default-features = false }
65111ethers-addressbook = { git = " https://github.com/gakonst/ethers-rs" , default-features = false }
0 commit comments