Andy Wingo <[email protected]> writes:
>> How much of this is compiler-specific? Does some of it also apply to
>> old-style reading and interpreting?
>
> No, it's just compiler-specific. The reader captures source information
> at when it reads lists, as you know, and this is just propagating more
> of it.
OK, thanks.
> There is an interesting development in the vm branch regarding source
> information, though, and that is syncase. syntax-case has the capability
> to transfer source information through macro transformation, unlike
> defmacros (unless they are written very carefully, so as to preserve the
> original source). But the syncase situation is a longer mail...
I thought that was just a matter of using `cons-source'
(e.g. lang/elisp/transform.scm); or else something like
(define (transform x)
...
(let ((transformed-x ...))
(set-car! x (car transformed-x))
(set-cdr! x (cdr transformed-x))
x))
(Assuming that x is a pair and doesn't need preservation.)
But I'll wait for the full syncase email...
Neil