Hi Andy, A couple of late comments...
Andy Wingo <wi...@pobox.com> writes: > * Much more source information propagates through the compiler and > into the metadata now. In short, whereas before it was "expressions > are only marked as coming from a source location if they are eq? to > an expression read in by guile", now it is "expressions are marked > with the source location of their containing expression, unless they > are eq? to an expression read by guile". > > The upshot is that original source information is preserved to a > much broader extent than before, as macro-expanded or transformed > expressions all have some kind of anchor to the original source. > > Another ramification of this is that procedures have source > information corresponding to where they were really defined, in > addition to locations of their subexpressions. (program-source foo > 0) will give you that. How much of this is compiler-specific? Does some of it also apply to old-style reading and interpreting? > * The in-bytecode metadata representation has been compressed. Now we > associate bytecode offsets with line-column pairs, and only record > that information when it changes. The idea is, byte N in the > instruction stream corresponds to source info for byte M, where M <= > N. Also, we only record the filename when it changes. > > This means that we can have more source information, as mentioned > above, but still have objcode files of similar size. Nice idea. Regards, Neil