Output the storage slot and memory index mapping for Fe variables
- Dominant language
- Rust
- Stars
- 1.7k
- Forks
- 218
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 9
Description
### What is wrong?
I've found this in the recent Vyper release and think it's interesting for us as well: https://github.com/vyperlang/vyper/issues/1950
A Symbol Table is a mapping between variables and their corresponding register locations. It is helpful to tools like debuggers to have this information so that it can use human-readable names (from the source code) when querying data from dynamic execution. For Fe, because the EVM has several different memory spaces (storage slots, program memory, and the stack) it would be helpful to provide all of these in a table when compiling a program. Tools like https://tenderly.dev/ use this for advanced debugging.
### How can it be fixed
:hocho:
Contributor guide
No contributing guide indexed for this repository
Research direction
No file, test, or entry point is named. Start by locating the Fe compiler components responsible for variable locations and EVM storage, program memory, and stack allocation; done means compilation provides a table mapping Fe variables to those locations for debugging tools.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- blockchain, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100