argotorg / argotorg/solidity

Enough Debugging data for tools to switch to via-IR

Open
#13,720 7 comments 1 reaction 0 assignees View on GitHub
epic ethdebug roadmap viair
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
21

Description

### What

The via-IR pipeline, especially with enabled optimizer, is hard to process for tools, since it doesn't preserve as many fixed patterns in the bytecode as the legacy pipeline. We want to improve this situation in a forward compatible manner by providing tooling with adequate and sufficient debugging data to reconstruct the relations between Solidity code, Yul code and bytecode.

### Why

We consider good tooling support a prerequisite for switching to via-IR by default, which we want to do as soon as possible to reduce our maintenance burden.

### How

We initiated a debugging data working group (currently spearheaded by @gnidan and @jtohman), with the goal to get to a consensus among tooling about what debugging information precisely and in which format would be most helpful for tooling. We intend to support this process as much as possible, which will hopefully result in a specification of debugging data, which we will then generate from the compiler.

#### Tasks

- [ ] Support the debugging data working group in defining the required debugging information and format.
- [ ] Implement support for the resulting debugging data in the compiler, i.e. emit the debugging data.
- [x] #12533
- [x] #9590

#### Older issues for consideration

- [x] https://github.com/ethereum/solidity/issues/11043
- [x] https://github.com/ethereum/solidity/issues/10935

Contributor guide

Open the contributing guide

Research direction

No files, tests, or compiler entry points are named. Start by reviewing the unchecked working-group and compiler-emission tasks alongside issues #12533, #9590, #11043, and #10935; done requires an agreed debugging-data specification and compiler support to emit it.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, solidity
Domain
compilers, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.