You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We're currently requesting all `evm.bytecode` (and
`evm.deployedBytecode`) output by default. This includes
`evm.bytecode.generatedSources`, introduced in solc 0.8.0, which is a
list of potentially huge Yul AST objects that is completely unused in
Foundry.
Only request the `Compact*` bytecode fields in the defaults.
This cuts down a clean `forge build`:
- from 2:20m to 1:30m (-36%) on
[superform-xyz/superform-core](https://github.com/superform-xyz/superform-core)
- from 1:39m to 1:29m (-10%) on
[sablier-labs/v2-core](https://github.com/sablier-labs/v2-core)
- from 54.5s to 45.7s (-20%) on
[sablier-labs/v2-core](https://github.com/sablier-labs/v2-core)
(FOUNDRY_PROFILE=lite which is `optimizer = false`)
It may have a larger impact when compiling with >=0.8.28, because the
cache storing this data was removed in that version
(argotorg/solidity@3c5e46b),
or when optimizations are disabled as more IR will be generated and
output to JSON.
I verified that these inputs are accepted by solidity 0.4.14, 0.6.3,
0.8.28, and vyper 0.3.10, 0.4.0. All of these outputs are supported by
all of them except for vyper which needs to be normalized.
Drive-by: buffer stdin when writing to the solc subprocess.
0 commit comments