emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Delete variables obsolete since Emacs 23


From: Jeff Norden
Subject: Re: Delete variables obsolete since Emacs 23
Date: Mon, 17 Aug 2020 20:55:56 -0500

Drew Adams wrote:
> My only request is to not remove `interactive-p'.
> My request is to please leave it "obsolete".

The elisp manual says:

    You can mark a named function as "obsolete", meaning that it may be
    removed at some point in the future.  This causes Emacs to warn that the
    function is obsolete whenever it byte-compiles code containing that
    function, and whenever it displays the documentation for that function.
    In all other respects, an obsolete function behaves like any other
    function.

The phrase "may be removed" seems a bit vague.  Would "will be removed" or
"will probably be removed" be more accurate?

If so, perhaps it would help for obsolete functions and variables to also
include something like a 'target-expiration-date', which could be a release
number rather than an actual date.  A target-expiration of "31.1" would mean
that the current intent is that the function/variable will no longer exist
when version 31.1 is released.  The chromium project does something similar
for its experimental "flags" that can be used to customize the user interface.

>From where I sit, it seems plausible that someone might view interactive-p
as just an obsolete way of writing (called-interactively-p 'interactive),
which exists for backward compatibility, and would be available long term.
It seems that the last part is a mis-interpretation of the intent of marking
it as obsolete.

The fact that emacs maintains backward compatibility so well is one of the
features that I appreciate the most.  But, in this case, the fact that
interactive-p has been obsolete for so long may give the impression that it
would continue to be available.  I can see arguments on both sides of the coin
for why interactive-p should or should not continue to exist.  If the
underlying fact is that virtually all functions marked as obsolete will
eventually be removed, then this should be made clear (or more clear
than it currently seems to be).  Then the issue of whether or not
something should be marked as obsolete would have a better focus.

Also, it might be worthwhile for the elisp manual to mention one other
difference that obsolete functions have.  When an interactive command is
obsolete, it no longer appears as a possible completion when you press
[tab] while entering a command-name after M-x.

Regards,
-Jeff



reply via email to

[Prev in Thread] Current Thread [Next in Thread]