On 09/22/2013 07:51 PM, Walter Bright wrote:
... The fast path through the compiler is the one where people generate symbolic debug info. This requires file/line numbers for everything.
Typically the file names of AST nodes that are processed consecutively coincide, and testing whether a location is in a given file is easy, so it is possible that this is not an issue at all.
Line numbers can be stored without increasing the memory footprint in comparison with the current scheme.
Adding an arbitrarily expensive computation to get them makes for slow compiles.
Tracking line numbers is likely worth it. I don't believe that providing column numbers in error messages necessitates a slowdown though. (Probably we should just implement/optimize and measure.)
