Will Coleda wrote:
Right, the hard bit here was that I needed to specify something other than "file". Just agreeing that we need something other than just "file/line".
I'd have thought the onus is the other way: justify the use of "file/line" as the primitive concept.
We're going to have aset of "parrot compiler tools", which represent high level language and subsequent transformations as trees. If these trees are available, then all that is needed for debug traceability is a pointer/reference to nodes in the tree. If the node has a "get file/line" method, then the node (attribute grammar?) can be responsible for chaining the information back to the source code, even when things like common-subexpression optimizations have been done (the method can query the callstack, etc., to resolve this).