GNU bug report logs -
#64232
28.2; Incorrect(?) byte compilation warning about ‘ansi-color-apply-on-region’
Previous Next
Reported by: Zack Weinberg <zack <at> owlfolio.org>
Date: Thu, 22 Jun 2023 19:57:02 UTC
Severity: normal
Found in version 28.2
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:
> > --- a/lisp/emacs-lisp/bytecomp.el
> > +++ b/lisp/emacs-lisp/bytecomp.el
> > @@ -554,7 +554,9 @@ byte-compile-initial-macro-environment
> > (let ((byte-compile-unresolved-functions
> > byte-compile-unresolved-functions)
> > (byte-compile-new-defuns
> > - byte-compile-new-defuns))
> > + byte-compile-new-defuns)
> > + (byte-compile-noruntime-functions
> > + byte-compile-noruntime-functions))
> > (setf result
> > (byte-compile-eval
> > (byte-run-strip-symbol-positions
>
> Hmm... this doesn't look right: one of the main purpose of
> `byte-compile-eval` is (beside calling `eval`) to populate
> `byte-compile-noruntime-functions`, so if you let-bind it around the
> call, it's like calling `eval` and we can just get rid of
> `byte-compile-noruntime-functions` altogether.
Hmm - ok.
> The "natural" place to put the let-binding would be in
> `byte-compile-close-variables` (assuming it still fixes the bug).
Seems it does not. Maybe we should try to understand what is happening
first.
Part of the problem is the dependency
check-declare -> compile -> comint -> ansi-color
so the compiler might think we are `requiring' ansi-color (which the
compiled file uses) inside our `eval-when-compile' by purpose.
The warning is the same as when one did just
#+begin_src emacs-lisp
(eval-when-compile
(require 'ansi-color))
#+end_src
When removing that `eval-when-compile' the warning message goes away.
So the compiler warns stricter when something is required inside
`eval-when-compile', even if there would be no warning at all without
it.
Michael.
This bug report was last modified 1 year and 323 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.