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

From: Alan Mackenzie <[email-masked]>
Date: Sun, 2 Jun 2024 13:38:43 +0000

Hello, Stefan.

On Wed, Mar 27, 2024 at 08:22:27 -0400, Stefan Monnier wrote:

A bit of context: back in March, you took exception to the extensive
hand expanded backquote forms in byte-run--posify-defining-form, on the
ground that such code was too awkward for maintenance.  I insisted that
the function was needed by the macro defun.  We ended up not agreeing.

[ .... ]

> The earlier the better, in theory, but not at any cost.  Having to write
> all that code within the very restrictive sublanguage available before
> subr.el and backquote.el is a cost I don't think justifies it.

> If we *really* want that, then we should explore other avenues, such as
> keeping pre-macroexpanded versions of the files (for bootstrapping
> purposes) but generating those files from files where a more normal
> coding style can be used.
> [ Something similar to the ldefs-boot.el.  ]

The solution now seems obvious: In loadup.el, we should load
backquote.el before byte-run.el, and rewrite all our hand expanded
backquotes in byte-run.el (including in byte-run--posify-defining-form)
as actual backquote forms.

backquote.el doesn't actually need anything in byte-run.el bar the macro
defun itself.  It would be a simple job to replace each (defun
backquote-foo ...) in the file with (defalias 'backquote-foo #'(lambda
....)).

What do you think?

[ .... ]

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).