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

Add deprecate CALLCODE EIP #2488

Merged
merged 8 commits into from
Aug 29, 2020
Merged

Conversation

axic
Copy link
Member

@axic axic commented Jan 24, 2020

No description provided.

@axic axic force-pushed the deprecate-callcode branch from fc2a5be to 213ea42 Compare January 24, 2020 14:04
Copy link
Contributor

@MicahZoltu MicahZoltu left a comment

Choose a reason for hiding this comment

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

Only change I would really want to see before merging is the addition of the Simple Summary to match the template. While I know some editors consider the Simple Summary optional, I personally consider it required in the face of ambiguity (template doesn't explicitly say either) since I think consistency is valuable and in almost all cases it does add some value and allows for tools to include a one-line description as subtext in a list.

EIPS/eip-2488.md Show resolved Hide resolved

## Abstract

Deprecate `CALLCODE` in a *somewhat* backwards compatible way, by making it always return failure.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Deprecate `CALLCODE` in a *somewhat* backwards compatible way, by making it always return failure.
Deprecate `CALLCODE` (`0xf2`) in a *somewhat* backwards compatible way, by making it always return failure.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think this (and other comments) aligns with the new OPCODE referencing systeme that you recently proposed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm, after leaving all of these suggestion comments, maybe the intent is that this style is only applied in the Specification section? If so, feel free to reject all of the suggestions that just add the parenthetical callcode.

Copy link
Member Author

Choose a reason for hiding this comment

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

EIP-1 has this (from #1968):

Screenshot

So it is not super clear. I would be inclined to say mentioning it at the first reference in the Specification is a reasonable option, otherwise it would become annoying.


## Motivation

`CALLCODE` was part of the Frontier release of Ethereum. In the first few weeks/months it became clear
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
`CALLCODE` was part of the Frontier release of Ethereum. In the first few weeks/months it became clear
`CALLCODE` (`0xf2`) was part of the Frontier release of Ethereum. In the first few weeks/months it became clear


`CALLCODE` was part of the Frontier release of Ethereum. In the first few weeks/months it became clear
that it cannot accomplish its intended design goal. This was rectified with introducing `DELEGATECALL`
([EIP-7](https://eips.ethereum.org/EIPS/eip-7)) in the Homestead update (early 2016).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
([EIP-7](https://eips.ethereum.org/EIPS/eip-7)) in the Homestead update (early 2016).
([EIP-7](./eip-7)) in the Homestead update (early 2016).

Relative paths will make the links work in GitHub, forks, branches, mirrors, etc.

Copy link
Member Author

Choose a reason for hiding this comment

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

Absolute paths are the standard required, it has been the case for years.

Copy link
Contributor

Choose a reason for hiding this comment

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

I have been told in the past to use relative paths (I think it was @Arachnid, quite a while back). Perhaps we should discuss this elsewhere, but is there somewhere I can read to catch-up on any history of discussion on this issue?

Copy link
Member Author

Choose a reason for hiding this comment

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

Over the past 2 years there was an extensive amount of work, mostly by @fulldecent, to change every single link to the absolute. I cannot spend the time right now to dig up the issue numbers.

@Arachnid probably said that probably in 2016-2017. I also preferred the relative paths, but sentiment agreed with the absolute ones.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'd suggest this discussion is handled outside of this pull request.

## Motivation

`CALLCODE` was part of the Frontier release of Ethereum. In the first few weeks/months it became clear
that it cannot accomplish its intended design goal. This was rectified with introducing `DELEGATECALL`
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
that it cannot accomplish its intended design goal. This was rectified with introducing `DELEGATECALL`
that it cannot accomplish its intended design goal. This was rectified with introducing `DELEGATECALL` (`0xf4`)

that it cannot accomplish its intended design goal. This was rectified with introducing `DELEGATECALL`
([EIP-7](https://eips.ethereum.org/EIPS/eip-7)) in the Homestead update (early 2016).

`CALLCODE` became never utilized, but it still puts a burden on EVM implementations.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
`CALLCODE` became never utilized, but it still puts a burden on EVM implementations.
`CALLCODE` (`0xf2`) became never utilized, but it still puts a burden on EVM implementations.

@axic
Copy link
Member Author

axic commented Aug 28, 2020

Only change I would really want to see before merging is the addition of the Simple Summary to match the template. While I know some editors consider the Simple Summary optional

It has been removed as a requirement in #2186, but apparently the template was not updated.

#2186 was triggered by countless complaints from EIP authors about the ambiguity the two overlapping sections cause and the wasted work it took writing them.

@MicahZoltu
Copy link
Contributor

Ah, we should definitely update the template to match with EIP-1. I'm a bit sad as I think the Simple Summary really did add value when it comes to formatted text. Kind of like how a forum may have a title and a short-description and the short description renders as subtext below the title in some contexts while only the title is rendered in other contexts. The abstract is almost always too long to render as a "long description", which means we now just have the title (usually like 5 words) and the abstract (a couple paragraphs) and nothing in-between. 😢

None the less, you are correct that EIP-1 says so, and it is just an issue with inconsistency between our own internal documentation.

@axic
Copy link
Member Author

axic commented Aug 28, 2020

@MicahZoltu please consider a new review based on the these comments 😉

@axic
Copy link
Member Author

axic commented Aug 28, 2020

Also it is fine delaying this until when the TODO line is filled out.

@MicahZoltu MicahZoltu merged commit b465693 into ethereum:master Aug 29, 2020
@axic axic deleted the deprecate-callcode branch August 29, 2020 12:11
tkstanczak pushed a commit to tkstanczak/EIPs that referenced this pull request Nov 7, 2020
* Add deprecate CALLCODE EIP

* Rename to EIP-2488

* Add discussion URL

* Add requires field and security considerations

* more motivation

* more clarity of backwards compatibility
Arachnid pushed a commit to Arachnid/EIPs that referenced this pull request Mar 6, 2021
* Add deprecate CALLCODE EIP

* Rename to EIP-2488

* Add discussion URL

* Add requires field and security considerations

* more motivation

* more clarity of backwards compatibility
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

Successfully merging this pull request may close these issues.

2 participants