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

Investigate long compilation time of long byteocode with solc --evm-version shanghai #148

Closed
danceratopz opened this issue Jun 14, 2023 · 1 comment

Comments

@danceratopz
Copy link
Member

Upon using a newer version of solc and compiling the "long bytecode" test with --evm-version=shanghai, the test took much longer to complete - it actually looked like it had completely hanged. But it does terminate, cf #147.

@danceratopz
Copy link
Member Author

This had nothing to do with solc or its compilation time. This long delay was triggered when test_yul[large] failed due to specifying --evm-version Shanghai to solc. This test case was failed due to the solc compiling "6000" to "5f" (PUSH0), so that the produced bytecode differed from the (hardcoded) expected bytecode.

The delay appears to rather occur in pytest and is probably due to the large and complicated diff that pytest performs on the two very long byte arrays. Indeed, the delay was only visible when pytest was ran with -v (without -v presumably only the start of the byte arrays were diffed).

danceratopz added a commit to danceratopz/execution-spec-tests that referenced this issue Jul 26, 2023
marioevz added a commit that referenced this issue Jul 26, 2023
* tools: update framemwork tests to run with solc v0.8.{20,21}

* docs: update required solc versions

* chore: test solc 0.8.20 and 0.8.21 in ci/cd

* chore: fix test_yul with large bytecode test case cf #148

* tools/tests: use `packaging.version`

---------

Co-authored-by: Mario Vega <marioevz@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant