From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: Michael Heerdegen <michael_heerdegen@web.de>, 39169@debbugs.gnu.org
Subject: bug#39169: 28.0.50; Confusing obsolete variable warnings in eieio-defclass-autoload
Date: Mon, 24 Aug 2020 22:12:13 -0400 [thread overview]
Message-ID: <jwveenvmqfv.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87h7srg3x6.fsf@gnus.org> (Lars Ingebrigtsen's message of "Mon, 24 Aug 2020 22:55:01 +0200")
>> I'm currently developing a Gnu Elpa package that makes use of
>> `defclass'. These lines in `eieio-defclass-autoload':
>>
>> #+begin_src emacs-lisp
>> ;; turn this into a usable self-pointing symbol
>> (when eieio-backward-compatibility
>> (set cname cname)
>> (make-obsolete-variable cname (format "use \\='%s instead" cname)
>> "25.1"))
>> #+end_src
>>
>> (and eieio-backward-compatibility defaults to t) lead to the following
>> situation: when I have any class, for example, named `buffer-note', and
>> I have the generated autoloads loaded, whenever I use a variable with
>> the name `buffer-note' (which is a quite natural name for objects of
>> that class), I get tons of warnings saying:
>>
>> | buffer-note.el:136:11:Warning: `buffer-note' is an obsolete
>> | variable (as of 25.1); use 'buffer-note
>>
>> The purpose of these warnings is a backward compatibility one, but it
>> shoots way over target: these warnings prevent me from using the class
>> name as a variable name - I keep renaming variables to prevent these
>> annoying warnings all the time.
Indeed that happens when you re-use the identifier `buffer-note` which has
a global binding and our obsolescence warning doesn't know how to
distinguish local bindings from global bindings.
But you could set `eieio-backward-compatibility` to nil.
> Yes, that does sound annoying. eieio got a lot of warnings during the
> conversion to more normal cl-* functions the other year, so it made
> sense to add warnings like this during the rewrite. But that's done
> now, so perhaps it makes sense to remove these over-enthusiastic
> warnings now? Stefan?
You mean we should change the default of `eieio-backward-compatibility`
to nil?
Maybe you're right.
We're currently removing things that were made obsolete in Emacs-23,
whereas those were made obsolete in Emacs-25, but setting that var to
nil is not as drastic as removing those vars and functions, so it's
probably OK to do it already.
Stefan
next prev parent reply other threads:[~2020-08-25 2:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-18 9:57 bug#39169: 28.0.50; Confusing obsolete variable warnings in eieio-defclass-autoload Michael Heerdegen
2020-08-24 20:55 ` Lars Ingebrigtsen
2020-08-25 2:12 ` Stefan Monnier [this message]
2020-08-25 20:05 ` Lars Ingebrigtsen
2020-08-25 20:07 ` Lars Ingebrigtsen
2020-08-26 15:30 ` Michael Heerdegen
2020-08-27 13:34 ` Lars Ingebrigtsen
2020-08-27 15:07 ` Michael Heerdegen
2020-08-27 15:23 ` Michael Heerdegen
2020-08-27 21:22 ` Michael Heerdegen
2020-08-27 21:38 ` Stefan Monnier
2020-12-29 10:59 ` Michael Heerdegen
2021-01-06 16:56 ` Michael Heerdegen
2020-08-28 14:06 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwveenvmqfv.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=39169@debbugs.gnu.org \
--cc=larsi@gnus.org \
--cc=michael_heerdegen@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.