argotorg / argotorg/solidity

Drop support for ancient EVM versions, i.e. for homestead

Open
#12,246 13 comments 0 reactions 0 assignees View on GitHub
breaking change :warning: high impact low effort must have eventually
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.