Subject: Re: bug#42425: 26.3.50; Compilation warnings when compiling eldoc.el under Emacs 26.3

From: Philipp Stephani <[email-masked]>
Date: Sat, 23 Jan 2021 18:35:07 +0100

Am Fr., 22. Jan. 2021 um 20:58 Uhr schrieb Lars Ingebrigtsen <[email-masked]>:
>
> Philipp Stephani <[email-masked]> writes:
>
> > eldoc is now a separate package that claims to support Emacs 26.3.
> > However, compiling eldoc.el results in a few warnings:
> >
> > emacs -Q -batch -l bytecomp -f batch-byte-compile eldoc.el
> >
> > In eldoc--eval-expression-setup:
> > eldoc.el:236:9:Warning: assignment to free variable
> >     ‘eldoc-documentation-strategy’
> >
> > In eldoc--supported-p:
> > eldoc.el:615:19:Warning: reference to free variable
> >     ‘eldoc-documentation-strategy’
> >
> > In eldoc--invoke-strategy:
> > eldoc.el:732:28:Warning: reference to free variable
> >     ‘eldoc-documentation-strategy’
> >
> > In end of data:
> > eldoc.el:804:1:Warning: the following functions are not known to be defined:
> >     elisp-eldoc-var-docstring, elisp-eldoc-funcall
> >
> > 1. Probably the definition of `eldoc-documentation-strategy' needs to be
> >    moved before its first use.
>
> Doing so seems easy enough, but I'm not sure how high our ambitions are
> for doing warning-free ELPA packages on older Emacs versions?  (I've
> added João to the CCs.)

I think our ambitions should be quite high. (I personally think we
should treat almost all compiler warnings as errors/bugs and fix them
whenever realistically possible.)

>
> > 2. Probably eldoc should protect against newer Elisp functions being not
> >    yet available, as calling such functions will likely result in errors
> >    at runtime.
>
> Doesn't it do that?  What functions is it using that's not available?

At least the current master version looks fine, though the byte
compiler isn't smart enough to detect that. The problematic uses are
in eldoc--eval-expression-setup.