For a long time, we have been thinking about how to improve the debugging experience by providing more information about the structure of the bytecode. We would like to tackle this big problem incrementally, and because of that, I would like to ask which information would provide the biggest benefit.
We are currently thinking about the following:
- provide a list of byte offsets of internal function entry points
- for each function, provide a list of local variables together with
- the byte offsets of their lifetime (plus the point from which on their are fully initialized)
- their stack offset relative to function start
- for each opcode, list the AST nodes they were generated from (instead of just the source location)
All of the above get more complicated and are maybe not even correct anymore if the optimizer is activated.
Also, do you have other ideas about meta-information you would like to extract from the compiler?