GNU bug report logs -
#73881
31.0.50; Unexpected warnings about recursive occurrences of obsolete functions
Previous Next
Full log
View this message in rfc822 format
> From: Eshel Yaron <me <at> eshelyaron.com>
> Cc: 73881 <at> debbugs.gnu.org
> Date: Sat, 19 Oct 2024 20:11:08 +0200
>
> >> In allout-old-expose-topic:
> >> allout.el:5092:29: Warning: ‘allout-old-expose-topic’ is an obsolete function
> >> (as of 28.1); use ‘allout-expose-topic’ instead.
> >> allout.el:5097:44: Warning: ‘allout-old-expose-topic’ is an obsolete function
> >> (as of 28.1); use ‘allout-expose-topic’ instead.
> >> allout.el:5106:8: Warning: ‘allout-old-expose-topic’ is an obsolete function
> >> (as of 28.1); use ‘allout-expose-topic’ instead.
> >> --8<---------------cut here---------------end--------------->8---
> >>
> >> These warnings are unhelpful since these are recursive calls within the
> >> definition of the obsolete function itself. They need not be replaced
> >> with another function as the warnings suggest. Ideally, recursive calls
> >> to obsolete functions should not produce such warnings.
> >
> > From where I stand, this could be closed as wontfix, unless someone
> > sees an easy fix. I don't see any harm from emitting these warnings
> > in this scenario. The warnings are correct.
>
> All right, FWIW I find them more distracting then helpful: if I'm
> declaring a function as obsolete, that means it's going to stay around
> for at least a short while, with its recursive calls, which I have no
> interest in adapting. So these warnings do not tell me anything useful.
>
> As for an easy fix, maybe something like this?
>
> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
> index 29e7882c851..edb8160a250 100644
> --- a/lisp/emacs-lisp/bytecomp.el
> +++ b/lisp/emacs-lisp/bytecomp.el
> @@ -1533,6 +1533,7 @@ byte-compile-arglist-signature-string
>
> (defun byte-compile-function-warn (f nargs def)
> (when (and (get f 'byte-obsolete-info)
> + (not (eq f byte-compile-current-form)) ; Recursive call.
> (not (memq f byte-compile-not-obsolete-funcs)))
> (byte-compile-warn-obsolete f "function"))
Thanks, let's see what others think about this.
This bug report was last modified 232 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.