unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Incompatible change without "warning"
@ 2005-04-19 14:48 Frank Schmitt
  2005-04-19 19:09 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 48+ messages in thread
From: Frank Schmitt @ 2005-04-19 14:48 UTC (permalink / raw)


Hello

I see that on 2005-4-18 the tooltip-use-echo-area was renamed to
tooltip-gud-echo-area. This change breaks existing code
(semantic). Isn't it common practise to first deprecate a variable
before deleting it? And shouldn't this make it into NEWS?

-- 
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-19 14:48 Incompatible change without "warning" Frank Schmitt
@ 2005-04-19 19:09 ` Eli Zaretskii
  2005-04-19 20:53 ` Nick Roberts
  2005-04-19 21:35 ` Nick Roberts
  2 siblings, 0 replies; 48+ messages in thread
From: Eli Zaretskii @ 2005-04-19 19:09 UTC (permalink / raw)
  Cc: emacs-devel

> From: Frank Schmitt <ich@frank-schmitt.net>
> Date: Tue, 19 Apr 2005 16:48:45 +0200
> 
> I see that on 2005-4-18 the tooltip-use-echo-area was renamed to
> tooltip-gud-echo-area. This change breaks existing code
> (semantic). Isn't it common practise to first deprecate a variable
> before deleting it?

I think we should introduce a defvaralias, so as not to break existing
code.

> And shouldn't this make it into NEWS?

Definitely.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Incompatible change without "warning"
  2005-04-19 14:48 Incompatible change without "warning" Frank Schmitt
  2005-04-19 19:09 ` Eli Zaretskii
@ 2005-04-19 20:53 ` Nick Roberts
  2005-04-19 21:25   ` Stefan Monnier
  2005-04-20 14:57   ` Richard Stallman
  2005-04-19 21:35 ` Nick Roberts
  2 siblings, 2 replies; 48+ messages in thread
From: Nick Roberts @ 2005-04-19 20:53 UTC (permalink / raw)
  Cc: emacs-devel

 > I see that on 2005-4-18 the tooltip-use-echo-area was renamed to
 > tooltip-gud-echo-area. This change breaks existing code
 > (semantic). Isn't it common practise to first deprecate a variable
 > before deleting it? And shouldn't this make it into NEWS?

I've replaced it as an alias. As it was obscure and partly broken I thought
that I could sneak the change through unnoticed.

To emacs-devel:

How about adding an optional argument to defvaralias so that:

(defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area)
(make-obsolete-variable 'tooltip-use-echo-area 'tooltip-gud-echo-area "22.1")

can be written as:

(defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area nil "22.1")


Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-19 20:53 ` Nick Roberts
@ 2005-04-19 21:25   ` Stefan Monnier
  2005-04-19 22:10     ` Kevin Rodgers
  2005-04-20 14:57     ` Richard Stallman
  2005-04-20 14:57   ` Richard Stallman
  1 sibling, 2 replies; 48+ messages in thread
From: Stefan Monnier @ 2005-04-19 21:25 UTC (permalink / raw)
  Cc: Frank Schmitt, emacs-devel

>> I see that on 2005-4-18 the tooltip-use-echo-area was renamed to
>> tooltip-gud-echo-area. This change breaks existing code
>> (semantic). Isn't it common practise to first deprecate a variable
>> before deleting it? And shouldn't this make it into NEWS?

> I've replaced it as an alias. As it was obscure and partly broken I thought
> that I could sneak the change through unnoticed.

> To emacs-devel:

> How about adding an optional argument to defvaralias so that:

> (defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area)
> (make-obsolete-variable 'tooltip-use-echo-area 'tooltip-gud-echo-area "22.1")

> can be written as:

> (defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area nil "22.1")

I'd prefer to define the same `define-obsolete-variable-alias' macro as used
in XEmacs.


        Stefan

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Incompatible change without "warning"
  2005-04-19 14:48 Incompatible change without "warning" Frank Schmitt
  2005-04-19 19:09 ` Eli Zaretskii
  2005-04-19 20:53 ` Nick Roberts
@ 2005-04-19 21:35 ` Nick Roberts
  2005-04-20 23:14   ` Luc Teirlinck
  2 siblings, 1 reply; 48+ messages in thread
From: Nick Roberts @ 2005-04-19 21:35 UTC (permalink / raw)
  Cc: emacs-devel

 > I see that on 2005-4-18 the tooltip-use-echo-area was renamed to
 > tooltip-gud-echo-area. This change breaks existing code
 > (semantic). Isn't it common practise to first deprecate a variable
 > before deleting it? And shouldn't this make it into NEWS?

I should also add that tooltip-gud-echo-area doesn't do exactly the same thing
as tooltip-use-echo-area: it only uses the echo area for GUD tooltips.  Help
messages are still displayed in their own tooltip frame. Previously using the
echo area for GUD tooltips required help messages to be displayed there also.
Turning tooltip-mode off means that help messages displayed in the echo area
and that GUD tooltips are no longer displayed. Maybe this change is not as
good as I first thought because now it is not possible to have both GUD
tooltips and help messages displayed in the echo area.

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-19 21:25   ` Stefan Monnier
@ 2005-04-19 22:10     ` Kevin Rodgers
  2005-04-20 14:57     ` Richard Stallman
  1 sibling, 0 replies; 48+ messages in thread
From: Kevin Rodgers @ 2005-04-19 22:10 UTC (permalink / raw)


Stefan Monnier wrote:
>>How about adding an optional argument to defvaralias so that:
> 
>>(defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area)
>>(make-obsolete-variable 'tooltip-use-echo-area 'tooltip-gud-echo-area "22.1")
> 
>>can be written as:
> 
>>(defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area nil "22.1")
> 
> I'd prefer to define the same `define-obsolete-variable-alias' macro as used
> in XEmacs.

I like the way (defobvaralias ...) rolls off the tongue... it sounds 
like I can speak German!

-- 
Kevin Rodgers

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-19 20:53 ` Nick Roberts
  2005-04-19 21:25   ` Stefan Monnier
@ 2005-04-20 14:57   ` Richard Stallman
  1 sibling, 0 replies; 48+ messages in thread
From: Richard Stallman @ 2005-04-20 14:57 UTC (permalink / raw)
  Cc: ich, emacs-devel

    How about adding an optional argument to defvaralias so that:

    (defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area)
    (make-obsolete-variable 'tooltip-use-echo-area 'tooltip-gud-echo-area "22.1")

    can be written as:

    (defvaralias 'tooltip-use-echo-area 'tooltip-gud-echo-area nil "22.1")

It looks good to me.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-19 21:25   ` Stefan Monnier
  2005-04-19 22:10     ` Kevin Rodgers
@ 2005-04-20 14:57     ` Richard Stallman
  2005-04-20 23:21       ` Nick Roberts
  1 sibling, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-04-20 14:57 UTC (permalink / raw)
  Cc: nickrob, ich, emacs-devel

    I'd prefer to define the same `define-obsolete-variable-alias' macro as used
    in XEmacs.

That sounds useful.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-19 21:35 ` Nick Roberts
@ 2005-04-20 23:14   ` Luc Teirlinck
  2005-04-21  0:56     ` Nick Roberts
  0 siblings, 1 reply; 48+ messages in thread
From: Luc Teirlinck @ 2005-04-20 23:14 UTC (permalink / raw)
  Cc: ich, emacs-devel

Nick Roberts wrote:

   I should also add that tooltip-gud-echo-area doesn't do exactly the
   same thing as tooltip-use-echo-area: it only uses the echo area for
   GUD tooltips.  Help messages are still displayed in their own
   tooltip frame. Previously using the echo area for GUD tooltips
   required help messages to be displayed there also.  Turning
   tooltip-mode off means that help messages displayed in the echo
   area and that GUD tooltips are no longer displayed. Maybe this
   change is not as good as I first thought because now it is not
   possible to have both GUD tooltips and help messages displayed in
   the echo area.

Why did you make that change?  It would seem that if people prefer to
have GUD tooltip texts displayed in the echo area, they most likely
also want help messages displayed there.

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-20 14:57     ` Richard Stallman
@ 2005-04-20 23:21       ` Nick Roberts
  2005-04-21 14:17         ` Lute Kamstra
  2005-04-21 19:56         ` Richard Stallman
  0 siblings, 2 replies; 48+ messages in thread
From: Nick Roberts @ 2005-04-20 23:21 UTC (permalink / raw)
  Cc: emacs-devel, Stefan Monnier, ich

 >     I'd prefer to define the same `define-obsolete-variable-alias' macro as
 >     used in XEmacs.
 > 
 > That sounds useful.

Does this DTRT?

(defmacro define-obsolete-variable-alias (symbol aliased
						 &optional docstring when)
"Make SYMBOL a variable alias for symbol ALIASED and warn that
SYMBOL is obsolete. If provided, WHEN should be a string
indicating when the variable was first made obsolete, for example
a date or a release number. Fourth arg docstring, if non-nil, is
documentation for symbol."
  (list 'progn
	`(defvaralias ,symbol ,aliased ,docstring)
	`(make-obsolete-variable ,symbol ,aliased ,when)))

The version in XEmacs may be better but I've not looked at at it deliberately,
as I wasn't sure of the implications of copying it.

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-20 23:14   ` Luc Teirlinck
@ 2005-04-21  0:56     ` Nick Roberts
  0 siblings, 0 replies; 48+ messages in thread
From: Nick Roberts @ 2005-04-21  0:56 UTC (permalink / raw)
  Cc: ich, emacs-devel

 >    I should also add that tooltip-gud-echo-area doesn't do exactly the
 >    same thing as tooltip-use-echo-area: it only uses the echo area for
 >    GUD tooltips.  Help messages are still displayed in their own
 >    tooltip frame. Previously using the echo area for GUD tooltips
 >    required help messages to be displayed there also.  Turning
 >    tooltip-mode off means that help messages displayed in the echo
 >    area and that GUD tooltips are no longer displayed. Maybe this
 >    change is not as good as I first thought because now it is not
 >    possible to have both GUD tooltips and help messages displayed in
 >    the echo area.
 > 
 > Why did you make that change?  It would seem that if people prefer to
 > have GUD tooltip texts displayed in the echo area, they most likely
 > also want help messages displayed there.

When tooltip-mode is off help messages are displayed in the echo area. It was
confusing and a bit redundant that tooltip-mode turned on and
tooltip-use-echo-area set to t would also display help messages there.

GUD tooltips are generated differently to normal tooltips whose message are
embedded in the text properties. Their display is more erratic and thats why
I thought it might help to display them in the echo area.

There are six cases to consider:


                              Normal

                      Own Frame | Echo Area              Behaviours

   None                   x          x                 x - previous and present
G
U  Own frame              x                            * - previous
D
   Echo area              +          *                 + - present


The asymmetry arises becauses help messages can't be suppressed like
GUD tooltips. I don't think an extra variable to deal with the extra
case is justified. I can revert the change if people prefer the old
behaviour/can't think of a more elegant solution.

As an aside, at some stage in the future I would like to extend GUD tooltips
to display #define directives over identifiers (like in Visual Studio, I
think) when the program is not executing.

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-20 23:21       ` Nick Roberts
@ 2005-04-21 14:17         ` Lute Kamstra
  2005-04-21 22:35           ` Nick Roberts
  2005-04-21 19:56         ` Richard Stallman
  1 sibling, 1 reply; 48+ messages in thread
From: Lute Kamstra @ 2005-04-21 14:17 UTC (permalink / raw)
  Cc: ich, rms, Stefan Monnier, emacs-devel

Nick Roberts <nickrob@snap.net.nz> writes:

>  >     I'd prefer to define the same `define-obsolete-variable-alias' macro as
>  >     used in XEmacs.
>  > 
>  > That sounds useful.
>
> Does this DTRT?
>
> (defmacro define-obsolete-variable-alias (symbol aliased
> 						 &optional docstring when)
> "Make SYMBOL a variable alias for symbol ALIASED and warn that
> SYMBOL is obsolete. If provided, WHEN should be a string
> indicating when the variable was first made obsolete, for example
> a date or a release number. Fourth arg docstring, if non-nil, is
> documentation for symbol."
>   (list 'progn
> 	`(defvaralias ,symbol ,aliased ,docstring)
> 	`(make-obsolete-variable ,symbol ,aliased ,when)))

The first line of the docstring should be a complete sentence.
Occurrences of argument names in the docstring should be in capitals.
The fourth argument is WHEN, not DOCSTRING.  Personally, I like the
argument names OLDVAR and NEWVAR that XEmacs uses.  What about this:

(defmacro define-obsolete-variable-alias (oldvar newvar
						 &optional when docstring)
  "Make OLDVAR a variable alias for NEWVAR and warn that OLDVAR is obsolete.
If provided, WHEN should be a string indicating when OLDVAR was
first made obsolete, for example a date or a release number.  The
optional argument DOCSTRING specifies the documentation string
for OLDVAR; if it is omitted or nil, OLDVAR uses the documentation
string of NEWVAR"
  `(progn
     (defvaralias ,oldvar ,newvar ,docstring)
     (make-obsolete-variable ,oldvar ,newvar ,when)))

> The version in XEmacs may be better but I've not looked at at it
> deliberately, as I wasn't sure of the implications of copying it.

Lute, who didn't look at XEmacs' implementation either.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-20 23:21       ` Nick Roberts
  2005-04-21 14:17         ` Lute Kamstra
@ 2005-04-21 19:56         ` Richard Stallman
  2005-04-21 23:14           ` Nick Roberts
  1 sibling, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-04-21 19:56 UTC (permalink / raw)
  Cc: emacs-devel, monnier, ich

Before you install this, please write the changes for etc/NEWS and the
Lisp manual to install at the same time.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-21 14:17         ` Lute Kamstra
@ 2005-04-21 22:35           ` Nick Roberts
  2005-04-22  9:46             ` Lute Kamstra
  0 siblings, 1 reply; 48+ messages in thread
From: Nick Roberts @ 2005-04-21 22:35 UTC (permalink / raw)
  Cc: ich, rms, Stefan Monnier, emacs-devel

 > > Does this DTRT?
 > >
 > > (defmacro define-obsolete-variable-alias (symbol aliased
 > > 						 &optional docstring when)
 > > "Make SYMBOL a variable alias for symbol ALIASED and warn that
 > > SYMBOL is obsolete. If provided, WHEN should be a string
 > > indicating when the variable was first made obsolete, for example
 > > a date or a release number. Fourth arg docstring, if non-nil, is
 > > documentation for symbol."
 > >   (list 'progn
 > > 	`(defvaralias ,symbol ,aliased ,docstring)
 > > 	`(make-obsolete-variable ,symbol ,aliased ,when)))
 > 
 > The first line of the docstring should be a complete sentence.

OK.

 > Occurrences of argument names in the docstring should be in capitals.
 > The fourth argument is WHEN, not DOCSTRING.

Yes. I changed the argument list but not the docstring.

 >  Personally, I like the
 > argument names OLDVAR and NEWVAR that XEmacs uses.  What about this:

I've tried to use the same names from defvaralias and make-obsolete-variable.

 > (defmacro define-obsolete-variable-alias (oldvar newvar
 > 						 &optional when docstring)
 >   "Make OLDVAR a variable alias for NEWVAR and warn that OLDVAR is obsolete.
 > If provided, WHEN should be a string indicating when OLDVAR was
 > first made obsolete, for example a date or a release number.  The
 > optional argument DOCSTRING specifies the documentation string
 > for OLDVAR; if it is omitted or nil, OLDVAR uses the documentation
 > string of NEWVAR"
 >   `(progn
 >      (defvaralias ,oldvar ,newvar ,docstring)
 >      (make-obsolete-variable ,oldvar ,newvar ,when)))

Yes, thanks. This is an improvement, but I might stick with my argument names
for consistency.


Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-21 19:56         ` Richard Stallman
@ 2005-04-21 23:14           ` Nick Roberts
  2005-04-21 23:56             ` Lute Kamstra
  2005-04-23 16:15             ` Richard Stallman
  0 siblings, 2 replies; 48+ messages in thread
From: Nick Roberts @ 2005-04-21 23:14 UTC (permalink / raw)
  Cc: emacs-devel, monnier, ich

Richard Stallman writes:
 > Before you install this, please write the changes for etc/NEWS and the
 > Lisp manual to install at the same time.

For completeness, I guess there should be one for functions too. Indeed, there
seem to be more uses of make-obsolete than make-obsolete-variable (possibly
bacause defvaralias is newer than defalias). I see XEmacs has
define-obsolete-function-alias so we could do:

(defmacro define-obsolete-function-alias (function aliased
						   &optional docstring when)
  "blurb"
  `(progn
     (defalias ,function ,aliased ,docstring)
     (make-obsolete ,function ,aliased ,when)))

Or we could combine the two e.g

(defmacro define-obsolete-alias (new aliased
				     &optional docstring when)
  "blurb"
  `(if (fboundp ,aliased)
       (progn
	 (defalias ,new ,aliased ,docstring)
	 (make-obsolete ,new ,aliased ,when))
     (progn
       (defvaralias ,new ,aliased ,docstring)
       (make-obsolete-variable ,new ,aliased ,when))))

It would have to be done a bit differently though, to deal with case of
a symbol having both a value and a function definition.

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-21 23:14           ` Nick Roberts
@ 2005-04-21 23:56             ` Lute Kamstra
  2005-04-23 16:15             ` Richard Stallman
  1 sibling, 0 replies; 48+ messages in thread
From: Lute Kamstra @ 2005-04-21 23:56 UTC (permalink / raw)
  Cc: ich, rms, monnier, emacs-devel

Nick Roberts <nickrob@snap.net.nz> writes:

> Richard Stallman writes:
>  > Before you install this, please write the changes for etc/NEWS and the
>  > Lisp manual to install at the same time.
>
> For completeness, I guess there should be one for functions too.

Good idea.

> Indeed, there seem to be more uses of make-obsolete than
> make-obsolete-variable (possibly bacause defvaralias is newer than
> defalias). I see XEmacs has define-obsolete-function-alias so we
> could do:
>
> (defmacro define-obsolete-function-alias (function aliased
> 						   &optional docstring when)
>   "blurb"
>   `(progn
>      (defalias ,function ,aliased ,docstring)
>      (make-obsolete ,function ,aliased ,when)))

I think it's better to have WHEN before DOCSTRING.  DOCSTRING is
hardly ever used while WHEN is used frequently.

> Or we could combine the two e.g
>
> (defmacro define-obsolete-alias (new aliased
> 				     &optional docstring when)
>   "blurb"
>   `(if (fboundp ,aliased)
>        (progn
> 	 (defalias ,new ,aliased ,docstring)
> 	 (make-obsolete ,new ,aliased ,when))
>      (progn
>        (defvaralias ,new ,aliased ,docstring)
>        (make-obsolete-variable ,new ,aliased ,when))))

Seems like a bad idea to me.  For one thing, you can use
define-obsolete-{function,variable}-alias before you define ALIASED.
(I think XEmacs requires this.)  That won't work in this case.

> It would have to be done a bit differently though, to deal with case
> of a symbol having both a value and a function definition.

How can you determine what's the right thing, in that case?

Lute.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-21 22:35           ` Nick Roberts
@ 2005-04-22  9:46             ` Lute Kamstra
  2005-04-22 21:32               ` Nick Roberts
  0 siblings, 1 reply; 48+ messages in thread
From: Lute Kamstra @ 2005-04-22  9:46 UTC (permalink / raw)
  Cc: emacs-devel, ich, Stefan Monnier, rms

Hi Nick,

I see that you've installed define-obsolete-variable-alias.  Thanks.

In etc/NEWS you've also added an entry for make-obsolete-variable:

  +++
  *** New function make-obsolete-variable to warn that a variable may be removed
  at some stage in the future.

Even though is wasn't documented in the Lisp Manual,
make-obsolete-variable has been part of Emacs since version 19.7.

Lute.


PS. I noticed that make-obsolete isn't documented either.  Maybe you
    can fix that as well?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-22  9:46             ` Lute Kamstra
@ 2005-04-22 21:32               ` Nick Roberts
  2005-04-23  7:17                 ` Lute Kamstra
  0 siblings, 1 reply; 48+ messages in thread
From: Nick Roberts @ 2005-04-22 21:32 UTC (permalink / raw)
  Cc: emacs-devel, rms, Stefan Monnier

 > In etc/NEWS you've also added an entry for make-obsolete-variable:
 > 
 >   +++ *** New function make-obsolete-variable to warn that a variable may
 >   be removed at some stage in the future.
 > 
 > Even though is wasn't documented in the Lisp Manual,
 > make-obsolete-variable has been part of Emacs since version 19.7.

I've removed this entry. I was fooled by defvaralias being new.

 > Lute.
 > 
 > 
 > PS. I noticed that make-obsolete isn't documented either.  Maybe you
 >     can fix that as well?

I'm waiting to see if Richard decides that define-obsolete-function-alias
should be added too. These two functions are so similar to the two that
I've just documented, externally at least, that I wonder if they could
be described somewhere centrally in the Lisp manual i.e a link from the
nodes 'Defining Variables' and 'Defining Functions'to one called
'Obsoletion'.


Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-22 21:32               ` Nick Roberts
@ 2005-04-23  7:17                 ` Lute Kamstra
  2005-04-23  7:31                   ` David Kastrup
  2005-04-23  8:10                   ` Nick Roberts
  0 siblings, 2 replies; 48+ messages in thread
From: Lute Kamstra @ 2005-04-23  7:17 UTC (permalink / raw)
  Cc: rms, Stefan Monnier, emacs-devel

Nick Roberts <nickrob@snap.net.nz> writes:

>  > In etc/NEWS you've also added an entry for make-obsolete-variable:
>  > 
>  >   +++ *** New function make-obsolete-variable to warn that a variable may
>  >   be removed at some stage in the future.
>  > 
>  > Even though is wasn't documented in the Lisp Manual,
>  > make-obsolete-variable has been part of Emacs since version 19.7.
>
> I've removed this entry. 

Thanks.

> I was fooled by defvaralias being new.

defvaralias is part of Emacs since version 21.1.

It does have an entry in NEWS under "Lisp Changes in Emacs 22.1", tho.
I wonder why it was put there.  Maybe because it wasn't mentioned in
NEWS for 21.1?  We better mention explicitly that it isn't really new
for 22.1, in that case.

Lute.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-23  7:17                 ` Lute Kamstra
@ 2005-04-23  7:31                   ` David Kastrup
  2005-04-23 19:25                     ` Lute Kamstra
  2005-04-23  8:10                   ` Nick Roberts
  1 sibling, 1 reply; 48+ messages in thread
From: David Kastrup @ 2005-04-23  7:31 UTC (permalink / raw)
  Cc: Nick Roberts, emacs-devel, rms, Stefan Monnier

Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

> Nick Roberts <nickrob@snap.net.nz> writes:
>
>>  > In etc/NEWS you've also added an entry for make-obsolete-variable:
>>  > 
>>  >   +++ *** New function make-obsolete-variable to warn that a variable may
>>  >   be removed at some stage in the future.
>>  > 
>>  > Even though is wasn't documented in the Lisp Manual,
>>  > make-obsolete-variable has been part of Emacs since version 19.7.
>>
>> I've removed this entry. 
>
> Thanks.
>
>> I was fooled by defvaralias being new.
>
> defvaralias is part of Emacs since version 21.1.

Uh what?

> It does have an entry in NEWS under "Lisp Changes in Emacs 22.1", tho.
> I wonder why it was put there.  Maybe because it wasn't mentioned in
> NEWS for 21.1?  We better mention explicitly that it isn't really new
> for 22.1, in that case.

What makes you think it isn't?  My Emacs-21.3 does not have it.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-23  7:17                 ` Lute Kamstra
  2005-04-23  7:31                   ` David Kastrup
@ 2005-04-23  8:10                   ` Nick Roberts
  2005-04-23  9:44                     ` Eli Zaretskii
  2005-04-23 19:27                     ` Lute Kamstra
  1 sibling, 2 replies; 48+ messages in thread
From: Nick Roberts @ 2005-04-23  8:10 UTC (permalink / raw)
  Cc: rms, Stefan Monnier, emacs-devel

 > defvaralias is part of Emacs since version 21.1.

Well its not in Emacs 21.2. I don't have 21.1 but I doubt that it has it.
Looking at the ChangeLog it seems to have just missed the branch from which
21.2 and 21.3 were also released.


2001-10-20  Gerd Moellmann  <gerd@gnu.org>

	* (Version 21.1 released.)

...
2001-10-04  Gerd Moellmann  <gerd@gnu.org>
...
	(Fdefvaralias): New function.
...
2001-10-04  Gerd Moellmann  <gerd@gnu.org>

	* Branch for 21.1.

So at three and a half, defvaralias must be about the oldest feature still
in CVS!

 > It does have an entry in NEWS under "Lisp Changes in Emacs 22.1", tho.
 > I wonder why it was put there.  Maybe because it wasn't mentioned in
 > NEWS for 21.1?  We better mention explicitly that it isn't really new
 > for 22.1, in that case.

I think the NEWS entry is correct.

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-23  8:10                   ` Nick Roberts
@ 2005-04-23  9:44                     ` Eli Zaretskii
  2005-04-23 19:27                     ` Lute Kamstra
  1 sibling, 0 replies; 48+ messages in thread
From: Eli Zaretskii @ 2005-04-23  9:44 UTC (permalink / raw)
  Cc: emacs-devel

> From: Nick Roberts <nickrob@snap.net.nz>
> Date: Sat, 23 Apr 2005 20:10:55 +1200
> Cc: rms@gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
> 
> Looking at the ChangeLog it seems to have just missed the branch from which
> 21.2 and 21.3 were also released.
> 
> 
> 2001-10-20  Gerd Moellmann  <gerd@gnu.org>
> 
> 	* (Version 21.1 released.)
> 
> ...
> 2001-10-04  Gerd Moellmann  <gerd@gnu.org>
> ...
> 	(Fdefvaralias): New function.
> ...
> 2001-10-04  Gerd Moellmann  <gerd@gnu.org>
> 
> 	* Branch for 21.1.

It's almost certainly a deliberate omission: Gerd didn't want to add a
new feature to the upcoming release that was already at the end of a
very thorough pretest.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-21 23:14           ` Nick Roberts
  2005-04-21 23:56             ` Lute Kamstra
@ 2005-04-23 16:15             ` Richard Stallman
  2005-04-26  9:15               ` Nick Roberts
  1 sibling, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-04-23 16:15 UTC (permalink / raw)
  Cc: emacs-devel, monnier, ich

    For completeness, I guess there should be one for functions too.

We don't add features to Emacs "for completeness".
That is not enough reason.

     I see XEmacs has
    define-obsolete-function-alias so we could do:

Compatibility adds an additional reason.
So please add define-obsolete-function-alias.
Please give it arguments compatible with XEmacs.

    Or we could combine the two e.g

    (defmacro define-obsolete-alias (new aliased

Since this does not provide compatibility,
it is not as good.  Please don't do this.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-23  7:31                   ` David Kastrup
@ 2005-04-23 19:25                     ` Lute Kamstra
  0 siblings, 0 replies; 48+ messages in thread
From: Lute Kamstra @ 2005-04-23 19:25 UTC (permalink / raw)
  Cc: Nick Roberts, rms, Stefan Monnier, emacs-devel

David Kastrup <dak@gnu.org> writes:

[...]

>> defvaralias is part of Emacs since version 21.1.
>
> Uh what?
>
>> It does have an entry in NEWS under "Lisp Changes in Emacs 22.1", tho.
>> I wonder why it was put there.  Maybe because it wasn't mentioned in
>> NEWS for 21.1?  We better mention explicitly that it isn't really new
>> for 22.1, in that case.
>
> What makes you think it isn't?  My Emacs-21.3 does not have it.

I used the Emacs from Debian:

(emacs-version) =>
"GNU Emacs 21.4.1 (i386-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2005-03-17 on trouble, modified by Debian"
(fboundp 'defvaralias) => t

and also:

,----[ src/ChangeLog.9 ]
| 2001-10-20  Gerd Moellmann  <gerd@gnu.org>
| 
| 	* (Version 21.1 released.)
| 
| [...]
|
| 2001-10-04  Gerd Moellmann  <gerd@gnu.org>
|
| [...]
|
| 	(Fdefvaralias): New function.
`----

But I overlooked an earlier:

,----[ src/ChangeLog.9 ]
| 2001-10-04  Gerd Moellmann  <gerd@gnu.org>
| 
| 	* Branch for 21.1.
`----

and I found out that the Big Brother Database does:

,----[ bbdb.el ]
| (unless (fboundp 'defvaralias)
|   (defun defvaralias (&rest args)))
`----

I guess it ain't called insidious for nothin'.

Sorry for the noise,

  Lute.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-23  8:10                   ` Nick Roberts
  2005-04-23  9:44                     ` Eli Zaretskii
@ 2005-04-23 19:27                     ` Lute Kamstra
  1 sibling, 0 replies; 48+ messages in thread
From: Lute Kamstra @ 2005-04-23 19:27 UTC (permalink / raw)
  Cc: rms, Stefan Monnier, emacs-devel

Nick Roberts <nickrob@snap.net.nz> writes:

[...]

> I think the NEWS entry is correct.

Yup, my mistake.  Sorry.

Lute.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-23 16:15             ` Richard Stallman
@ 2005-04-26  9:15               ` Nick Roberts
  2005-04-26 21:06                 ` Stefan Monnier
       [not found]                 ` <20050430231856.CE9369F511@mirror.positive-internet.com>
  0 siblings, 2 replies; 48+ messages in thread
From: Nick Roberts @ 2005-04-26  9:15 UTC (permalink / raw)
  Cc: monnier, emacs-devel

 >      I see XEmacs has
 >     define-obsolete-function-alias so we could do:
 > 
 > Compatibility adds an additional reason.
 > So please add define-obsolete-function-alias.
 > Please give it arguments compatible with XEmacs.

I have added define-obsolete-function-alias to byte-run.el

I have not provided documentation because I would like guidance:

Me> These two functions are so similar to the two that I've just documented,
Me> externally at least, that I wonder if they could be described somewhere
Me> centrally in the Lisp manual i.e a link from the nodes 'Defining
Me> Variables' and 'Defining Functions'to one called 'Obsoletion'.

The current documentation for these related functions uses different argument
names which I think is confusing:

Manual:
 - Function: defvaralias alias-var base-var &optional docstring

Documentation string:
 (defvaralias symbol aliased &optional docstring)

Shall I change these to

Manual:
 - Function: defvaralias variable new &optional docstring

Documentation string:
 (defvaralias variable new &optional docstring)

for consistency with make-obsolete-variable, define-obsolete-variable-alias?

The manual says:

`string-to-int' is an obsolete alias for this function. (string-to-number)

but string-to-int has not been made obsolete.

Some variables/functions have been obsolete since 19.15. Is now a good time
to purge them?

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-26  9:15               ` Nick Roberts
@ 2005-04-26 21:06                 ` Stefan Monnier
  2005-04-26 21:35                   ` Nick Roberts
       [not found]                 ` <20050430231856.CE9369F511@mirror.positive-internet.com>
  1 sibling, 1 reply; 48+ messages in thread
From: Stefan Monnier @ 2005-04-26 21:06 UTC (permalink / raw)
  Cc: rms, emacs-devel

> The current documentation for these related functions uses different argument
> names which I think is confusing:

I don't think it's confusing:
- `defvaralias' creates a variable alias.
  Neither of the two variables is known to be "old" or "new" or "obsolete".
  One is the "base", the other is the "alias".
- define-obsolete-variable-alias OTOH just *uses* defvaralias in one specific
  context (in order to preserve backward compatibility witha now obsolete
  variable), so the names can be more specific.

>  - Function: defvaralias variable new &optional docstring

That would sound wrong to me: the documentation should generally refer to
what a function *does*, not to how the function is used.


        Stefan

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-26 21:06                 ` Stefan Monnier
@ 2005-04-26 21:35                   ` Nick Roberts
  2005-04-26 21:45                     ` Stefan Monnier
  0 siblings, 1 reply; 48+ messages in thread
From: Nick Roberts @ 2005-04-26 21:35 UTC (permalink / raw)
  Cc: rms, emacs-devel

 > > The current documentation for these related functions uses different
 > > argument names which I think is confusing:
 > 
 > I don't think it's confusing:
 > - `defvaralias' creates a variable alias.
 >   Neither of the two variables is known to be "old" or "new" or "obsolete".
 >   One is the "base", the other is the "alias".
 > - define-obsolete-variable-alias OTOH just *uses* defvaralias in one specific
 >   context (in order to preserve backward compatibility witha now obsolete
 >   variable), so the names can be more specific.
 > 
 > >  - Function: defvaralias variable new &optional docstring
 > 
 > That would sound wrong to me: the documentation should generally refer to
 > what a function *does*, not to how the function is used.

Yes, you're right - I've been too narrow in my thinking. However, my
first point was about using the same argument names in the manual and the
documentation string. Would this not generally be a good idea?

Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-04-26 21:35                   ` Nick Roberts
@ 2005-04-26 21:45                     ` Stefan Monnier
  0 siblings, 0 replies; 48+ messages in thread
From: Stefan Monnier @ 2005-04-26 21:45 UTC (permalink / raw)
  Cc: rms, emacs-devel

> However, my first point was about using the same argument names in the
> manual and the documentation string. Would this not generally be
> a good idea?

Yes, this is of course usually desirable,


        Stefan

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
       [not found]                 ` <20050430231856.CE9369F511@mirror.positive-internet.com>
@ 2005-05-01  3:50                   ` Nick Roberts
  2005-05-01 12:07                     ` Richard Stallman
  0 siblings, 1 reply; 48+ messages in thread
From: Nick Roberts @ 2005-05-01  3:50 UTC (permalink / raw)
  Cc: monnier, emacs-devel

 >     Some variables/functions have been obsolete since 19.15. Is now a good
 >     time to purge them?
 > 
 > Could be.  What are their names?

Thinking about it, the best time to do this might be just *after* the release,
to give the maximum time to discover any problems it might cause.

Nick

before 19.15:

screen-height
screen-width
set-screen-width
set-screen-height
dot
dot-max
dot-min
dot-marker
buffer-flush-undo
'compiled-function-p

19.23

allout-exposure

19.32

focus-frame
unfocus-frame

19.34

executing-macro

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01  3:50                   ` Nick Roberts
@ 2005-05-01 12:07                     ` Richard Stallman
  2005-05-01 14:06                       ` Nick Roberts
  0 siblings, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-05-01 12:07 UTC (permalink / raw)
  Cc: monnier, emacs-devel

    Thinking about it, the best time to do this might be just *after* the release,
    to give the maximum time to discover any problems it might cause.

Only pretesting will give any real idea of whether a function is
used in code outside of Emacs.  Since we have not started the pretest,
now is a good time to delete some of these names.

    screen-height
    screen-width
    set-screen-width
    set-screen-height

Those are probably really used in .emacs files.  We shouldn't delete
them now, and maybe not ever.

    dot
    dot-max
    dot-min
    dot-marker

Those can go.  They are not used in the Emacs sources,
and they were not used much.  Note that bytecomp.el defines
properties for compiling them, so delete those too.

    buffer-flush-undo

That was probably used often by users; let's not delete it now.

    'compiled-function-p

Only a few programs would have had reason to use that, so
delete it now.

    19.23

    allout-exposure

That was specialized; delete it now.

    19.32

    focus-frame
    unfocus-frame

Those would have been used rarely; delete them now.

    19.34

    executing-macro

Please delete that too.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 12:07                     ` Richard Stallman
@ 2005-05-01 14:06                       ` Nick Roberts
  2005-05-01 15:18                         ` Luc Teirlinck
                                           ` (3 more replies)
  0 siblings, 4 replies; 48+ messages in thread
From: Nick Roberts @ 2005-05-01 14:06 UTC (permalink / raw)
  Cc: monnier, emacs-devel

I've removed:

 dot
 dot-max
 dot-min
 dot-marker
 buffer-flush-undo
 compiled-function-p
 allout-exposure
 focus-frame
 unfocus-frame

I wasn't sure how to remove executing-macro as it is a builtin variable:


(make-obsolete-variable 'executing-macro 'executing-kbd-macro "before 19.34")


  DEFVAR_LISP ("executing-macro", &Vexecuting_macro,
	       doc: /* Currently executing keyboard macro (string or vector); nil if none executing.  */);

  DEFVAR_INT ("executing-macro-index", &executing_macro_index,
	      doc: /* Index in currently executing keyboard macro; undefined if none executing.  */);

  DEFVAR_LISP_NOPRO ("executing-kbd-macro", &Vexecuting_macro,
		     doc: /* Currently executing keyboard macro (string or vector); nil if none executing.  */);


Note that if you remove executing-macro you need to change the elisp manual:

   * The state of keyboard macro execution is saved and restored.  While
     Edebug is active, `executing-macro' is bound to
     `edebug-continue-kbd-macro'.

(Edebug -> The Outside Context -> Checking Whether to Stop)

Here are some more obsolete functions/variables:

19.15
unread-command-char

19.23
allout-old-expose-topic

19.34
post-command-idle-hook
post-command-idle-delay

20.1
define-function
truncate-string

20.3
chars-in-region
update-iso-coding-systems
coding-system-parent

20.4
sref

Quite a lot from 21.1
Quite a lot with no timestamp.


Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 14:06                       ` Nick Roberts
@ 2005-05-01 15:18                         ` Luc Teirlinck
  2005-05-01 23:39                           ` Richard Stallman
  2005-05-01 18:57                         ` Richard Stallman
                                           ` (2 subsequent siblings)
  3 siblings, 1 reply; 48+ messages in thread
From: Luc Teirlinck @ 2005-05-01 15:18 UTC (permalink / raw)
  Cc: emacs-devel, rms, monnier

Nick Roberts wrote:

   I wasn't sure how to remove executing-macro as it is a builtin variable:

Please wait before removing this, until the following has been considered.

Richard Stallman wrote:

       19.34

       executing-macro

   Please delete that too.

I believe that Richard may have been unaware of the fact that, until
very recently, executing-macro and _not_ executing-kbd-macro were
documented in the Elisp manual.  This only got changed in August 2004
in CVS.  (Actually, I changed one occurrence of executing-kbd-macro
just moments ago.)  So people using the Elisp manual for reference are
likely to have kept using executing-macro.  Do we still want to remove
it given that?

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 14:06                       ` Nick Roberts
  2005-05-01 15:18                         ` Luc Teirlinck
@ 2005-05-01 18:57                         ` Richard Stallman
  2005-05-01 21:18                           ` Luc Teirlinck
  2005-05-01 18:57                         ` Richard Stallman
  2005-05-01 18:57                         ` Richard Stallman
  3 siblings, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-05-01 18:57 UTC (permalink / raw)
  Cc: monnier, emacs-devel

      DEFVAR_LISP ("executing-macro", &Vexecuting_macro,
		   doc: /* Currently executing keyboard macro (string or vector); nil if none executing.  */);

      DEFVAR_INT ("executing-macro-index", &executing_macro_index,
		  doc: /* Index in currently executing keyboard macro; undefined if none executing.  */);

      DEFVAR_LISP_NOPRO ("executing-kbd-macro", &Vexecuting_macro,
			 doc: /* Currently executing keyboard macro (string or vector); nil if none executing.  */);

I will change that one.


    Note that if you remove executing-macro you need to change the elisp manual:

       * The state of keyboard macro execution is saved and restored.  While
	 Edebug is active, `executing-macro' is bound to
	 `edebug-continue-kbd-macro'.

That isn't true anyway, so it is a good thing you pointed me at it.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 14:06                       ` Nick Roberts
  2005-05-01 15:18                         ` Luc Teirlinck
  2005-05-01 18:57                         ` Richard Stallman
@ 2005-05-01 18:57                         ` Richard Stallman
  2005-05-01 18:57                         ` Richard Stallman
  3 siblings, 0 replies; 48+ messages in thread
From: Richard Stallman @ 2005-05-01 18:57 UTC (permalink / raw)
  Cc: monnier, emacs-devel

    19.15
    unread-command-char

That was fairly widely used, so I don't think it should be deleted.
There is likely to be user code that still refers to this.

    19.23
    allout-old-expose-topic

Since that is just part of allout, it is rather specialized;
please delete it.

    19.34
    post-command-idle-hook
    post-command-idle-delay

Some Emacs packages still use these, so we should
leave them alone for now.  I will add something to TODO to
get convert the places that use this, after the release.

    20.1
    define-function
    truncate-string

Those were rather specialized, and existed as non-obsolete
for a short enough time, so pleae delete them.

    20.3
    chars-in-region
    update-iso-coding-systems
    coding-system-parent

Those are rather obscure Mule things, so please get rid of them.

    20.4
    sref

That was a rather obscure Mule thing, so please get rid of it.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 14:06                       ` Nick Roberts
                                           ` (2 preceding siblings ...)
  2005-05-01 18:57                         ` Richard Stallman
@ 2005-05-01 18:57                         ` Richard Stallman
  2005-05-01 22:43                           ` Nick Roberts
  3 siblings, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-05-01 18:57 UTC (permalink / raw)
  Cc: monnier, emacs-devel

    Quite a lot with no timestamp.

They might be obsolete since long long ago.  What are they?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 18:57                         ` Richard Stallman
@ 2005-05-01 21:18                           ` Luc Teirlinck
  0 siblings, 0 replies; 48+ messages in thread
From: Luc Teirlinck @ 2005-05-01 21:18 UTC (permalink / raw)
  Cc: nickrob, monnier, emacs-devel

I guess that the following line should be removed from subr.el:

(make-obsolete-variable 'executing-macro 'executing-kbd-macro "before 19.34")

But just to make sure that there are no misunderstandings.  When I
said that the use of executing-macro was recommended by the Elisp
manual until August 2004, I was not referring to edebug.texi.  I was
referring to `(elisp)Keyboard Macros' which until then used to say:

 -- Variable: executing-macro
     This variable contains the string or vector that defines the
     keyboard macro that is currently executing.  It is `nil' if no
     macro is currently executing.  A command can test this variable so
     as to behave differently when run from an executing macro.  Do not
     set this variable yourself.

It seems strange to remove a variable just one single release after
stopping recommending its use.

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 18:57                         ` Richard Stallman
@ 2005-05-01 22:43                           ` Nick Roberts
  2005-05-02  7:38                             ` David Kastrup
  2005-05-02 15:21                             ` Richard Stallman
  0 siblings, 2 replies; 48+ messages in thread
From: Nick Roberts @ 2005-05-01 22:43 UTC (permalink / raw)
  Cc: monnier, emacs-devel

 >     Quite a lot with no timestamp.
 > 
 > They might be obsolete since long long ago.  What are they?

desktop.el: desktop-enable
            desktop-buffer-modes-to-save
            desktop-buffer-misc-functions
            desktop-buffer-handlers
            desktop-load-default

dired-x.el: dired-omit-files-p

font-core.el: font-lock-defaults-alist

font-lock.el: font-lock-reference-face

log-edit.el: cvs-commit-buffer-require-final-newline
             cvs-changelog-full-paragraphs

mwheel.el: mouse-wheel-down-button
           mouse-wheel-up-button
           mouse-wheel-click-button

outline.el: outline-visible

pcvs-defs.el: cvs-diff-ignore-marks
              cvs-diff-buffer-name

subr.el: assoc-ignore-case
         assoc-ignore-representation

tree-widget.el: tree-widget-format-handler

vc-hooks.el: vc-ignore-vc-files
             vc-master-templates
             vc-header-alist

cc-cmds.el: c-comment-line-break-function

cc-vars.el: c-comment-continuation-stars

compile.el: compile-internal

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 15:18                         ` Luc Teirlinck
@ 2005-05-01 23:39                           ` Richard Stallman
  2005-05-02  2:28                             ` Luc Teirlinck
  0 siblings, 1 reply; 48+ messages in thread
From: Richard Stallman @ 2005-05-01 23:39 UTC (permalink / raw)
  Cc: nickrob, monnier, emacs-devel

      So people using the Elisp manual for reference are
    likely to have kept using executing-macro.  Do we still want to remove
    it given that?

They would still have gotten the warning messages when compiling their
code.  However, it looks like a fair variety of programs have reasons
to look at this variable.

So we can put in a defvaralias call.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 23:39                           ` Richard Stallman
@ 2005-05-02  2:28                             ` Luc Teirlinck
  0 siblings, 0 replies; 48+ messages in thread
From: Luc Teirlinck @ 2005-05-02  2:28 UTC (permalink / raw)
  Cc: nickrob, monnier, emacs-devel

Richard Stallman wrote:

	 So people using the Elisp manual for reference are
       likely to have kept using executing-macro.  Do we still want to remove
       it given that?

   They would still have gotten the warning messages when compiling their
   code.  However, it looks like a fair variety of programs have reasons
   to look at this variable.

   So we can put in a defvaralias call.

I replaced the make-obsolete-variable with a
define-obsolete-variable-alias, which is equivalent.

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 22:43                           ` Nick Roberts
@ 2005-05-02  7:38                             ` David Kastrup
  2005-05-02 22:55                               ` Nick Roberts
  2005-05-02 23:40                               ` Richard Stallman
  2005-05-02 15:21                             ` Richard Stallman
  1 sibling, 2 replies; 48+ messages in thread
From: David Kastrup @ 2005-05-02  7:38 UTC (permalink / raw)
  Cc: emacs-devel, rms, monnier

Nick Roberts <nickrob@snap.net.nz> writes:

>  >     Quite a lot with no timestamp.
>  > 
>  > They might be obsolete since long long ago.  What are they?
>
> desktop.el: desktop-enable
>             desktop-buffer-modes-to-save
>             desktop-buffer-misc-functions
>             desktop-buffer-handlers
>             desktop-load-default

They are still the standard and only interface in Emacs 21.4.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-01 22:43                           ` Nick Roberts
  2005-05-02  7:38                             ` David Kastrup
@ 2005-05-02 15:21                             ` Richard Stallman
  1 sibling, 0 replies; 48+ messages in thread
From: Richard Stallman @ 2005-05-02 15:21 UTC (permalink / raw)
  Cc: monnier, emacs-devel

     >     Quite a lot with no timestamp.
     > 
     > They might be obsolete since long long ago.  What are they?

I don't see anything obvious in common between these symbols.  They
have not all been obsolete for a long time; in fact, some (maybe all)
became obsolete recently.

For instance, assoc-ignore-case and assoc-ignore-representation should
be marked as obsolete starting in 22.1.  Likewise, compile-internal.
The others I don't know anything about off hand.

I think what needs to be done is first to determine the history of
each of these symbols.  For some of these symbols, perhaps all, the
right thing to do is to add the argument saying which versions they
became obsolete in.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-02  7:38                             ` David Kastrup
@ 2005-05-02 22:55                               ` Nick Roberts
  2005-05-03  4:31                                 ` Luc Teirlinck
                                                   ` (2 more replies)
  2005-05-02 23:40                               ` Richard Stallman
  1 sibling, 3 replies; 48+ messages in thread
From: Nick Roberts @ 2005-05-02 22:55 UTC (permalink / raw)
  Cc: rms, monnier, emacs-devel

 > >  >     Quite a lot with no timestamp.
 > >  > 
 > >  > They might be obsolete since long long ago.  What are they?
 > >
 > > desktop.el: desktop-enable
 > >             desktop-buffer-modes-to-save
 > >             desktop-buffer-misc-functions
 > >             desktop-buffer-handlers
 > >             desktop-load-default
 > 
 > They are still the standard and only interface in Emacs 21.4.

Some of these don't seem to be obsoleted correctly, in any case e.g the only
reference I can find to desktop-buffer-misc-functions is

(make-obsolete-variable 'desktop-buffer-misc-functions
                        'desktop-save-buffer)

i.e desktop-buffer-misc-functions is no longer a variable in Emacs 22.0.50

Shall I replace these with, e.g.:

(define-obsolete-variable-alias 'desktop-buffer-misc-functions
                                'desktop-save-buffer "22.0")


Nick

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-02  7:38                             ` David Kastrup
  2005-05-02 22:55                               ` Nick Roberts
@ 2005-05-02 23:40                               ` Richard Stallman
  1 sibling, 0 replies; 48+ messages in thread
From: Richard Stallman @ 2005-05-02 23:40 UTC (permalink / raw)
  Cc: nickrob, monnier, emacs-devel

    They are still the standard and only interface in Emacs 21.4.

Thanks.  Could you mark them as obsolete since 22.1?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-02 22:55                               ` Nick Roberts
@ 2005-05-03  4:31                                 ` Luc Teirlinck
  2005-05-03  7:17                                 ` David Kastrup
  2005-05-03 17:12                                 ` Richard Stallman
  2 siblings, 0 replies; 48+ messages in thread
From: Luc Teirlinck @ 2005-05-03  4:31 UTC (permalink / raw)
  Cc: emacs-devel, rms, monnier

Nick Roberts wrote:

   (define-obsolete-variable-alias 'desktop-buffer-misc-functions
				   'desktop-save-buffer "22.0")

Without commenting on any other part of the message, I believe that it
should be "22.1", that is the first _released_ version in which it is
going to be obsolete, not "22.0".

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-02 22:55                               ` Nick Roberts
  2005-05-03  4:31                                 ` Luc Teirlinck
@ 2005-05-03  7:17                                 ` David Kastrup
  2005-05-04 22:04                                   ` Richard Stallman
  2005-05-03 17:12                                 ` Richard Stallman
  2 siblings, 1 reply; 48+ messages in thread
From: David Kastrup @ 2005-05-03  7:17 UTC (permalink / raw)
  Cc: rms, monnier, emacs-devel

Nick Roberts <nickrob@snap.net.nz> writes:

>  > >  >     Quite a lot with no timestamp.
>  > >  > 
>  > >  > They might be obsolete since long long ago.  What are they?
>  > >
>  > > desktop.el: desktop-enable
>  > >             desktop-buffer-modes-to-save
>  > >             desktop-buffer-misc-functions
>  > >             desktop-buffer-handlers
>  > >             desktop-load-default
>  > 
>  > They are still the standard and only interface in Emacs 21.4.
>
> Some of these don't seem to be obsoleted correctly, in any case e.g the only
> reference I can find to desktop-buffer-misc-functions is
>
> (make-obsolete-variable 'desktop-buffer-misc-functions
>                         'desktop-save-buffer)
>
> i.e desktop-buffer-misc-functions is no longer a variable in Emacs 22.0.50
>
> Shall I replace these with, e.g.:
>
> (define-obsolete-variable-alias 'desktop-buffer-misc-functions
>                                 'desktop-save-buffer "22.0")

If I remember correctly, this is not going to cut it: I think I had to
change preview-latex to use the new interface since the old interface
was not supported at all any more.  It was not just a matter of
renaming variables: I also had to change other stuff.

There is probably no sense in declaring a variable an obsolete alias
if it does not even work!  I think we should add a compatibility layer
with the old interface (can't be much more than three lines or so)
that we'll remove with 23.1 or so.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-02 22:55                               ` Nick Roberts
  2005-05-03  4:31                                 ` Luc Teirlinck
  2005-05-03  7:17                                 ` David Kastrup
@ 2005-05-03 17:12                                 ` Richard Stallman
  2 siblings, 0 replies; 48+ messages in thread
From: Richard Stallman @ 2005-05-03 17:12 UTC (permalink / raw)
  Cc: monnier, emacs-devel

    Some of these don't seem to be obsoleted correctly, in any case e.g the only
    reference I can find to desktop-buffer-misc-functions is

    (make-obsolete-variable 'desktop-buffer-misc-functions
			    'desktop-save-buffer)

    i.e desktop-buffer-misc-functions is no longer a variable in Emacs 22.0.50

    Shall I replace these with, e.g.:

    (define-obsolete-variable-alias 'desktop-buffer-misc-functions
				    'desktop-save-buffer "22.0")

That might be the right approach, but first can you find which person
deleted it and ask him if it still needs to exist?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: Incompatible change without "warning"
  2005-05-03  7:17                                 ` David Kastrup
@ 2005-05-04 22:04                                   ` Richard Stallman
  0 siblings, 0 replies; 48+ messages in thread
From: Richard Stallman @ 2005-05-04 22:04 UTC (permalink / raw)
  Cc: nickrob, monnier, emacs-devel

    There is probably no sense in declaring a variable an obsolete alias
    if it does not even work! 

I agree.

			       I think we should add a compatibility layer
    with the old interface (can't be much more than three lines or so)
    that we'll remove with 23.1 or so.

If a compatibility layer can be added, so as to make the old names work,
that would indeed be a good thing to do.

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2005-05-04 22:04 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-19 14:48 Incompatible change without "warning" Frank Schmitt
2005-04-19 19:09 ` Eli Zaretskii
2005-04-19 20:53 ` Nick Roberts
2005-04-19 21:25   ` Stefan Monnier
2005-04-19 22:10     ` Kevin Rodgers
2005-04-20 14:57     ` Richard Stallman
2005-04-20 23:21       ` Nick Roberts
2005-04-21 14:17         ` Lute Kamstra
2005-04-21 22:35           ` Nick Roberts
2005-04-22  9:46             ` Lute Kamstra
2005-04-22 21:32               ` Nick Roberts
2005-04-23  7:17                 ` Lute Kamstra
2005-04-23  7:31                   ` David Kastrup
2005-04-23 19:25                     ` Lute Kamstra
2005-04-23  8:10                   ` Nick Roberts
2005-04-23  9:44                     ` Eli Zaretskii
2005-04-23 19:27                     ` Lute Kamstra
2005-04-21 19:56         ` Richard Stallman
2005-04-21 23:14           ` Nick Roberts
2005-04-21 23:56             ` Lute Kamstra
2005-04-23 16:15             ` Richard Stallman
2005-04-26  9:15               ` Nick Roberts
2005-04-26 21:06                 ` Stefan Monnier
2005-04-26 21:35                   ` Nick Roberts
2005-04-26 21:45                     ` Stefan Monnier
     [not found]                 ` <20050430231856.CE9369F511@mirror.positive-internet.com>
2005-05-01  3:50                   ` Nick Roberts
2005-05-01 12:07                     ` Richard Stallman
2005-05-01 14:06                       ` Nick Roberts
2005-05-01 15:18                         ` Luc Teirlinck
2005-05-01 23:39                           ` Richard Stallman
2005-05-02  2:28                             ` Luc Teirlinck
2005-05-01 18:57                         ` Richard Stallman
2005-05-01 21:18                           ` Luc Teirlinck
2005-05-01 18:57                         ` Richard Stallman
2005-05-01 18:57                         ` Richard Stallman
2005-05-01 22:43                           ` Nick Roberts
2005-05-02  7:38                             ` David Kastrup
2005-05-02 22:55                               ` Nick Roberts
2005-05-03  4:31                                 ` Luc Teirlinck
2005-05-03  7:17                                 ` David Kastrup
2005-05-04 22:04                                   ` Richard Stallman
2005-05-03 17:12                                 ` Richard Stallman
2005-05-02 23:40                               ` Richard Stallman
2005-05-02 15:21                             ` Richard Stallman
2005-04-20 14:57   ` Richard Stallman
2005-04-19 21:35 ` Nick Roberts
2005-04-20 23:14   ` Luc Teirlinck
2005-04-21  0:56     ` Nick Roberts

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).