Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bytecode compare runs with two-stage compilation #15063

Open
cameel opened this issue Apr 26, 2024 · 0 comments
Open

Bytecode compare runs with two-stage compilation #15063

cameel opened this issue Apr 26, 2024 · 0 comments
Labels
medium effort Default level of effort medium impact Default level of impact must have Something we consider an essential part of Solidity 1.0. testing 🔨
Milestone

Comments

@cameel
Copy link
Member

cameel commented Apr 26, 2024

Similar to #13583, we should have a bytecode compare run to ensure that two-stage compilation produces output identical to compiling everything in one go.

We're especially interested in the pattern where the optimization is only performed in the second step, that we will be recommending as a way to parallelize compilation. Such compilation should not only produce the same bytecode but also metadata.

Currently two-stage compilation is covered only by the ~via_ir_equivalence test, but if this pattern is to become more widespread, we need more confidence that there are no issues with it. Also, this command-line test does compilation in the first stage, which is not exactly the same pattern. We might actually want to extend that test to cover more patterns.

@cameel cameel added testing 🔨 medium effort Default level of effort medium impact Default level of impact must have Something we consider an essential part of Solidity 1.0. labels Apr 26, 2024
@cameel cameel added this to the 0.8.26 milestone Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
medium effort Default level of effort medium impact Default level of impact must have Something we consider an essential part of Solidity 1.0. testing 🔨
Projects
Development

No branches or pull requests

1 participant