* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
@ 2014-12-21 17:14 Drew Adams
2014-12-21 17:19 ` Drew Adams
0 siblings, 1 reply; 9+ messages in thread
From: Drew Adams @ 2014-12-21 17:14 UTC (permalink / raw)
To: 19423
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@gnu.org-20141020195941-icp42t8ttcnud09g
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 17:14 bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional Drew Adams
@ 2014-12-21 17:19 ` Drew Adams
2014-12-21 18:53 ` Dmitry Gutov
0 siblings, 1 reply; 9+ messages in thread
From: Drew Adams @ 2014-12-21 17:19 UTC (permalink / raw)
To: 19423
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.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 17:19 ` Drew Adams
@ 2014-12-21 18:53 ` Dmitry Gutov
2014-12-21 18:58 ` Drew Adams
0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Gutov @ 2014-12-21 18:53 UTC (permalink / raw)
To: Drew Adams; +Cc: 19423-done
Drew Adams <drew.adams@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.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 18:53 ` Dmitry Gutov
@ 2014-12-21 18:58 ` Drew Adams
2014-12-21 19:01 ` Drew Adams
2014-12-21 19:05 ` Dmitry Gutov
0 siblings, 2 replies; 9+ messages in thread
From: Drew Adams @ 2014-12-21 18:58 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 19423-done
> > 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?
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 18:58 ` Drew Adams
@ 2014-12-21 19:01 ` Drew Adams
2014-12-21 19:05 ` Dmitry Gutov
1 sibling, 0 replies; 9+ messages in thread
From: Drew Adams @ 2014-12-21 19:01 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 19423-done
> > > 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.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 18:58 ` Drew Adams
2014-12-21 19:01 ` Drew Adams
@ 2014-12-21 19:05 ` Dmitry Gutov
2014-12-21 20:33 ` Drew Adams
1 sibling, 1 reply; 9+ messages in thread
From: Dmitry Gutov @ 2014-12-21 19:05 UTC (permalink / raw)
To: Drew Adams; +Cc: 19423-done
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.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 19:05 ` Dmitry Gutov
@ 2014-12-21 20:33 ` Drew Adams
2014-12-21 20:39 ` Dmitry Gutov
0 siblings, 1 reply; 9+ messages in thread
From: Drew Adams @ 2014-12-21 20:33 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 19423-done
> > 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.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 20:33 ` Drew Adams
@ 2014-12-21 20:39 ` Dmitry Gutov
2014-12-21 21:10 ` Drew Adams
0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Gutov @ 2014-12-21 20:39 UTC (permalink / raw)
To: Drew Adams; +Cc: 19423-done
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.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional
2014-12-21 20:39 ` Dmitry Gutov
@ 2014-12-21 21:10 ` Drew Adams
0 siblings, 0 replies; 9+ messages in thread
From: Drew Adams @ 2014-12-21 21:10 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 19423-done
> > 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.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-12-21 21:10 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-21 17:14 bug#19423: 25.0.50; incompatible change to `make-obsolete' - added 3rd arg should be optional Drew Adams
2014-12-21 17:19 ` Drew Adams
2014-12-21 18:53 ` Dmitry Gutov
2014-12-21 18:58 ` Drew Adams
2014-12-21 19:01 ` Drew Adams
2014-12-21 19:05 ` Dmitry Gutov
2014-12-21 20:33 ` Drew Adams
2014-12-21 20:39 ` Dmitry Gutov
2014-12-21 21:10 ` Drew Adams
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.