Drop support for ancient EVM versions, i.e. for homestead
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
Came up in https://github.com/ethereum/solidity/pull/12205/files#r743092422.
- ``homestead`` in particular needs the ``canOverchargeGasForCall()`` workarounds, which complicate code (although to be fair it's not *that* bad)
- the new Yul-EVM code transform currently cannot guarantee not to reorder the ``gas`` opcode (although to be fair it could probably be adjusted, s.t. it can, but that would probably mean some more invasive special case handling)
So while that's not an absolutely strong case, maybe it still makes sense to consider dropping support. For that the main consideration is probably:
Are there any live chains that run ``homestead``, resp. any users that may rely on new compiler versions to be able to generate homestead-compatible bytecode?
If not, there's little reason for not dropping the support.
Contributor guide
Research direction
Start with the discussion and changed files in PR #12205, especially the canOverchargeGasForCall() workarounds and the Yul-EVM code transform around the gas opcode. Research whether live chains or users still require homestead-compatible bytecode; done means reaching a supported decision and identifying the full compiler behavior that must change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- blockchain, compilers
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100