[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vm status update
From: |
Neil Jerram |
Subject: |
Re: vm status update |
Date: |
Sun, 08 Mar 2009 11:49:41 +0000 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
Hi Andy,
A couple of late comments...
Andy Wingo <address@hidden> 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