Subject: bug#66394: 29.1; Make register-read-with-preview more useful

From: Eli Zaretskii <[email-masked]>
Date: Sat, 25 Nov 2023 12:23:18 +0200

> Cc: Michael Heerdegen <[email-masked]>, [email-masked],
>  [email-masked]
> From: Thierry Volpiatto <[email-masked]>
> Date: Mon, 20 Nov 2023 18:51:10 +0000
> 
> Stefan Monnier <[email-masked]> writes:
> 
> >> Ccing also Stefan monnier because for some reasons the patch when
> >> applied doesn't compile (when compiling Emacs) unless we add on
> >> top:
> >>
> >>     (cl--generic-prefill-dispatchers 0 (eql 'x) integer)
> >>
> >> following the advice of the compiler,
> >
> > Indeed, this is needed because `register.el` is preloaded and method
> > dispatcher are generated&compiled "on the fly" but we don't want to
> > preload the compiler, so we want to pre-compile the dispatchers used
> > by the preloaded code.
> >
> >> but I am not sure it is the way to do.
> >
> > `cl--generic-prefill-dispatchers` is not guaranteed to be defined when
> > we load `register.el` (it's only defined if we loaded the non-compiled
> > version of `cl-generic.el`) so the above call should be in
> > `cl-generic.el` rather than in `register.el`.
> >
> > I'd put it next to the following block:
> >
> >     (cl--generic-prefill-dispatchers 0 (eql nil))
> >     (cl--generic-prefill-dispatchers window-system (eql nil))
> >     (cl--generic-prefill-dispatchers (terminal-parameter nil 'xterm--get-selection)
> >                                      (eql nil))
> >     (cl--generic-prefill-dispatchers (terminal-parameter nil 'xterm--set-selection)
> >                                      (eql nil))
> >
> > which is already about dispatchers needed to support other files.
> 
> I will for now leave the call to `cl--generic-prefill-dispatchers` in
> the patch as a reminder that it should be added instead in cl-defgeneric
> once merging.

I tried to install the patch, but it fails to compile:

    ELC      ../lisp/register.elc

  In toplevel form:
  register.el:33:37: Warning: `eql' called with 1 argument, but requires 2
  register.el:33:45: Warning: reference to free variable `integer'

This then fails the build, since 'register' is preloaded.

Thierry, can you please fix the code, so that I could install it?  Or
what am I missing?

P.S. Also, the log message is not according to our conventions.