Subject: Re: bug#67455: (Record source position, etc., in doc strings, and use this in *Help* and backtraces.)

From: Stefan Monnier <[email-masked]>
Date: Sat, 01 Jun 2024 19:14:06 -0400

> I think a moderately radical change in approach is needed.  Something
> like the following:
>
> (i) "Ambiguous" constructs should be left with symbols with position.
> (ii) We should enhance the evaluator to handle these symbols with
>   position.
> (iii) For the sake of run time speed, typical SWPs will be posified as
>   they are at the moment, the details getting written into their doc
>   strings.
> (iv) We'll need a read syntax for symbols with position, and they will
>   get written to .elc files with this syntax.
> (v) SWPs may need enhancing with a new element representing the buffer
>   the symbol occurred in.  Or, we could have an alist (or hash table)
>   associating the SWPs with their buffers.  Such currently exists for
>   lambdas.
>
> .... or something like that.
>
> What do you think?

I don't think I can see the problem clearly enough to have a good idea
of what we should do.  Do you have a concrete and worked out example
where we need to preserve sympos info from data (i.e. from a quoted
value, IOW the thing you describe as an "ambiguous construct", IIUC),
showing how that data is later turned into code, which sympos info
*that* code gets, what "source position" we ideally want to get into the
compiled/interpreted code, and finally how that info will be used?

        Stefan