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

eof: new contract creation #15512

Merged
merged 1 commit into from
Oct 30, 2024
Merged

Conversation

rodiazet
Copy link
Contributor

@rodiazet rodiazet commented Oct 14, 2024

Depends on #15456. Merged
Depends on #15521 Dropped
Depends on: #15529 Merged
Depends on #15535 Merged
Depends on #15536 Merged

Copy link

Thank you for your contribution to the Solidity compiler! A team member will follow up shortly.

If you haven't read our contributing guidelines and our review checklist before, please do it now, this makes the reviewing process and accepting your contribution smoother.

If you have any questions or need our help, feel free to post them in the PR or talk to us directly on the #solidity-dev channel on Matrix.

@rodiazet rodiazet force-pushed the eof-contract-creation branch 4 times, most recently from f8a9ae7 to 947c5dd Compare October 14, 2024 13:36
@cameel cameel added EOF has dependencies The PR depends on other PRs that must be merged first labels Oct 14, 2024
@cameel cameel changed the title Eof contract creation EOF contract creation Oct 14, 2024
Copy link
Member

@cameel cameel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only skimmed through the PR for now. Here's some initial feedback.

My main question would be whether it wouldn't make more sense to deal with loadimmutable/setimmutable in a separate PR first. It's related dataloadn and looks like creation depends on immutables to some extent.

libevmasm/Assembly.cpp Outdated Show resolved Hide resolved
libevmasm/AssemblyItem.h Outdated Show resolved Hide resolved
libsolidity/codegen/ir/IRGenerator.cpp Outdated Show resolved Hide resolved
@rodiazet rodiazet force-pushed the eof-contract-creation branch 2 times, most recently from 6567616 to 82930c3 Compare October 15, 2024 13:06
@cameel cameel removed the has dependencies The PR depends on other PRs that must be merged first label Oct 16, 2024
@rodiazet rodiazet force-pushed the eof-contract-creation branch 2 times, most recently from feeb58b to 75122e0 Compare October 18, 2024 13:23
@rodiazet

This comment was marked as resolved.

@rodiazet rodiazet force-pushed the eof-contract-creation branch 2 times, most recently from 7bde2af to e1840a3 Compare October 18, 2024 13:29
@rodiazet rodiazet changed the title EOF contract creation eof: new contract creation Oct 18, 2024
@rodiazet rodiazet force-pushed the eof-contract-creation branch 3 times, most recently from a200d15 to 107b86e Compare October 18, 2024 14:11
@cameel cameel added the has dependencies The PR depends on other PRs that must be merged first label Oct 18, 2024
libevmasm/Assembly.cpp Outdated Show resolved Hide resolved
libevmasm/SemanticInformation.cpp Show resolved Hide resolved
libevmasm/SemanticInformation.cpp Show resolved Hide resolved
test/libyul/objectCompiler/eof/auxdata_load_store.yul Outdated Show resolved Hide resolved
@rodiazet rodiazet force-pushed the eof-contract-creation branch 5 times, most recently from def54bb to 46af949 Compare October 21, 2024 11:05
@rodiazet rodiazet force-pushed the eof-contract-creation branch 6 times, most recently from e213e0e to 57bcb13 Compare October 24, 2024 15:29
cameel
cameel previously approved these changes Oct 25, 2024
Copy link
Member

@cameel cameel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving, since only a few cosmetic things are left now.

libsolidity/codegen/ir/IRGenerator.cpp Outdated Show resolved Hide resolved
test/libyul/yulSyntaxTests/eof/eofcreate.yul Show resolved Hide resolved
// dup1
// dup1
// dup1
// eofcreate(0)

This comment was marked as resolved.

This comment was marked as resolved.

This comment was marked as resolved.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, I wonder if it wouldn't be better to show sub names like we do for dataOffset/dataSize instead of the numeric container IDs.

So for example in the assembly we would print eofcreate{sub_0} rather than eofcreate{0}.

Though I guess with EOF the ID approach is actually viable because we can't have nesting so maybe the current approach is still good. It's something to consider though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First fixed. I will check the later.

libyul/AsmAnalysis.cpp Outdated Show resolved Hide resolved
libevmasm/AssemblyItem.cpp Outdated Show resolved Hide resolved
Copy link
Member

@cameel cameel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, can be merged as soon as #15536 goes in.

In the meantime... a few more nitpicks :P

libevmasm/AssemblyItem.cpp Outdated Show resolved Hide resolved
libevmasm/AssemblyItem.h Outdated Show resolved Hide resolved
cameel
cameel previously approved these changes Oct 29, 2024
@rodiazet rodiazet force-pushed the eof-contract-creation branch 4 times, most recently from b80ff60 to 4777b33 Compare October 30, 2024 10:13
@cameel cameel removed the has dependencies The PR depends on other PRs that must be merged first label Oct 30, 2024
@cameel
Copy link
Member

cameel commented Oct 30, 2024

#15536 has been merged. Please rebase.

@cameel cameel merged commit b5b8084 into ethereum:develop Oct 30, 2024
73 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants