GNU bug report logs - #19423
25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Sun, 21 Dec 2014 17:15:02 UTC

Severity: normal

Tags: notabug

Found in version 25.0.50

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 19423 in the body.
You can then email your comments to 19423 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 17:15:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Drew Adams <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 21 Dec 2014 17:15:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg
 should be optional
Date: Sun, 21 Dec 2014 09:14:28 -0800 (PST)
This change, made long ago unfortunately, is incompatible.  Previous to
the change, `make-obsolete' accepted only 2 args.  It should still be
possible to use the function with only 2 args, as well as with 3.

This was presumably a careless oversight, and not intended as part of
the change to adding parameter WHEN.  The doc string in fact indicates
that this was not intended:

  If provided, WHEN should be a string indicating when the function
  ^^^^^^^^^^^
  was first made obsolete, for example a date or a release number.


In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
 of 2014-10-20 on LEG570
Bzr revision: 118168 rgm <at> gnu.org-20141020195941-icp42t8ttcnud09g
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 17:20:03 GMT) Full text and rfc822 format available.

Message #8 received at 19423 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: 19423 <at> debbugs.gnu.org
Subject: RE: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 09:19:05 -0800 (PST)
Even worse.  It turns out that when parameter WHEN was added
Emacs Dev did the right thing: it *was* optional.

In Emacs 23 someone unwisely changed it to mandatory, an
incompatible change that gratuitously breaks code that could
be used with older Emacs releases.  Pain for no real gain.




Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Sun, 21 Dec 2014 18:54:02 GMT) Full text and rfc822 format available.

Notification sent to Drew Adams <drew.adams <at> oracle.com>:
bug acknowledged by developer. (Sun, 21 Dec 2014 18:54:02 GMT) Full text and rfc822 format available.

Message #13 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 19423-done <at> debbugs.gnu.org
Subject: Re: bug#19423: 25.0.50;
 incompatible change to `make-obsolete' - added 3rd arg should be
 optional
Date: Sun, 21 Dec 2014 20:53:02 +0200
Drew Adams <drew.adams <at> oracle.com> writes:

> In Emacs 23 someone unwisely changed it to mandatory, an
> incompatible change that gratuitously breaks code that could
> be used with older Emacs releases.  Pain for no real gain.

You should look at the code sometimes.

The change is very much compatible: `make-obsolete' can still be called
with only two arguments without error.  The third one is only mandatory
in the advertised calling convention.

Even if it wasn't, it would be too late to fix the "problem": it
wouldn't work in 23 and 24 anyway.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 18:59:02 GMT) Full text and rfc822 format available.

Message #16 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 19423-done <at> debbugs.gnu.org
Subject: RE: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 10:58:40 -0800 (PST)
> > In Emacs 23 someone unwisely changed it to mandatory, an
> > incompatible change that gratuitously breaks code that could
> > be used with older Emacs releases.  Pain for no real gain.
> 
> You should look at the code sometimes.

You should look at the byte-compiler warning that the user sees.
It tells her that only 2 args are present but 3 are *required*.

> The change is very much compatible: `make-obsolete' can still be
> called with only two arguments without error.  The third one is only
> mandatory in the advertised calling convention.

See above.  The byte-compiler tells you that it is mandatory.

> Even if it wasn't, it would be too late to fix the "problem": it
> wouldn't work in 23 and 24 anyway.

No, but it would work for Emacs 25, and releases prior to 23.

There is no good reason *not* to fix it, is there?






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 19:02:02 GMT) Full text and rfc822 format available.

Message #19 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 19423-done <at> debbugs.gnu.org
Subject: RE: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 11:01:07 -0800 (PST)
> > > In Emacs 23 someone unwisely changed it to mandatory, an
> > > incompatible change that gratuitously breaks code that could
> > > be used with older Emacs releases.  Pain for no real gain.
> >
> > You should look at the code sometimes.
> 
> You should look at the byte-compiler warning that the user sees.
> It tells her that only 2 args are present but 3 are *required*.
> 
> > The change is very much compatible: `make-obsolete' can still be
> > called with only two arguments without error.  The third one is
> > only mandatory in the advertised calling convention.
> 
> See above.  The byte-compiler tells you that it is mandatory.
> 
> > Even if it wasn't, it would be too late to fix the "problem": it
> > wouldn't work in 23 and 24 anyway.
> 
> No, but it would work for Emacs 25, and releases prior to 23.
> 
> There is no good reason *not* to fix it, is there?

Oh, I see that you already closed it.  What a shame.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 19:07:01 GMT) Full text and rfc822 format available.

Message #22 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 19423-done <at> debbugs.gnu.org
Subject: Re: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 21:05:58 +0200
On 12/21/2014 08:58 PM, Drew Adams wrote:

> You should look at the byte-compiler warning that the user sees.

It's a warning, not an error. The code will work.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 20:34:02 GMT) Full text and rfc822 format available.

Message #25 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 19423-done <at> debbugs.gnu.org
Subject: RE: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 12:33:34 -0800 (PST)
> > You should look at the byte-compiler warning that the user sees.
> 
> It's a warning, not an error. The code will work.

The warning is blatantly incorrect - the 3rd arg is not required.
It misleads.  There is no need for such a "warning" - nothing to
warn users about, since the argument is optional.  It serves
no useful purpose.  It causes harm by lying to users, confusing
and misleading them.

There is no good reason not to fix this now.  And no reason at
all to close it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 20:40:02 GMT) Full text and rfc822 format available.

Message #28 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 19423-done <at> debbugs.gnu.org
Subject: Re: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 22:39:14 +0200
On 12/21/2014 10:33 PM, Drew Adams wrote:

> It misleads.  There is no need for such a "warning" - nothing to
> warn users about, since the argument is optional.  It serves
> no useful purpose.

While the argument is still optional now, it won't be, at some point in 
the future. And there's a good reason to require this argument: people 
should annotate each obsoletion with the version when it happened.

That change was made 5 years ago; let it go.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19423; Package emacs. (Sun, 21 Dec 2014 21:11:02 GMT) Full text and rfc822 format available.

Message #31 received at 19423-done <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 19423-done <at> debbugs.gnu.org
Subject: RE: bug#19423: 25.0.50; incompatible change to `make-obsolete' -
 added 3rd arg should be optional
Date: Sun, 21 Dec 2014 13:10:20 -0800 (PST)
> > It misleads.  There is no need for such a "warning" - nothing to
> > warn users about, since the argument is optional.  It serves
> > no useful purpose.
> 
> While the argument is still optional now, it won't be, at some point
> in the future. 

Why should it?

> And there's a good reason to require this argument: people
> should annotate each obsoletion with the version when it happened.

That is *not* a good reason to make the argument mandatory.

That is a good reason to document why they should do so and
thus encourage them to do so.  Making such an argument
mandatory for that reason alone is quite misguided.

> That change was made 5 years ago; let it go.

It is trivial to fix the mistake, no matter how long ago
it was made.  Again, there is no good reason *not* to fix
this.




Added tag(s) notabug. Request was from Stefan Monnier <monnier <at> iro.umontreal.ca> to control <at> debbugs.gnu.org. (Mon, 22 Dec 2014 02:52:01 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 19 Jan 2015 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 155 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.