unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Confused by y-or-n-p
@ 2020-12-23 15:24 Eli Zaretskii
  2020-12-23 16:45 ` Stefan Monnier
                   ` (4 more replies)
  0 siblings, 5 replies; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-23 15:24 UTC (permalink / raw)
  To: emacs-devel; +Cc: Richard Stallman

The function y-or-n-p originally used to read only a small set of
character commands.  In Emacs 27.1 we changed it to use
read-from-minibuffer, which means users now can easily switch out of
the minibuffer while the question they were asked is still not
answered.

This could confuse some users, especially if they aren't used to
working with recursive minibuffers.  Richard tells me it happened to
him several times.

Would it make sense to add a user option to disallow switching from
the minibuffer in the middle of y-or-n-p?  Then people who get
confused by this could set it to avoid the confusion.



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

* Re: Confused by y-or-n-p
  2020-12-23 15:24 Confused by y-or-n-p Eli Zaretskii
@ 2020-12-23 16:45 ` Stefan Monnier
  2020-12-23 17:04   ` Jean Louis
  2020-12-23 17:35   ` Eli Zaretskii
  2020-12-23 19:48 ` Lars Ingebrigtsen
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 210+ messages in thread
From: Stefan Monnier @ 2020-12-23 16:45 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Richard Stallman, emacs-devel

> Would it make sense to add a user option to disallow switching from
> the minibuffer in the middle of y-or-n-p?  Then people who get
> confused by this could set it to avoid the confusion.

I wonder what makes `y-or-n-p` special in this respect.
IOW, I think the answer is "yes, it would make sense" but I also think
this option should apply to other cases that `y-or-n-p`.

Maybe it could/should even apply to most uses of the minibuffer?


        Stefan




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

* Re: Confused by y-or-n-p
  2020-12-23 16:45 ` Stefan Monnier
@ 2020-12-23 17:04   ` Jean Louis
  2020-12-23 17:35   ` Eli Zaretskii
  1 sibling, 0 replies; 210+ messages in thread
From: Jean Louis @ 2020-12-23 17:04 UTC (permalink / raw)
  To: emacs-devel

* Stefan Monnier <monnier@iro.umontreal.ca> [2020-12-23 19:46]:
> > Would it make sense to add a user option to disallow switching from
> > the minibuffer in the middle of y-or-n-p?  Then people who get
> > confused by this could set it to avoid the confusion.
> 
> I wonder what makes `y-or-n-p` special in this respect.
> IOW, I think the answer is "yes, it would make sense" but I also think
> this option should apply to other cases that `y-or-n-p`.
> 
> Maybe it could/should even apply to most uses of the minibuffer?

I would say as option yes, but not by default. It is useful for users
to be able to press various other keys, move to other windows to
consult references and then come back and answer yes or no questions
or other stuff. That is what I do all the time to give you one more
insight of user experience.




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

* Re: Confused by y-or-n-p
  2020-12-23 16:45 ` Stefan Monnier
  2020-12-23 17:04   ` Jean Louis
@ 2020-12-23 17:35   ` Eli Zaretskii
  2020-12-23 18:11     ` Stefan Monnier
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-23 17:35 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rms, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org,  Richard Stallman <rms@gnu.org>
> Date: Wed, 23 Dec 2020 11:45:46 -0500
> 
> > Would it make sense to add a user option to disallow switching from
> > the minibuffer in the middle of y-or-n-p?  Then people who get
> > confused by this could set it to avoid the confusion.
> 
> I wonder what makes `y-or-n-p` special in this respect.
> IOW, I think the answer is "yes, it would make sense" but I also think
> this option should apply to other cases that `y-or-n-p`.
> 
> Maybe it could/should even apply to most uses of the minibuffer?

Could be.  However, y-or-n-p is somewhat special, in that it allowed
only very restricted set of things to type.  By contrast
read-from-minibuffer always allowed switching out of the minibuffer.



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

* Re: Confused by y-or-n-p
  2020-12-23 17:35   ` Eli Zaretskii
@ 2020-12-23 18:11     ` Stefan Monnier
  2020-12-23 18:44       ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Stefan Monnier @ 2020-12-23 18:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, emacs-devel

>> > Would it make sense to add a user option to disallow switching from
>> > the minibuffer in the middle of y-or-n-p?  Then people who get
>> > confused by this could set it to avoid the confusion.
>> 
>> I wonder what makes `y-or-n-p` special in this respect.
>> IOW, I think the answer is "yes, it would make sense" but I also think
>> this option should apply to other cases that `y-or-n-p`.
>> 
>> Maybe it could/should even apply to most uses of the minibuffer?
>
> Could be.  However, y-or-n-p is somewhat special, in that it allowed
> only very restricted set of things to type.  By contrast
> read-from-minibuffer always allowed switching out of the minibuffer.

So you're saying the only reason to treat `y-or-n-p` differently is to
avoid surprising old users?

Fair enough, but IIRC `y-or-n-p` is not the only function we changed
recently to use a minibuffer instead of an ad-hoc modal read-event loop,
so I suspect we might want to apply this new option to those other
functions as well.


        Stefan




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

* Re: Confused by y-or-n-p
  2020-12-23 18:11     ` Stefan Monnier
@ 2020-12-23 18:44       ` Eli Zaretskii
  2020-12-25  4:29         ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-23 18:44 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rms, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org,  rms@gnu.org
> Date: Wed, 23 Dec 2020 13:11:53 -0500
> 
> >> Maybe it could/should even apply to most uses of the minibuffer?
> >
> > Could be.  However, y-or-n-p is somewhat special, in that it allowed
> > only very restricted set of things to type.  By contrast
> > read-from-minibuffer always allowed switching out of the minibuffer.
> 
> So you're saying the only reason to treat `y-or-n-p` differently is to
> avoid surprising old users?

Old users who have the previous operation of y-or-n-p burned into
their muscle memory, yes.

> Fair enough, but IIRC `y-or-n-p` is not the only function we changed
> recently to use a minibuffer instead of an ad-hoc modal read-event loop,
> so I suspect we might want to apply this new option to those other
> functions as well.

I think you are right.



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

* Re: Confused by y-or-n-p
  2020-12-23 15:24 Confused by y-or-n-p Eli Zaretskii
  2020-12-23 16:45 ` Stefan Monnier
@ 2020-12-23 19:48 ` Lars Ingebrigtsen
  2020-12-23 19:53 ` Karl Fogel
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 210+ messages in thread
From: Lars Ingebrigtsen @ 2020-12-23 19:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Richard Stallman, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Would it make sense to add a user option to disallow switching from
> the minibuffer in the middle of y-or-n-p?  Then people who get
> confused by this could set it to avoid the confusion.

Yes, I think that makes sense (and as Stefan says, this should also work
for the other char-reading functions that we've switched over).

However, I do think it's likely that people who've switched this new
user option on will find themselves in situations where they'll be going
"but this time I do want to switch to another buffer".  Would adding a
new keystroke for switch-from-the-minibuffer-even-if-I-don't-usually-want-to
make sense?  Bound to some complicate keystroke people are unlikely to
hit by mistake?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2020-12-23 15:24 Confused by y-or-n-p Eli Zaretskii
  2020-12-23 16:45 ` Stefan Monnier
  2020-12-23 19:48 ` Lars Ingebrigtsen
@ 2020-12-23 19:53 ` Karl Fogel
  2020-12-23 20:27   ` Eli Zaretskii
  2020-12-24  5:56   ` Richard Stallman
  2020-12-24  5:53 ` Richard Stallman
  2020-12-24 15:38 ` martin rudalics
  4 siblings, 2 replies; 210+ messages in thread
From: Karl Fogel @ 2020-12-23 19:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Richard Stallman, emacs-devel

On 23 Dec 2020, Eli Zaretskii wrote:
>The function y-or-n-p originally used to read only a small set of
>character commands.  In Emacs 27.1 we changed it to use
>read-from-minibuffer, which means users now can easily switch out of
>the minibuffer while the question they were asked is still not
>answered.
>
>This could confuse some users, especially if they aren't used to
>working with recursive minibuffers.  Richard tells me it happened to
>him several times.
>
>Would it make sense to add a user option to disallow switching from
>the minibuffer in the middle of y-or-n-p?  Then people who get
>confused by this could set it to avoid the confusion.

I'm surprised that the intersection of these two sets is non-empty:

a) Users who would know enough to look for and set such an option.

b) Users who would be confused by what happens after they switch away from a y-or-n-p minibuffer in mid-question.

However, Richard is clearly in (a), and apparently he is in (b) as well.  So there's an existence proof.  I have no idea how many elements that set has, but if it has 1, it probably has more?  So sure, given the recent behavior change in 27.1, having this option could be useful to them.

(And, though I know some disagree, I don't think there's much cost to adding little options like this.  Emacs already has a zillion of them, so targeted reading and discovery are the strategy everyone already uses to find them anyway, which means adding a new one does not increase the complexity of Emacs in a problematic way IMHO.)

Best regards,
-Karl



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

* Re: Confused by y-or-n-p
  2020-12-23 19:53 ` Karl Fogel
@ 2020-12-23 20:27   ` Eli Zaretskii
  2020-12-24 18:26     ` Karl Fogel
  2020-12-24  5:56   ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-23 20:27 UTC (permalink / raw)
  To: Karl Fogel; +Cc: rms, emacs-devel

> From: Karl Fogel <kfogel@red-bean.com>
> Cc: emacs-devel@gnu.org,  Richard Stallman <rms@gnu.org>
> Date: Wed, 23 Dec 2020 15:53:59 -0400
> 
> I'm surprised that the intersection of these two sets is non-empty:
> 
> a) Users who would know enough to look for and set such an option.
> 
> b) Users who would be confused by what happens after they switch away from a y-or-n-p minibuffer in mid-question.

They are confused because they don't expect to see what happens in
that case.  Imagine someone who can easily press a wrong key for some
reason -- with the new implementation, instead of Emacs showing an
error message and the user staying right where he or she was, he or
she now find themselves in some situation they need to think how to
get out of.

> (And, though I know some disagree, I don't think there's much cost to adding little options like this.  Emacs already has a zillion of them, so targeted reading and discovery are the strategy everyone already uses to find them anyway, which means adding a new one does not increase the complexity of Emacs in a problematic way IMHO.)

What would you suggest instead?



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

* Re: Confused by y-or-n-p
  2020-12-23 15:24 Confused by y-or-n-p Eli Zaretskii
                   ` (2 preceding siblings ...)
  2020-12-23 19:53 ` Karl Fogel
@ 2020-12-24  5:53 ` Richard Stallman
  2020-12-24  6:06   ` David Masterson
  2020-12-24 16:49   ` João Távora
  2020-12-24 15:38 ` martin rudalics
  4 siblings, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-24  5:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Would it make sense to add a user option to disallow switching from
  > the minibuffer in the middle of y-or-n-p?  Then people who get
  > confused by this could set it to avoid the confusion.

Please do!  If you are happy with the current behavior, just don't
set the option.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-23 19:53 ` Karl Fogel
  2020-12-23 20:27   ` Eli Zaretskii
@ 2020-12-24  5:56   ` Richard Stallman
  1 sibling, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-24  5:56 UTC (permalink / raw)
  To: Karl Fogel; +Cc: eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

If I had intentionally switched windors inside y-or-n-p,
I would have known what to do next.  But it happened without
my noticing, and I never figured out why.

It was only later, after some results I could not make sense of, that
I realized I had switched windows somehow.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-24  5:53 ` Richard Stallman
@ 2020-12-24  6:06   ` David Masterson
  2020-12-24 16:49   ` João Távora
  1 sibling, 0 replies; 210+ messages in thread
From: David Masterson @ 2020-12-24  6:06 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Eli Zaretskii, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > Would it make sense to add a user option to disallow switching from
>   > the minibuffer in the middle of y-or-n-p?  Then people who get
>   > confused by this could set it to avoid the confusion.
>
> Please do!  If you are happy with the current behavior, just don't
> set the option.

This would also make sense as a general accessibility option. I have a
sensitive laptop and essential tremors. I often find that I've
accidentally hit the touchpad causing the cursor to jump to where the
mouse is.  It takes a moment to get back to where I was.  An option to
disable-switching-if-minibuffer-active would help.

-- 
David Masterson



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

* Re: Confused by y-or-n-p
  2020-12-23 15:24 Confused by y-or-n-p Eli Zaretskii
                   ` (3 preceding siblings ...)
  2020-12-24  5:53 ` Richard Stallman
@ 2020-12-24 15:38 ` martin rudalics
  2020-12-24 20:47   ` Juri Linkov
                     ` (2 more replies)
  4 siblings, 3 replies; 210+ messages in thread
From: martin rudalics @ 2020-12-24 15:38 UTC (permalink / raw)
  To: Eli Zaretskii, emacs-devel; +Cc: Richard Stallman

 > The function y-or-n-p originally used to read only a small set of
 > character commands.  In Emacs 27.1 we changed it to use
 > read-from-minibuffer, which means users now can easily switch out of
 > the minibuffer while the question they were asked is still not
 > answered.

In the Elisp manual we say that

  ‘yes-or-no-p’ requires more work from the user than ‘y-or-n-p’ and
      is appropriate for more crucial decisions.

Now while 'yes-or-no-p' implements what is sometimes called a "modeless"
or "non-modal" dialogue, our original 'y-or-n-p' implemented a "modal"
dialogue where the user had no other choice but to answer the question
immediately, possibly performing a few buffer scrolls in between.

However, according to Wikipedia, modal dialogues are used

   "to command user awareness and to display emergency states"

inherently contradicting what we say above.  Maybe I'm the only one who
sees a contradiction here.  Still I'd suggest to allow users to
separately choose for both, 'y-or-n-p' _and_ 'yes-or-no-p' dialogues,
whether they want Emacs to handle them in a modal or non-modal way.

And while we're there we could also try to relieve some of our .emacs
files (mine included) of those

(defalias 'yes-or-no-p 'y-or-n-p)

by providing an option that accomplishes the necessary mapping.

Thanks, martin




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

* Re: Confused by y-or-n-p
  2020-12-24  5:53 ` Richard Stallman
  2020-12-24  6:06   ` David Masterson
@ 2020-12-24 16:49   ` João Távora
  1 sibling, 0 replies; 210+ messages in thread
From: João Távora @ 2020-12-24 16:49 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Eli Zaretskii, emacs-devel

On Thu, Dec 24, 2020 at 5:53 AM Richard Stallman <rms@gnu.org> wrote:
>
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > Would it make sense to add a user option to disallow switching from
>   > the minibuffer in the middle of y-or-n-p?  Then people who get
>   > confused by this could set it to avoid the confusion.
>
> Please do!  If you are happy with the current behavior, just don't
> set the option.

To be honest I'd also welcome such an option that quits the
minibuffer input immediately after switching away from it to
another window.  No just y-or-n-p: every minibuffer-prompt.

I realize I would lose the ability to go search in other buffers
for answers to the prompt being offered in the minibuffer, but I
\would still prefer it to the confusion of leaving something
hanging there.  It always gets me, even after many years
of Emacs.

I'm sure there's are multiple Elisp snippets that achieve
this, I wonder if someone can think of a simple one and
post it here.

Thanks,
João



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

* Re: Confused by y-or-n-p
  2020-12-23 20:27   ` Eli Zaretskii
@ 2020-12-24 18:26     ` Karl Fogel
  0 siblings, 0 replies; 210+ messages in thread
From: Karl Fogel @ 2020-12-24 18:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, emacs-devel

On 23 Dec 2020, Eli Zaretskii wrote:
>> (And, though I know some disagree, I don't think there's much cost
>> to adding little options like this.  Emacs already has a zillion of
>> them, so targeted reading and discovery are the strategy everyone
>> already uses to find them anyway, which means adding a new one does
>> not increase the complexity of Emacs in a problematic way IMHO.)
>
>What would you suggest instead?

?  I wasn't suggesting that we should take another course.  I was agreeing with the original proposal, and offering more support for it by refuting one possible objection.

Best regards,
-Karl



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

* Re: Confused by y-or-n-p
  2020-12-24 15:38 ` martin rudalics
@ 2020-12-24 20:47   ` Juri Linkov
  2020-12-25  7:23     ` Eli Zaretskii
                       ` (2 more replies)
  2020-12-25  4:40   ` Richard Stallman
  2020-12-28 17:09   ` Juri Linkov
  2 siblings, 3 replies; 210+ messages in thread
From: Juri Linkov @ 2020-12-24 20:47 UTC (permalink / raw)
  To: martin rudalics; +Cc: Eli Zaretskii, Richard Stallman, emacs-devel

> In the Elisp manual we say that
>
>  ‘yes-or-no-p’ requires more work from the user than ‘y-or-n-p’ and
>      is appropriate for more crucial decisions.
>
> Now while 'yes-or-no-p' implements what is sometimes called a "modeless"
> or "non-modal" dialogue, our original 'y-or-n-p' implemented a "modal"
> dialogue where the user had no other choice but to answer the question
> immediately, possibly performing a few buffer scrolls in between.
>
> However, according to Wikipedia, modal dialogues are used
>
>   "to command user awareness and to display emergency states"
>
> inherently contradicting what we say above.  Maybe I'm the only one who
> sees a contradiction here.  Still I'd suggest to allow users to
> separately choose for both, 'y-or-n-p' _and_ 'yes-or-no-p' dialogues,
> whether they want Emacs to handle them in a modal or non-modal way.

Indeed.  Here is a possible way to make the minibuffer modal:

(defun minibuffer-lock ()
  (when (active-minibuffer-window)
    (select-window (active-minibuffer-window))))

(add-hook 'post-command-hook #'minibuffer-lock)

> And while we're there we could also try to relieve some of our .emacs
> files (mine included) of those
>
> (defalias 'yes-or-no-p 'y-or-n-p)
>
> by providing an option that accomplishes the necessary mapping.

One complication is that currently yes-or-no-p is implemented in C,
so using a new user option in it is not straightforward.



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

* Re: Confused by y-or-n-p
  2020-12-23 18:44       ` Eli Zaretskii
@ 2020-12-25  4:29         ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-25  4:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Fair enough, but IIRC `y-or-n-p` is not the only function we changed
  > > recently to use a minibuffer instead of an ad-hoc modal read-event loop,
  > > so I suspect we might want to apply this new option to those other
  > > functions as well.

  > I think you are right.

I agree too.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-24 15:38 ` martin rudalics
  2020-12-24 20:47   ` Juri Linkov
@ 2020-12-25  4:40   ` Richard Stallman
  2020-12-25  8:42     ` martin rudalics
  2020-12-28 17:09   ` Juri Linkov
  2 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2020-12-25  4:40 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > However, according to Wikipedia, modal dialogues are used

  >    "to command user awareness and to display emergency states"

  > inherently contradicting what we say above.  Maybe I'm the only one who
  > sees a contradiction here.

Emacs does not fit Wikipedia's general statement,
but I don't see that it ought to fit.

The idea of y-or-n-p and yes-or-no-p is that for less important
questions, where saying yes by mistake is not so bad, you can answer
in one character.  When more confirmation should be required, we use
yes-or-no-p so you must answer with four characters.

It just happened that the former was easy to do by reading an event and
the only easy way to do the latter was with a minibuffer.  So the
former turned out to be "modal" and the latter turned out not to be.

But I don't see that that matters particularly.
-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-24 20:47   ` Juri Linkov
@ 2020-12-25  7:23     ` Eli Zaretskii
  2020-12-25  9:07       ` martin rudalics
  2020-12-25  9:23       ` Juri Linkov
  2020-12-25  8:42     ` martin rudalics
  2020-12-26 10:24     ` Richard Stallman
  2 siblings, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-25  7:23 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, rms, emacs-devel

> From: Juri Linkov <juri@linkov.net>
> Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org,  Richard Stallman
>  <rms@gnu.org>
> Date: Thu, 24 Dec 2020 22:47:07 +0200
> 
> Indeed.  Here is a possible way to make the minibuffer modal:
> 
> (defun minibuffer-lock ()
>   (when (active-minibuffer-window)
>     (select-window (active-minibuffer-window))))
> 
> (add-hook 'post-command-hook #'minibuffer-lock)

Would something like that work to give users an option discussed in
this thread for y-or-n-p?  If so, can you please show a patch for
that?

> > And while we're there we could also try to relieve some of our .emacs
> > files (mine included) of those
> >
> > (defalias 'yes-or-no-p 'y-or-n-p)
> >
> > by providing an option that accomplishes the necessary mapping.
> 
> One complication is that currently yes-or-no-p is implemented in C,
> so using a new user option in it is not straightforward.

What are the difficulties?  You can call Lisp from C, given an option,
which is what I think Martin asked for.



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

* Re: Confused by y-or-n-p
  2020-12-24 20:47   ` Juri Linkov
  2020-12-25  7:23     ` Eli Zaretskii
@ 2020-12-25  8:42     ` martin rudalics
  2020-12-25 11:31       ` Eli Zaretskii
  2020-12-26 10:24     ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: martin rudalics @ 2020-12-25  8:42 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Eli Zaretskii, Richard Stallman, emacs-devel

 > Here is a possible way to make the minibuffer modal:
 >
 > (defun minibuffer-lock ()
 >    (when (active-minibuffer-window)
 >      (select-window (active-minibuffer-window))))
 >
 > (add-hook 'post-command-hook #'minibuffer-lock)

That's too harsh because it would affect all minibuffer interactions.

 >> And while we're there we could also try to relieve some of our .emacs
 >> files (mine included) of those
 >>
 >> (defalias 'yes-or-no-p 'y-or-n-p)
 >>
 >> by providing an option that accomplishes the necessary mapping.
 >
 > One complication is that currently yes-or-no-p is implemented in C,
 > so using a new user option in it is not straightforward.

I would just amend this part

       if (SCHARS (ans) == 3 && !strcmp (SSDATA (ans), "yes"))
	return unbind_to (count, Qt);
       if (SCHARS (ans) == 2 && !strcmp (SSDATA (ans), "no"))
	return unbind_to (count, Qnil);

leaving dialog boxes and the rest alone.

martin



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

* Re: Confused by y-or-n-p
  2020-12-25  4:40   ` Richard Stallman
@ 2020-12-25  8:42     ` martin rudalics
  0 siblings, 0 replies; 210+ messages in thread
From: martin rudalics @ 2020-12-25  8:42 UTC (permalink / raw)
  To: rms; +Cc: eliz, emacs-devel

 >    > However, according to Wikipedia, modal dialogues are used
 >
 >    >    "to command user awareness and to display emergency states"
 >
 >    > inherently contradicting what we say above.  Maybe I'm the only one who
 >    > sees a contradiction here.
 >
 > Emacs does not fit Wikipedia's general statement,
 > but I don't see that it ought to fit.
 >
 > The idea of y-or-n-p and yes-or-no-p is that for less important
 > questions, where saying yes by mistake is not so bad, you can answer
 > in one character.  When more confirmation should be required, we use
 > yes-or-no-p so you must answer with four characters.
 >
 > It just happened that the former was easy to do by reading an event and
 > the only easy way to do the latter was with a minibuffer.  So the
 > former turned out to be "modal" and the latter turned out not to be.
 >
 > But I don't see that that matters particularly.

It could have helped to establish guidelines for asking questions in a
more consistent and less adhocish way.  But since Eli here asked for an
option to restore some previous behavior only, I won't insist further.

martin



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

* Re: Confused by y-or-n-p
  2020-12-25  7:23     ` Eli Zaretskii
@ 2020-12-25  9:07       ` martin rudalics
  2020-12-25 11:32         ` Eli Zaretskii
  2020-12-25  9:23       ` Juri Linkov
  1 sibling, 1 reply; 210+ messages in thread
From: martin rudalics @ 2020-12-25  9:07 UTC (permalink / raw)
  To: Eli Zaretskii, Juri Linkov; +Cc: rms, emacs-devel

 >> (defun minibuffer-lock ()
 >>    (when (active-minibuffer-window)
 >>      (select-window (active-minibuffer-window))))
 >>
 >> (add-hook 'post-command-hook #'minibuffer-lock)
 >
 > Would something like that work to give users an option discussed in
 > this thread for y-or-n-p?

There are two orthogonal issues here: Whether to enable recursive
minibuffers and whether to allow leaving the minibuffer window while
asking a 'y-or-n-p' question.  The above addresses the latter only.

martin



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

* Re: Confused by y-or-n-p
  2020-12-25  7:23     ` Eli Zaretskii
  2020-12-25  9:07       ` martin rudalics
@ 2020-12-25  9:23       ` Juri Linkov
  2020-12-25 11:46         ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Juri Linkov @ 2020-12-25  9:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, rms, emacs-devel

>> Indeed.  Here is a possible way to make the minibuffer modal:
>>
>> (defun minibuffer-lock ()
>>   (when (active-minibuffer-window)
>>     (select-window (active-minibuffer-window))))
>>
>> (add-hook 'post-command-hook #'minibuffer-lock)
>
> Would something like that work to give users an option discussed in
> this thread for y-or-n-p?  If so, can you please show a patch for
> that?

I thought that others wanted this to affect all minibuffer commands.
How would it be possible to customize this behavior only for a subset
of commands?

>> > And while we're there we could also try to relieve some of our .emacs
>> > files (mine included) of those
>> >
>> > (defalias 'yes-or-no-p 'y-or-n-p)
>> >
>> > by providing an option that accomplishes the necessary mapping.
>>
>> One complication is that currently yes-or-no-p is implemented in C,
>> so using a new user option in it is not straightforward.
>
> What are the difficulties?  You can call Lisp from C, given an option,
> which is what I think Martin asked for.

In Lisp it would be simpler to add to the beginning of 'yes-or-no-p':

  (if use-y-or-n-p
      (y-or-n-p prompt)



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

* Re: Confused by y-or-n-p
  2020-12-25  8:42     ` martin rudalics
@ 2020-12-25 11:31       ` Eli Zaretskii
  2020-12-25 13:20         ` martin rudalics
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-25 11:31 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel, rms, juri

> Cc: Eli Zaretskii <eliz@gnu.org>, Richard Stallman <rms@gnu.org>,
>  emacs-devel@gnu.org
> From: martin rudalics <rudalics@gmx.at>
> Date: Fri, 25 Dec 2020 09:42:10 +0100
> 
>  > Here is a possible way to make the minibuffer modal:
>  >
>  > (defun minibuffer-lock ()
>  >    (when (active-minibuffer-window)
>  >      (select-window (active-minibuffer-window))))
>  >
>  > (add-hook 'post-command-hook #'minibuffer-lock)
> 
> That's too harsh because it would affect all minibuffer interactions.

Not if done only by the relevant commands/functions, right?



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

* Re: Confused by y-or-n-p
  2020-12-25  9:07       ` martin rudalics
@ 2020-12-25 11:32         ` Eli Zaretskii
  2020-12-25 13:20           ` martin rudalics
  2020-12-26 10:24           ` Richard Stallman
  0 siblings, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-25 11:32 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel, rms, juri

> Cc: emacs-devel@gnu.org, rms@gnu.org
> From: martin rudalics <rudalics@gmx.at>
> Date: Fri, 25 Dec 2020 10:07:17 +0100
> 
>  >> (defun minibuffer-lock ()
>  >>    (when (active-minibuffer-window)
>  >>      (select-window (active-minibuffer-window))))
>  >>
>  >> (add-hook 'post-command-hook #'minibuffer-lock)
>  >
>  > Would something like that work to give users an option discussed in
>  > this thread for y-or-n-p?
> 
> There are two orthogonal issues here: Whether to enable recursive
> minibuffers and whether to allow leaving the minibuffer window while
> asking a 'y-or-n-p' question.  The above addresses the latter only.

Isn't that enough to solve the problem which started this thread?



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

* Re: Confused by y-or-n-p
  2020-12-25  9:23       ` Juri Linkov
@ 2020-12-25 11:46         ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-25 11:46 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, rms, emacs-devel

> From: Juri Linkov <juri@linkov.net>
> Cc: rudalics@gmx.at,  emacs-devel@gnu.org,  rms@gnu.org
> Date: Fri, 25 Dec 2020 11:23:45 +0200
> 
> >> (defun minibuffer-lock ()
> >>   (when (active-minibuffer-window)
> >>     (select-window (active-minibuffer-window))))
> >>
> >> (add-hook 'post-command-hook #'minibuffer-lock)
> >
> > Would something like that work to give users an option discussed in
> > this thread for y-or-n-p?  If so, can you please show a patch for
> > that?
> 
> I thought that others wanted this to affect all minibuffer commands.
> How would it be possible to customize this behavior only for a subset
> of commands?

Can't we add to post-command-hook only in the commands from that
subset, and remove it when leaving the minibuffer?

> >> One complication is that currently yes-or-no-p is implemented in C,
> >> so using a new user option in it is not straightforward.
> >
> > What are the difficulties?  You can call Lisp from C, given an option,
> > which is what I think Martin asked for.
> 
> In Lisp it would be simpler to add to the beginning of 'yes-or-no-p':
> 
>   (if use-y-or-n-p
>       (y-or-n-p prompt)

You can do the same, almost literally, in C, can't you?



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

* Re: Confused by y-or-n-p
  2020-12-25 11:31       ` Eli Zaretskii
@ 2020-12-25 13:20         ` martin rudalics
  0 siblings, 0 replies; 210+ messages in thread
From: martin rudalics @ 2020-12-25 13:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: juri, rms, emacs-devel

 >>   > (defun minibuffer-lock ()
 >>   >    (when (active-minibuffer-window)
 >>   >      (select-window (active-minibuffer-window))))
 >>   >
 >>   > (add-hook 'post-command-hook #'minibuffer-lock)
 >>
 >> That's too harsh because it would affect all minibuffer interactions.
 >
 > Not if done only by the relevant commands/functions, right?

Wouldn't that mean that each of these commands/functions would have to
establish its own "lock-environment" to ensure that a nested invocation
of another command/function is not affected and, when returning from one
recursive environment, the correct state of locking is restored?  Maybe
it's easy to do that but with our minibuffer windows jumping from one
frame to another it doesn't look entirely trivial to me.

martin



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

* Re: Confused by y-or-n-p
  2020-12-25 11:32         ` Eli Zaretskii
@ 2020-12-25 13:20           ` martin rudalics
  2020-12-26 10:24             ` Richard Stallman
  2020-12-26 10:24           ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: martin rudalics @ 2020-12-25 13:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: juri, rms, emacs-devel

 >> There are two orthogonal issues here: Whether to enable recursive
 >> minibuffers and whether to allow leaving the minibuffer window while
 >> asking a 'y-or-n-p' question.  The above addresses the latter only.
 >
 > Isn't that enough to solve the problem which started this thread?

I'm not sure.  For example, we can currently nest an invocation of a
'yes-or-no-p' question within the scope of a 'y-or-n-p' question.  This
was impossible before and means that the user will either still be able
to leave the minibuffer window even when it was locked by a 'y-or-n-p'
(if we adopt the environmental solution I mentioned in the other thread)
or that a nested 'yes-or-no-p' question no longer allows to leave the
minibuffer window.  Maybe these are just contrived cases but I have no
idea how many similar, more realistic ones exist.

martin



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

* Re: Confused by y-or-n-p
  2020-12-25 13:20           ` martin rudalics
@ 2020-12-26 10:24             ` Richard Stallman
  2020-12-26 11:01               ` Jean Louis
  2020-12-26 13:41               ` martin rudalics
  0 siblings, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-26 10:24 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > I'm not sure.  For example, we can currently nest an invocation of a
  > 'yes-or-no-p' question within the scope of a 'y-or-n-p' question.

I'd like the old behavior for y-or-n-p, where any character not on
the list of special ones will err out of it.  With that behavior,
the question about nesting yes-or-no-p inside won't matter.



-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-24 20:47   ` Juri Linkov
  2020-12-25  7:23     ` Eli Zaretskii
  2020-12-25  8:42     ` martin rudalics
@ 2020-12-26 10:24     ` Richard Stallman
  2020-12-26 10:41       ` Sv: " arthur miller
                         ` (3 more replies)
  2 siblings, 4 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-26 10:24 UTC (permalink / raw)
  To: Juri Linkov, rudalics; +Cc: eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  >   Still I'd suggest to allow users to
  > > separately choose for both, 'y-or-n-p' _and_ 'yes-or-no-p' dialogues,
  > > whether they want Emacs to handle them in a modal or non-modal way.

That would have these drawbacks

* It would mean extra complexity to debug, maintain, and document

* It would not directly provide the old behavior, only a basis for it.
  People who want that would have to implement that.

Does anyone really WANT this generality, or is it generality for
generality's sake?

  > Indeed.  Here is a possible way to make the minibuffer modal:

  > (defun minibuffer-lock ()
  >   (when (active-minibuffer-window)
  >     (select-window (active-minibuffer-window))))

I am not sure what behavior that would give.
But I think it is NOT the behavior that y-or-n-p used to
have, which was to reject unexpected answers.

What was the reason for implementing this change in the
single-character-answer commands?  Who actually wanted the change in
behavior?  And for what use cases?

If people really like the new behavior, I won't argue against it.
But maybe we should turn it off by default, like recursive minibuffers.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-25 11:32         ` Eli Zaretskii
  2020-12-25 13:20           ` martin rudalics
@ 2020-12-26 10:24           ` Richard Stallman
  2020-12-26 10:51             ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2020-12-26 10:24 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > There are two orthogonal issues here: Whether to enable recursive
  > > minibuffers and whether to allow leaving the minibuffer window while
  > > asking a 'y-or-n-p' question.  The above addresses the latter only.

  > Isn't that enough to solve the problem which started this thread?

No.  It would prevent some of the secondary confusion.  But the basic
confusion came from getting out of the y-or-n-p question.

I'd like to have all those commands, which read one-character answers,
use the old code and give exactly the old behavior.

A little while ago I found that my minibuffer was displaying

  Unsent message being composed, erase it? (y or n)

and I had no recollection of why.  Nor was it easy to make it go away.
Sure, I could have done it with C-], but C-] does not come to mind
when I see that.  I expect to answer y or n, but that doesn't work
when the minibuffer is not selected.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Sv: Confused by y-or-n-p
  2020-12-26 10:24     ` Richard Stallman
@ 2020-12-26 10:41       ` arthur miller
  2020-12-27  5:38         ` Richard Stallman
  2020-12-26 10:49       ` Eli Zaretskii
                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 210+ messages in thread
From: arthur miller @ 2020-12-26 10:41 UTC (permalink / raw)
  To: Juri Linkov, rudalics@gmx.at, rms@gnu.org
  Cc: eliz@gnu.org, emacs-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 2454 bytes --]

If you are already speaking about y-or-no functions, I think they could get more friendlier interface:

I wish there was a default, pre choosen value set by developr; either Y or N, marked in color and
maybe capitalized and bound to Enter key, so user can just tapp the Enter to confirm the choice.
Similar as how some shell scripts implement it.  I think color draws eye to the choice, and just
tapping Enter to confirm is just a convenience. User could still press y or n as of current of course.
________________________________
Från: Emacs-devel <emacs-devel-bounces+arthur.miller=live.com@gnu.org> för Richard Stallman <rms@gnu.org>
Skickat: den 26 december 2020 11:24
Till: Juri Linkov <juri@linkov.net>; rudalics@gmx.at <rudalics@gmx.at>
Kopia: eliz@gnu.org <eliz@gnu.org>; emacs-devel@gnu.org <emacs-devel@gnu.org>
Ämne: Re: Confused by y-or-n-p

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  >   Still I'd suggest to allow users to
  > > separately choose for both, 'y-or-n-p' _and_ 'yes-or-no-p' dialogues,
  > > whether they want Emacs to handle them in a modal or non-modal way.

That would have these drawbacks

* It would mean extra complexity to debug, maintain, and document

* It would not directly provide the old behavior, only a basis for it.
  People who want that would have to implement that.

Does anyone really WANT this generality, or is it generality for
generality's sake?

  > Indeed.  Here is a possible way to make the minibuffer modal:

  > (defun minibuffer-lock ()
  >   (when (active-minibuffer-window)
  >     (select-window (active-minibuffer-window))))

I am not sure what behavior that would give.
But I think it is NOT the behavior that y-or-n-p used to
have, which was to reject unexpected answers.

What was the reason for implementing this change in the
single-character-answer commands?  Who actually wanted the change in
behavior?  And for what use cases?

If people really like the new behavior, I won't argue against it.
But maybe we should turn it off by default, like recursive minibuffers.

--
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)




[-- Attachment #2: Type: text/html, Size: 4398 bytes --]

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

* Re: Confused by y-or-n-p
  2020-12-26 10:24     ` Richard Stallman
  2020-12-26 10:41       ` Sv: " arthur miller
@ 2020-12-26 10:49       ` Eli Zaretskii
  2020-12-26 13:45       ` martin rudalics
  2020-12-26 18:30       ` Drew Adams
  3 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-26 10:49 UTC (permalink / raw)
  To: rms; +Cc: rudalics, emacs-devel, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: eliz@gnu.org, emacs-devel@gnu.org
> Date: Sat, 26 Dec 2020 05:24:17 -0500
> 
> What was the reason for implementing this change in the
> single-character-answer commands?  Who actually wanted the change in
> behavior?  And for what use cases?

AFAIR, the implementation was changed to provide the following
advantages:

  . allow having history for single-character-answer commands
  . avoid hiding the prompt when async messages arrive



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

* Re: Confused by y-or-n-p
  2020-12-26 10:24           ` Richard Stallman
@ 2020-12-26 10:51             ` Eli Zaretskii
  2020-12-27  5:38               ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-26 10:51 UTC (permalink / raw)
  To: rms; +Cc: rudalics, emacs-devel, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, juri@linkov.net, emacs-devel@gnu.org
> Date: Sat, 26 Dec 2020 05:24:22 -0500
> 
> A little while ago I found that my minibuffer was displaying
> 
>   Unsent message being composed, erase it? (y or n)
> 
> and I had no recollection of why.  Nor was it easy to make it go away.
> Sure, I could have done it with C-], but C-] does not come to mind
> when I see that.  I expect to answer y or n, but that doesn't work
> when the minibuffer is not selected.

Does it work to type "C-x o" one or more times to get back into the
minibuffer?  (I guess you will need to wait to the next time it
happens to check whether that solves the problem.)



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

* Re: Confused by y-or-n-p
  2020-12-26 10:24             ` Richard Stallman
@ 2020-12-26 11:01               ` Jean Louis
  2020-12-26 13:41               ` martin rudalics
  1 sibling, 0 replies; 210+ messages in thread
From: Jean Louis @ 2020-12-26 11:01 UTC (permalink / raw)
  To: emacs-devel

* Richard Stallman <rms@gnu.org> [2020-12-26 13:25]:
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> 
>   > I'm not sure.  For example, we can currently nest an invocation of a
>   > 'yes-or-no-p' question within the scope of a 'y-or-n-p' question.
> 
> I'd like the old behavior for y-or-n-p, where any character not on
> the list of special ones will err out of it.  With that behavior,
> the question about nesting yes-or-no-p inside won't matter.

I hope that gets included as an option, as for the reason that user
shall not be locked in a minibuffer, it makes Emacs not accessible and
annoying. User has to have option to switch to other buffers, to
consult oneself or obtain more information before answering, and come
back, additionally ? for help shall be allowed and C-h m/k and other
info functions.

Maybe is good to introduce `y-or-n-p-modal' function that does that
for programmers who need that specific.





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

* Re: Confused by y-or-n-p
  2020-12-26 10:24             ` Richard Stallman
  2020-12-26 11:01               ` Jean Louis
@ 2020-12-26 13:41               ` martin rudalics
  2020-12-27 16:25                 ` Juri Linkov
  1 sibling, 1 reply; 210+ messages in thread
From: martin rudalics @ 2020-12-26 13:41 UTC (permalink / raw)
  To: rms; +Cc: eliz, juri, emacs-devel

 > I'd like the old behavior for y-or-n-p, where any character not on
 > the list of special ones will err out of it.  With that behavior,
 > the question about nesting yes-or-no-p inside won't matter.

The most simple approach to get the old behavior back is to restore the
old code for 'y-or-n-p', rename it to something like 'y-or-n-p-old' and
call it when an option like `y-or-n-p-use-old' is non-nil.

martin



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

* Re: Confused by y-or-n-p
  2020-12-26 10:24     ` Richard Stallman
  2020-12-26 10:41       ` Sv: " arthur miller
  2020-12-26 10:49       ` Eli Zaretskii
@ 2020-12-26 13:45       ` martin rudalics
  2020-12-27  5:46         ` Richard Stallman
  2020-12-26 18:30       ` Drew Adams
  3 siblings, 1 reply; 210+ messages in thread
From: martin rudalics @ 2020-12-26 13:45 UTC (permalink / raw)
  To: rms, Juri Linkov; +Cc: eliz, emacs-devel

 > What was the reason for implementing this change in the
 > single-character-answer commands?  Who actually wanted the change in
 > behavior?  And for what use cases?

The old behavior was based on the assumption that the echo area and the
minibuffer contents are always shown in one and the same window (at
least wrt to one and the same frame).  This design has the basic flaw
that it will preclude forever showing echo area and minibuffer window in
separate areas of the screen: Otherwise, users would be asked
`yes-or-no-p' questions in one screen area, 'y-or-n-p' ones in another.

Now why would separating echo area and minibuffer window be desirable?
A main reason is that over the past years we started to show things in
the echo area that we didn't show there before, with the consequence
that prompts got more and more hidden by messages or some messages never
even made it to the echo area in the first place.  Ultimately, the time
sharing approach crashed under the load of messages.

So Eli started to visually separate the area where we prompt for user
input from the area where we show messages.  While this seems to work
for most of our more experienced users, less experienced ones (including
me) are now confused whenever they see a message that is completely
unrelated to the current interaction appear after the prompt.  We simply
have never in our life seen a program put notifications and user input
into one and the same screen line.

Finally, Juri made a first stab in unifying the 'yes-or-no-p' and
'y-or-n-p' behaviors by handling both via reading from the minibuffer.
This means that one can implement visual separation for these in the
same way, hopefully also in separate screen areas.

martin, with best wishes to father Edward



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

* RE: Confused by y-or-n-p
  2020-12-26 10:24     ` Richard Stallman
                         ` (2 preceding siblings ...)
  2020-12-26 13:45       ` martin rudalics
@ 2020-12-26 18:30       ` Drew Adams
  3 siblings, 0 replies; 210+ messages in thread
From: Drew Adams @ 2020-12-26 18:30 UTC (permalink / raw)
  To: rms, Juri Linkov, rudalics; +Cc: eliz, emacs-devel

>   > > Still I'd suggest to allow users to
>   > > separately choose for both, 'y-or-n-p' _and_
>   > > 'yes-or-no-p' dialogues, whether they want Emacs
>   > > to handle them in a modal or non-modal way.
> 
> That would have these drawbacks
> * It would mean extra complexity to debug, maintain, and document
> * It would not directly provide the old behavior, only a basis for it.
>   People who want that would have to implement that.
> 
> Does anyone really WANT this generality, or is it generality for
> generality's sake?
> 
>   > Indeed.  Here is a possible way to make the minibuffer modal:
>   > (defun minibuffer-lock ()
>   >   (when (active-minibuffer-window)
>   >     (select-window (active-minibuffer-window))))
> 
> I am not sure what behavior that would give.
> But I think it is NOT the behavior that y-or-n-p used to
> have, which was to reject unexpected answers.
> 
> What was the reason for implementing this change in the
> single-character-answer commands?  Who actually wanted
> the change in behavior?  And for what use cases?
> 
> If people really like the new behavior, I won't argue against it.
> But maybe we should turn it off by default, like recursive minibuffers.

FWIW:

I opposed this new behavior.  I think I was the only
one who did, but that impression might be wrong.

I opposed reading from the minibuffer for `y-or-n-p',
in part because it can break existing UI dialogs
(which may also involve the minibuffer at outer
levels), but also in part because of the reasons
you give (which are related).

I opposed wholesale replacement of uses of `read-key'
with use of the minibuffer.  (Not that 100% wholesale
replacement has occurred, but I sense that a general
motivation in that direction has taken hold of the
movers and shakers.)

IIRC, this change was done in bug threads.  I don't
think there was discussion in emacs-devel.  (Apology
if I remember this wrong).  In any case, as Eli is
wont to say, "That ship sailed long ago."  Alas.
___

Emacs 27 introduced several changes involving use of
the minibuffer, which unfortunately have broken my
personal use of Emacs (as well as some of my libraries,
which are used by some other users).

I use a standalone minibuffer frame, and I have lots
of dialogs that let you interact in virtually any way
with other buffers, etc. while a minibuffer interaction
is in progress.  E.g., for some commands that use the
minibuffer, you can hit keys that initiate sub-dialogs,
which can involve all kinds of things (and which
typically don't involve recursive minibuffers).

And the minibuffer, in my use, is very much an editing
buffer, i.e., most editing keys/commands act normally
there.  I want it to continue to be general this way.

I think some simplifying lockdowns of certain behavior
have been clamped onto the minibuffer lately, based on
(1) some assumptions that apply to presumed common
interactions and expectations, and (2) attempts to "fix"
some (relatively corner?) cases.  That's an impression
I have, and it's largely uninformed/ignorant, as I can't
really make use of Emacs since release 27.

So I don't use Emacs 27, and ditto for Emacs 28.  I do
sometimes submit bug reports for 27, as a result of
looking into some questions from other users.  But
those are mostly doc-bug reports.

Maybe, if I'm on the planet long enough and have
enough patience and interest, I'll eventually get to
the bottom of why I can't use Emacs 27+, what breaks
what, and find workarounds.  I'm not there now, and
I don't foresee ever going/getting there, alas.
I use Emacs 26.3, and perhaps always will.

Just one (hardly typical) user.



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

* Re: Confused by y-or-n-p
  2020-12-26 10:41       ` Sv: " arthur miller
@ 2020-12-27  5:38         ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-27  5:38 UTC (permalink / raw)
  To: arthur miller; +Cc: rudalics, eliz, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

For now, I ask people to make an option to restore the old behavior
of y-or-n-p and friends.  Please do this!

There will be plenty of time later to try out different ways of
handling them and see what people like.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-26 10:51             ` Eli Zaretskii
@ 2020-12-27  5:38               ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-27  5:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Does it work to type "C-x o" one or more times to get back into the
  > minibuffer?

I don't know for certain, but even if it does, the change is still a screw.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-26 13:45       ` martin rudalics
@ 2020-12-27  5:46         ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-27  5:46 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Thanks.  Now I see the reason for changing the internal mechanism
for y-or-n-p and such like.

I would still like to get the old behavior back.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-26 13:41               ` martin rudalics
@ 2020-12-27 16:25                 ` Juri Linkov
  2020-12-27 17:16                   ` martin rudalics
                                     ` (2 more replies)
  0 siblings, 3 replies; 210+ messages in thread
From: Juri Linkov @ 2020-12-27 16:25 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, rms, emacs-devel

> The most simple approach to get the old behavior back is to restore the
> old code for 'y-or-n-p', rename it to something like 'y-or-n-p-old' and
> call it when an option like `y-or-n-p-use-old' is non-nil.

This is exactly what we recently did for the function 'read-char-choice'.
Instead of changing its long-standing implementation that uses 'read-key',
we left it unchanged, and only changed its caller to rely on a different
function that uses the minibuffer to read a character.

The same way we could add a function with old implementation of 'y-or-n-p',
and depending on an option use either of them.  So two new options are
needed: to select an implementation of y-or-n-p and and also an option
to choose either to use yes-or-no-p or y-or-n-p with shorter answers.

Or maybe just one variable with three choices: long answers with yes-or-no-p,
short answers with read-key, short answers with the minibuffer.



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

* Re: Confused by y-or-n-p
  2020-12-27 16:25                 ` Juri Linkov
@ 2020-12-27 17:16                   ` martin rudalics
  2020-12-28  8:48                     ` Juri Linkov
  2020-12-27 18:06                   ` Eli Zaretskii
  2020-12-28  5:26                   ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: martin rudalics @ 2020-12-27 17:16 UTC (permalink / raw)
  To: Juri Linkov; +Cc: eliz, rms, emacs-devel

 > This is exactly what we recently did for the function 'read-char-choice'.
 > Instead of changing its long-standing implementation that uses 'read-key',
 > we left it unchanged, and only changed its caller to rely on a different
 > function that uses the minibuffer to read a character.

Do you mean 'dired-query' and 'zap-up-to-char'?

 > The same way we could add a function with old implementation of 'y-or-n-p',
 > and depending on an option use either of them.  So two new options are
 > needed: to select an implementation of y-or-n-p and and also an option
 > to choose either to use yes-or-no-p or y-or-n-p with shorter answers.

This would be OK I think.  With the "use the old implementation" option
going to Emacs 27.2 and the use 'y-or-n-p' instead of 'yes-or-no-p' to
master.

 > Or maybe just one variable with three choices: long answers with yes-or-no-p,
 > short answers with read-key, short answers with the minibuffer.

This would probably bother both conservative and more adventurous users
with something they'd never want.

martin



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

* Re: Confused by y-or-n-p
  2020-12-27 16:25                 ` Juri Linkov
  2020-12-27 17:16                   ` martin rudalics
@ 2020-12-27 18:06                   ` Eli Zaretskii
  2020-12-28  8:52                     ` Juri Linkov
  2020-12-28  5:26                   ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-27 18:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, rms, emacs-devel

> From: Juri Linkov <juri@linkov.net>
> Cc: rms@gnu.org,  eliz@gnu.org,  emacs-devel@gnu.org
> Date: Sun, 27 Dec 2020 18:25:08 +0200
> 
> The same way we could add a function with old implementation of 'y-or-n-p',
> and depending on an option use either of them.  So two new options are
> needed: to select an implementation of y-or-n-p and and also an option
> to choose either to use yes-or-no-p or y-or-n-p with shorter answers.

Could you please make such a change?



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

* Re: Confused by y-or-n-p
  2020-12-27 16:25                 ` Juri Linkov
  2020-12-27 17:16                   ` martin rudalics
  2020-12-27 18:06                   ` Eli Zaretskii
@ 2020-12-28  5:26                   ` Richard Stallman
  2020-12-28  5:51                     ` Drew Adams
  2020-12-28  8:59                     ` Juri Linkov
  2 siblings, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2020-12-28  5:26 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The same way we could add a function with old implementation of 'y-or-n-p',
  > and depending on an option use either of them.  So two new options are
  > needed: to select an implementation of y-or-n-p and

That is the right approach, but there are other places where Emacs asks
for a one-character answer and I'd like them to go back to the old
behavior also.

Perhaps you need to do this at the level of read-char-choice.

                                                        and also an option
  > to choose either to use yes-or-no-p or y-or-n-p with shorter answers.

If someone wants that option I see no harm in providing it.
Did anyone actually ask for it, or was it proposed simply in the
search for more alternative behaviors?

  > Or maybe just one variable with three choices: long answers with yes-or-no-p,
  > short answers with read-key, short answers with the minibuffer.

Ok, provided it is for all the one-character answers, not solely for
y-or-n-p.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* RE: Confused by y-or-n-p
  2020-12-28  5:26                   ` Richard Stallman
@ 2020-12-28  5:51                     ` Drew Adams
  2020-12-28  8:59                     ` Juri Linkov
  1 sibling, 0 replies; 210+ messages in thread
From: Drew Adams @ 2020-12-28  5:51 UTC (permalink / raw)
  To: rms, Juri Linkov; +Cc: rudalics, eliz, emacs-devel

> there are other places where Emacs asks
> for a one-character answer and I'd like
> them to go back to the old behavior also.

+1



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

* Re: Confused by y-or-n-p
  2020-12-27 17:16                   ` martin rudalics
@ 2020-12-28  8:48                     ` Juri Linkov
  0 siblings, 0 replies; 210+ messages in thread
From: Juri Linkov @ 2020-12-28  8:48 UTC (permalink / raw)
  To: martin rudalics; +Cc: eliz, rms, emacs-devel

>> This is exactly what we recently did for the function 'read-char-choice'.
>> Instead of changing its long-standing implementation that uses 'read-key',
>> we left it unchanged, and only changed its caller to rely on a different
>> function that uses the minibuffer to read a character.
>
> Do you mean 'dired-query' and 'zap-up-to-char'?

Only 'dired-query'.  'zap-up-to-char' is a different case.

>> The same way we could add a function with old implementation of 'y-or-n-p',
>> and depending on an option use either of them.  So two new options are
>> needed: to select an implementation of y-or-n-p and and also an option
>> to choose either to use yes-or-no-p or y-or-n-p with shorter answers.
>
> This would be OK I think.  With the "use the old implementation" option
> going to Emacs 27.2 and the use 'y-or-n-p' instead of 'yes-or-no-p' to
> master.
>
>> Or maybe just one variable with three choices: long answers with yes-or-no-p,
>> short answers with read-key, short answers with the minibuffer.
>
> This would probably bother both conservative and more adventurous users
> with something they'd never want.

I agree.



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

* Re: Confused by y-or-n-p
  2020-12-27 18:06                   ` Eli Zaretskii
@ 2020-12-28  8:52                     ` Juri Linkov
  2020-12-28  9:36                       ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Juri Linkov @ 2020-12-28  8:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, rms, emacs-devel

>> The same way we could add a function with old implementation of 'y-or-n-p',
>> and depending on an option use either of them.  So two new options are
>> needed: to select an implementation of y-or-n-p and and also an option
>> to choose either to use yes-or-no-p or y-or-n-p with shorter answers.
>
> Could you please make such a change?

Martin suggested to add the "use the old implementation" option
to Emacs 27.2.  Is it OK with you?



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

* Re: Confused by y-or-n-p
  2020-12-28  5:26                   ` Richard Stallman
  2020-12-28  5:51                     ` Drew Adams
@ 2020-12-28  8:59                     ` Juri Linkov
  1 sibling, 0 replies; 210+ messages in thread
From: Juri Linkov @ 2020-12-28  8:59 UTC (permalink / raw)
  To: Richard Stallman; +Cc: rudalics, eliz, emacs-devel

>   > The same way we could add a function with old implementation of 'y-or-n-p',
>   > and depending on an option use either of them.  So two new options are
>   > needed: to select an implementation of y-or-n-p and
>
> That is the right approach, but there are other places where Emacs asks
> for a one-character answer and I'd like them to go back to the old
> behavior also.
>
> Perhaps you need to do this at the level of read-char-choice.

Maybe by adding to the beginning of read-char-choice:

  (if read-char-from-minibuffer
      (read-char-from-minibuffer ...)

>                                                         and also an option
>   > to choose either to use yes-or-no-p or y-or-n-p with shorter answers.
>
> If someone wants that option I see no harm in providing it.
> Did anyone actually ask for it, or was it proposed simply in the
> search for more alternative behaviors?

Many users asked for such option for easier customization instead of
adding this unobvious setting to the init file:

  (fset 'yes-or-no-p 'y-or-n-p)



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

* Re: Confused by y-or-n-p
  2020-12-28  8:52                     ` Juri Linkov
@ 2020-12-28  9:36                       ` Eli Zaretskii
  2020-12-28 17:06                         ` Juri Linkov
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-28  9:36 UTC (permalink / raw)
  To: emacs-devel, Juri Linkov; +Cc: rudalics, rms

On December 28, 2020 10:52:08 AM GMT+02:00, Juri Linkov <juri@linkov.net> wrote:
> >> The same way we could add a function with old implementation of
> 'y-or-n-p',
> >> and depending on an option use either of them.  So two new options
> are
> >> needed: to select an implementation of y-or-n-p and and also an
> option
> >> to choose either to use yes-or-no-p or y-or-n-p with shorter
> answers.
> >
> > Could you please make such a change?
> 
> Martin suggested to add the "use the old implementation" option
> to Emacs 27.2.  Is it OK with you?

Yes, thanks.



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

* Re: Confused by y-or-n-p
  2020-12-28  9:36                       ` Eli Zaretskii
@ 2020-12-28 17:06                         ` Juri Linkov
  2020-12-28 17:28                           ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Juri Linkov @ 2020-12-28 17:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, rms, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 286 bytes --]

>> > Could you please make such a change?
>>
>> Martin suggested to add the "use the old implementation" option
>> to Emacs 27.2.  Is it OK with you?
>
> Yes, thanks.

Here is the first version of the patch for master.  If generally it's OK,
then it could be backported to Emacs 27.2:


[-- Attachment #2: use-read-key.patch --]
[-- Type: text/x-diff, Size: 6616 bytes --]

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 0f68b47073..f83824a272 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -145,7 +145,7 @@ dired--no-subst-explain
 (defun dired--no-subst-ask (char nb-occur details)
   (let ((hilit-char (propertize (string char) 'face 'warning))
         (choices `(?y ?n ?? ,@(when details '(?^)))))
-    (read-char-from-minibuffer
+    (read-char-choice
      (format-message
       (ngettext
        "%d occurrence of `%s' will not be substituted.  Proceed? (%s) "
@@ -1380,7 +1380,7 @@ dired-query
 			     (format " [Type yn!q or %s] "
 				     (key-description (vector help-char)))
 			   " [Type y, n, q or !] ")))
-	   (set sym (setq char (read-char-from-minibuffer prompt char-choices)))
+	   (set sym (setq char (read-char-choice prompt char-choices)))
 	   (if (memq char '(?y ?\s ?!)) t)))))
 
 \f
diff --git a/lisp/files.el b/lisp/files.el
index 70d451cccf..637aaa130a 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2141,7 +2141,7 @@ files--ask-user-about-large-file
                                       ("Yes" . ?y)
                                       ("No" . ?n)
                                       ("Open literally" . ?l)))
-                (read-char-from-minibuffer
+                (read-char-choice
                  (concat prompt " (y)es or (n)o or (l)iterally ")
                  '(?y ?Y ?n ?N ?l ?L)))))
         (cond ((memq choice '(?y ?Y)) nil)
@@ -3538,7 +3538,7 @@ hack-local-variables-confirm
 				 ", or C-v/M-v to scroll")))
 	       char)
 	  (if offer-save (push ?! exit-chars))
-	  (setq char (read-char-from-minibuffer prompt exit-chars))
+	  (setq char (read-char-choice prompt exit-chars))
 	  (when (and offer-save (= char ?!) unsafe-vars)
 	    (customize-push-and-save 'safe-local-variable-values unsafe-vars))
 	  (prog1 (memq char '(?! ?\s ?y))
diff --git a/lisp/subr.el b/lisp/subr.el
index 384dbb25cf..592c633a35 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2626,6 +2626,10 @@ read-number
 	    t)))
     n))
 
+(defvar read-char-choice-use-read-key nil
+  "Prefer `read-key' when reading a character by `read-char-choice'.
+Otherwise, use the minibuffer.")
+
 (defun read-char-choice (prompt chars &optional inhibit-keyboard-quit)
   "Read and return one of CHARS, prompting for PROMPT.
 Any input that is not one of CHARS is ignored.
@@ -2636,6 +2640,8 @@ read-char-choice
 If you bind the variable `help-form' to a non-nil value
 while calling this function, then pressing `help-char'
 causes it to evaluate `help-form' and display the result."
+  (if (not read-char-choice-use-read-key)
+      (read-char-from-minibuffer prompt chars)
   (unless (consp chars)
     (error "Called `read-char-choice' without valid char choices"))
   (let (char done show-help (helpbuf " *Char Help*"))
@@ -2673,7 +2679,7 @@ read-char-choice
 	      (keyboard-quit))))))))
     ;; Display the question with the answer.  But without cursor-in-echo-area.
     (message "%s%s" prompt (char-to-string char))
-    char))
+    char)))
 
 (defun sit-for (seconds &optional nodisp obsolete)
   "Redisplay, then wait for SECONDS seconds.  Stop when input is available.
@@ -2920,6 +2926,10 @@ y-or-n-p-insert-other
     (minibuffer-message "Please answer y or n")
     (sit-for 2)))
 
+(defvar y-or-n-p-use-read-key nil
+  "Prefer `read-key' when answering a \"y or n\" question by `y-or-n-p'.
+Otherwise, use the minibuffer.")
+
 (defvar empty-history)
 
 (defun y-or-n-p (prompt)
@@ -2980,6 +2990,41 @@ y-or-n-p
 	   use-dialog-box)
       (setq prompt (funcall padded prompt t)
 	    answer (x-popup-dialog t `(,prompt ("Yes" . act) ("No" . skip)))))
+     (y-or-n-p-use-read-key
+      ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state
+      ;; where all the keys were unbound (i.e. it somehow got triggered
+      ;; within read-key, apparently).  I had to kill it.
+      (setq prompt (funcall padded prompt))
+      (while
+          (let* ((scroll-actions '(recenter scroll-up scroll-down
+                                            scroll-other-window scroll-other-window-down))
+                 (key
+                  (let ((cursor-in-echo-area t))
+                    (when minibuffer-auto-raise
+                      (raise-frame (window-frame (minibuffer-window))))
+                    (read-key (propertize (if (memq answer scroll-actions)
+                                              prompt
+                                            (concat "Please answer y or n.  "
+                                                    prompt))
+                                          'face 'minibuffer-prompt)))))
+            (setq answer (lookup-key query-replace-map (vector key) t))
+            (cond
+             ((memq answer '(skip act)) nil)
+             ((eq answer 'recenter)
+              (recenter) t)
+             ((eq answer 'scroll-up)
+              (ignore-errors (scroll-up-command)) t)
+             ((eq answer 'scroll-down)
+              (ignore-errors (scroll-down-command)) t)
+             ((eq answer 'scroll-other-window)
+              (ignore-errors (scroll-other-window)) t)
+             ((eq answer 'scroll-other-window-down)
+              (ignore-errors (scroll-other-window-down)) t)
+             ((or (memq answer '(exit-prefix quit)) (eq key ?\e))
+              (signal 'quit nil) t)
+             (t t)))
+        (ding)
+        (discard-input)))
      (t
       (setq prompt (funcall padded prompt))
       (let* ((empty-history '())
diff --git a/lisp/userlock.el b/lisp/userlock.el
index ec76322337..249f40e9af 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -159,7 +159,7 @@ ask-user-about-supersession-threat
 	(message "%s" prompt)
 	(error "Cannot resolve conflict in batch mode"))
       (while (null answer)
-	(setq answer (read-char-from-minibuffer prompt choices))
+	(setq answer (read-char-choice prompt choices))
 	(cond ((memq answer '(?? ?\C-h))
 	       (ask-user-about-supersession-help)
 	       (setq answer nil))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 8250316bcc..bb5d26d29e 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -338,7 +338,7 @@ widget-choose
                                  '(display-buffer-in-direction
                                    (direction . bottom)
                                    (window-height . fit-window-to-buffer)))
-               (setq value (read-char-from-minibuffer
+               (setq value (read-char-choice
                             (format "%s: " title)
                             (mapcar #'car alist)))))
 	   (cdr (assoc value alist))))))

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

* Re: Confused by y-or-n-p
  2020-12-24 15:38 ` martin rudalics
  2020-12-24 20:47   ` Juri Linkov
  2020-12-25  4:40   ` Richard Stallman
@ 2020-12-28 17:09   ` Juri Linkov
  2020-12-29  8:53     ` martin rudalics
  2 siblings, 1 reply; 210+ messages in thread
From: Juri Linkov @ 2020-12-28 17:09 UTC (permalink / raw)
  To: martin rudalics; +Cc: Eli Zaretskii, Richard Stallman, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 240 bytes --]

> And while we're there we could also try to relieve some of our .emacs
> files (mine included) of those
>
> (defalias 'yes-or-no-p 'y-or-n-p)
>
> by providing an option that accomplishes the necessary mapping.

Maybe something like this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: use-short-answers.patch --]
[-- Type: text/x-diff, Size: 1193 bytes --]

diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 2e8872341f..4376f9835e 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -302,6 +302,7 @@ minibuffer-prompt-properties--setter
 	     ;; fns.c
 	     (use-dialog-box menu boolean "21.1")
 	     (use-file-dialog menu boolean "22.1")
+	     (use-short-answers menu boolean "28.1")
 	     (focus-follows-mouse
               frames (choice
                       (const :tag "Off (nil)" :value nil)
diff --git a/src/fns.c b/src/fns.c
index 2de1d26dd3..128bd7af55 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -2873,6 +2873,11 @@ DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, 1, 0,
       return obj;
     }
 
+  if (use_short_answers)
+    {
+      return call1 (intern ("y-or-n-p"), prompt);
+    }
+
   AUTO_STRING (yes_or_no, "(yes or no) ");
   prompt = CALLN (Fconcat, prompt, yes_or_no);
 
@@ -5791,6 +5796,10 @@ syms_of_fns (void)
 this variable.  */);
   use_file_dialog = true;
 
+  DEFVAR_BOOL ("use-short-answers", use_short_answers,
+    doc: /* Non-nil means `yes-or-no-p' uses shorter answers "y" or "n".  */);
+  use_short_answers = false;
+
   defsubr (&Sidentity);
   defsubr (&Srandom);
   defsubr (&Slength);

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

* Re: Confused by y-or-n-p
  2020-12-28 17:06                         ` Juri Linkov
@ 2020-12-28 17:28                           ` Eli Zaretskii
  2020-12-30  9:54                             ` Juri Linkov
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2020-12-28 17:28 UTC (permalink / raw)
  To: Juri Linkov, Richard Stallman; +Cc: rudalics, emacs-devel

> From: Juri Linkov <juri@linkov.net>
> Cc: emacs-devel@gnu.org,  rudalics@gmx.at, rms@gnu.org
> Date: Mon, 28 Dec 2020 19:06:32 +0200
> 
> Here is the first version of the patch for master.  If generally it's OK,
> then it could be backported to Emacs 27.2:

Richard, can you please try this and tell if it gives good results?

Thanks.



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

* Re: Confused by y-or-n-p
  2020-12-28 17:09   ` Juri Linkov
@ 2020-12-29  8:53     ` martin rudalics
  0 siblings, 0 replies; 210+ messages in thread
From: martin rudalics @ 2020-12-29  8:53 UTC (permalink / raw)
  To: Juri Linkov; +Cc: Eli Zaretskii, Richard Stallman, emacs-devel

 > Maybe something like this:

It's a bit more than just

   Non-nil means `yes-or-no-p' uses shorter answers "y" or "n".

because short circuiting it to 'y-or-n-p' means it will also obey
'y-or-n-p-use-read-key'.

martin



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

* Re: Confused by y-or-n-p
  2020-12-28 17:28                           ` Eli Zaretskii
@ 2020-12-30  9:54                             ` Juri Linkov
  2021-01-02  5:25                               ` Richard Stallman
                                                 ` (2 more replies)
  0 siblings, 3 replies; 210+ messages in thread
From: Juri Linkov @ 2020-12-30  9:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, Richard Stallman, emacs-devel

>> Here is the first version of the patch for master.  If generally it's OK,
>> then it could be backported to Emacs 27.2:
>
> Richard, can you please try this and tell if it gives good results?

This is installed now in master, so Richard could try this.



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

* Re: Confused by y-or-n-p
  2020-12-30  9:54                             ` Juri Linkov
@ 2021-01-02  5:25                               ` Richard Stallman
  2021-01-02 13:36                                 ` Richard Stallman
  2021-01-02  5:25                               ` Richard Stallman
  2021-01-02  5:25                               ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-02  5:25 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > This is installed now in master, so Richard could try this.

On Dec 31 I pulled master and built it.  But I don't see any sign
in it of code to read answers in the old way.

I will test with that patch.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-30  9:54                             ` Juri Linkov
  2021-01-02  5:25                               ` Richard Stallman
@ 2021-01-02  5:25                               ` Richard Stallman
  2021-01-02  5:25                               ` Richard Stallman
  2 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-02  5:25 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > This is installed now in master, so Richard could try this.

It does not seem to be installed.  On Dec 31 I did git pull and built
it.  But I don't see any sign in it of code to read answers in the old
way.

I will install that patch here and test it.

I didn't mean to ask people to rush to install it -- I didn't think it
was a hurry, so I just asked to be informed when it did get installed.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2020-12-30  9:54                             ` Juri Linkov
  2021-01-02  5:25                               ` Richard Stallman
  2021-01-02  5:25                               ` Richard Stallman
@ 2021-01-02  5:25                               ` Richard Stallman
  2021-01-02  7:06                                 ` Eli Zaretskii
  2 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-02  5:25 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > This is installed now in master, so Richard could try this.

It seems to work.

I think that y-or-n-p-use-read-key should default to t.
There is no hurry about making this change.
After this is included in a release, we can ask users
to try the value t for a week or two and tell us whether they like it.
Then we can tell which default is best.


By the way, I didn't mean to ask people to rush to install it -- I
didn't think it was a hurry, so I just asked to be informed when it
did get installed.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-02  5:25                               ` Richard Stallman
@ 2021-01-02  7:06                                 ` Eli Zaretskii
  2021-01-02  7:22                                   ` Lars Ingebrigtsen
  2021-01-03  6:03                                   ` Richard Stallman
  0 siblings, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-02  7:06 UTC (permalink / raw)
  To: rms; +Cc: rudalics, emacs-devel, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: eliz@gnu.org, rudalics@gmx.at, emacs-devel@gnu.org
> Date: Sat, 02 Jan 2021 00:25:37 -0500
> 
> I think that y-or-n-p-use-read-key should default to t.
> There is no hurry about making this change.

Personally, I won't mind reversing the default, FWIW.

> After this is included in a release, we can ask users
> to try the value t for a week or two and tell us whether they like it.
> Then we can tell which default is best.

This is not practical, IME.  Adoption of a new release by users is
very slow; I wouldn't be surprised if a year passed before major
distros made a new release their main one.  E.g., we are still getting
bug reports from people who use Emacs 25 and even 24, let alone 26,
although Emacs 27.1 was released 5 months ago.

So waiting for user reports could take a year or more, and by that
time we will probably have the next minor release, so the setting
becomes the de-facto standard that will be harder to change back.

That is why changes in behavior are usually accompanied by a
documented (in NEWS) way of getting the old behavior back.  This way,
users who want the old behavior can silently do that locally, and only
very annoying behavior changes generate so many bug reports that we
later consider reverting it.



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

* Re: Confused by y-or-n-p
  2021-01-02  7:06                                 ` Eli Zaretskii
@ 2021-01-02  7:22                                   ` Lars Ingebrigtsen
  2021-01-02 17:06                                     ` Drew Adams
                                                       ` (2 more replies)
  2021-01-03  6:03                                   ` Richard Stallman
  1 sibling, 3 replies; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-02  7:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, juri, rms, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> I think that y-or-n-p-use-read-key should default to t.
>> There is no hurry about making this change.
>
> Personally, I won't mind reversing the default, FWIW.

I think reversing the default would be less than optimal for two
reasons: 1) The new behaviour is in Emacs 27, and flopping back to the
Emacs 26 behaviour just sounds confusing, and 2) I think Emacs (by
default) should avoid being "modal".  Not being able to change buffers
on a y-or-n-p question makes it differ from how Emacs behaves in almost
all other circumstances, which makes it inconsistent.

But those who prefer that behaviour, like Richard, now has an option to
get that back.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-02  5:25                               ` Richard Stallman
@ 2021-01-02 13:36                                 ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-02 13:36 UTC (permalink / raw)
  To: juri, rudalics, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

I wrote

  > On Dec 31 I pulled master and built it.  But I don't see any sign
  > in it of code to read answers in the old way.

but later I found the code and tried it.  It worked.

Sometimes I "send" multiple versions of a message.
Since they are only "sent" into a directory of files, which I will
review later before going to bed. I don't worry about this;
I figure I will delete the old versions.

Last night I was falling asleep in my chair and didn't review
them carefully enough.

I apologize for the confusion.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* RE: Confused by y-or-n-p
  2021-01-02  7:22                                   ` Lars Ingebrigtsen
@ 2021-01-02 17:06                                     ` Drew Adams
  2021-01-02 17:14                                       ` Eli Zaretskii
  2021-01-03  6:06                                       ` Richard Stallman
  2021-01-03  6:01                                     ` Richard Stallman
  2021-01-03  6:01                                     ` Richard Stallman
  2 siblings, 2 replies; 210+ messages in thread
From: Drew Adams @ 2021-01-02 17:06 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Eli Zaretskii; +Cc: rudalics, emacs-devel, rms, juri

> >> I think that y-or-n-p-use-read-key should default to t.
> >> There is no hurry about making this change.
> >
> > Personally, I won't mind reversing the default, FWIW.
> 
> I think reversing the default would be less than optimal for two
> reasons: 1) The new behaviour is in Emacs 27, and flopping back to the
> Emacs 26 behaviour just sounds confusing

See - that's the problem with saying that Emacs
can just go ahead and change stuff, because we
can always backtrack later.

The cement overshoes start to harden immediately.
People then make arguments like that one: it's
already been released, so we shouldn't, or we
can't, change it back.  "Less than optimal."
"That ship has already sailed."  "The horse is
already out of the barn."

> I think Emacs (by default) should avoid being
> "modal".  Not being able to change buffers on
> a y-or-n-p question makes it differ from how
> Emacs behaves in almost all other
> circumstances, which makes it inconsistent.

Yes, "almost all other".  Emacs has _always_
been inconsistent in that way - by design.

Emacs has always been modal in contexts where
it's important to require an immediate answer,
e.g. a confirmation.  That's always been a
general exception.
___

But note the difference with `yes-or-no-p'.
On the one hand, it requires more typing,
inviting more attention and limiting
accidental mischoice.  On the other hand, it
does _not_ prevent delaying a response and
performing other actions.

Consider changing to another buffer, opening
another file,getting some help, etc., while
confirmation awaits:

  (let ((enable-recursive-minibuffers  t))
    (yes-or-no-p "Are you sure? "))
___

Beyond that, what you say there, which I agree
with as a general rule, flies in the face of
recent _big_ changes wrt preventing keeping
the minibuffer active, changing focus somewhere
else, doing other stuff, and coming back to the
minibuffer (or never coming back: `C-g').

That kind of interaction is super-important to
my own use of Emacs.  Now it's been impeded.

Imposing a predetermined rule about focusing,
making hard-coded assumptions about minibuffer
interaction, prevents users from changing focus
the way they want, and so doing what they want.

It was wrong to assume that minibuffer
interaction always follows, and should follow,
some single, rigid pattern.  On l'a niqué, le
pauvre minibuffer.

As a general rule, the minibuffer should not,
in any way, be forced to be modal - wrt its
focus or anything else.  Not by default - modal
behavior can be programmed for it, but that
shouldn't be part of its general design.



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

* Re: Confused by y-or-n-p
  2021-01-02 17:06                                     ` Drew Adams
@ 2021-01-02 17:14                                       ` Eli Zaretskii
  2021-01-03  6:06                                       ` Richard Stallman
  1 sibling, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-02 17:14 UTC (permalink / raw)
  To: Drew Adams; +Cc: rudalics, larsi, emacs-devel, rms, juri

> Date: Sat, 2 Jan 2021 09:06:55 -0800 (PST)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: rudalics@gmx.at, juri@linkov.net, rms@gnu.org, emacs-devel@gnu.org
> 
> > I think reversing the default would be less than optimal for two
> > reasons: 1) The new behaviour is in Emacs 27, and flopping back to the
> > Emacs 26 behaviour just sounds confusing
> 
> See - that's the problem with saying that Emacs
> can just go ahead and change stuff, because we
> can always backtrack later.

No one has said that, you are bringing up a strawman.



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

* Re: Confused by y-or-n-p
  2021-01-02  7:22                                   ` Lars Ingebrigtsen
  2021-01-02 17:06                                     ` Drew Adams
@ 2021-01-03  6:01                                     ` Richard Stallman
  2021-01-03  6:01                                     ` Richard Stallman
  2 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-03  6:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: rudalics, eliz, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > ) The new behaviour is in Emacs 27,

That change was released just a few months ago.  So let's ask the
users whether they like it.

                                        and flopping back to the
  > Emacs 26 behaviour just sounds confusing,

Making the change was the potentially confusing step.

We must be ready to reverse a change if people prefer the old way.
Any argument which leads to the conclusion that we should be
reluctant to do that is a reductio ad absurdam.

If the users like this change, we should keep it.  If they don't, we
should revert it.

Would someone be willing to run a poll about this?

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-02  7:22                                   ` Lars Ingebrigtsen
  2021-01-02 17:06                                     ` Drew Adams
  2021-01-03  6:01                                     ` Richard Stallman
@ 2021-01-03  6:01                                     ` Richard Stallman
  2021-01-04 18:03                                       ` Juri Linkov
  2 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-03  6:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: rudalics, eliz, juri, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Since y-or-n-p-use-read-key affects more than just y-or-n-p,
perhaps it should be renamed to indicate that.

I propose the name single-key-answers. but I am not
entirely happy with it.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-02  7:06                                 ` Eli Zaretskii
  2021-01-02  7:22                                   ` Lars Ingebrigtsen
@ 2021-01-03  6:03                                   ` Richard Stallman
  2021-01-03 15:13                                     ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-03  6:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, juri, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > After this is included in a release, we can ask users
  > > to try the value t for a week or two and tell us whether they like it.
  > > Then we can tell which default is best.

  > This is not practical, IME.

I beg to differ.

                                 Adoption of a new release by users is
  > very slow; I wouldn't be surprised if a year passed before major
  > distros made a new release their main one.  E.g., we are still getting
  > bug reports from people who use Emacs 25 and even 24, let alone 26,
  > although Emacs 27.1 was released 5 months ago.

That is true, but it may not be a problem.  To get useful results, we
don't need most of the community to switch.  It is enough to get
answers from a variety of users.

I suggested asking users to try the value t for a week or two.  (See
quotation above.)  That means, a user should not be too quick to
reject the new setting; give the new feature a try for 10-15 days
to see if it grows on you.

Likewise, we should not be in a hurry about getting the answers.  We
can wait a few months if necessary while accumulating users'
responses.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-02 17:06                                     ` Drew Adams
  2021-01-02 17:14                                       ` Eli Zaretskii
@ 2021-01-03  6:06                                       ` Richard Stallman
  2021-01-03 15:16                                         ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-03  6:06 UTC (permalink / raw)
  To: Drew Adams; +Cc: rudalics, larsi, juri, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > I think reversing the default would be less than optimal for two
  > > reasons: 1) The new behaviour is in Emacs 27, and flopping back to the
  > > Emacs 26 behaviour just sounds confusing

  > See - that's the problem with saying that Emacs
  > can just go ahead and change stuff, because we
  > can always backtrack later.

Your response is stated in a somewhat flip tone, but its point is
valid.  As you've stated, there is a lot of resistance to changing
back.

The dynamic that results is this:

* A few people decide to make a UI change, which many have not noticed.

* Some people eventually notice it in master, or in a release, and maybe
  people start objecting.

* At that point there is resistance to changing back.

The end result is a tendency to make changes because a few people
are in favor of them, and then it is hard to avoid them.

Here is how I think it should work.

* A few people decide to make a UI change, which many have not noticed.

* Someone points out that such a change should be discussed on
  emacs-devel.  So they do that, before installation.

* If some are opposed, they install the feature with a variable to
  enable it, disabled by default.

* Some time later -- it need not be soon -- poll the users and see who
  likes it _and why_.  Maybe change the default.

This will (1) eliminate the bad dynamic, (2) result in installing
these features quickly but with a variable to enable, and (3) in a
reasonable period adopt a default based on knowing who likes the
feature.
-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-03  6:03                                   ` Richard Stallman
@ 2021-01-03 15:13                                     ` Eli Zaretskii
  2021-01-05  6:25                                       ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-03 15:13 UTC (permalink / raw)
  To: rms; +Cc: rudalics, juri, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, emacs-devel@gnu.org, juri@linkov.net
> Date: Sun, 03 Jan 2021 01:03:00 -0500
> 
>   > > After this is included in a release, we can ask users
>   > > to try the value t for a week or two and tell us whether they like it.
>   > > Then we can tell which default is best.
> 
>                                  Adoption of a new release by users is
>   > very slow; I wouldn't be surprised if a year passed before major
>   > distros made a new release their main one.  E.g., we are still getting
>   > bug reports from people who use Emacs 25 and even 24, let alone 26,
>   > although Emacs 27.1 was released 5 months ago.
> 
> That is true, but it may not be a problem.  To get useful results, we
> don't need most of the community to switch.  It is enough to get
> answers from a variety of users.

Which users should they be, and how do we find them and reach out to
them?

They should definitely be users who have the just-released version
installed, which is why I mentioned the observation that the process
of upgrading to a new version is slow and takes many moons.

> Likewise, we should not be in a hurry about getting the answers.  We
> can wait a few months if necessary while accumulating users'
> responses.

Let's say we have half a dozen of such features, and we need to wait
for the answers for a few months about each one of them.  Who can have
a long enough attention span to manage such a polling system? who can
keep track of all those features even though we could switch branches
and release a couple of versions in-between?  If someone volunteers to
do the job, then I'm okay with trying that, although I'm skeptical as
to success chances.  If no one volunteers, I don't see how we could do
something like that.  We don't even have a forum for conducting such
polls, let alone a tried and working procedure.



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

* Re: Confused by y-or-n-p
  2021-01-03  6:06                                       ` Richard Stallman
@ 2021-01-03 15:16                                         ` Eli Zaretskii
  2021-01-04  5:16                                           ` Richard Stallman
                                                             ` (2 more replies)
  0 siblings, 3 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-03 15:16 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: larsi@gnus.org, eliz@gnu.org, rudalics@gmx.at,
> 	emacs-devel@gnu.org, juri@linkov.net
> Date: Sun, 03 Jan 2021 01:06:18 -0500
> 
> The dynamic that results is this:
> 
> * A few people decide to make a UI change, which many have not noticed.
> 
> * Some people eventually notice it in master, or in a release, and maybe
>   people start objecting.
> 
> * At that point there is resistance to changing back.

The resistance is understandable, but when this happens on master, and
the objections are valid and supported by enough people, we usually
augment or revert the change.

When this happens in a released version, the resistance is justifiably
stronger.  But those cases should be (and are, IME) very rare.

> The end result is a tendency to make changes because a few people
> are in favor of them, and then it is hard to avoid them.

There's no need and no justification for such generalizations based on
a single incident.  The adverse results you describe are extremely
rare in practice.  In some cases (some people say too many) the
situation is actually the exact opposite: changes are being discussed
"to death" and sometimes never implemented due to controversy.
However, most changes are discussed by suitable groups of people, the
various opinions are heard, and we usually try to accommodate them in
the solution that is actually installed.

So there's no need to present an isolated and exceptional incident as
if it were the rule.

> * A few people decide to make a UI change, which many have not noticed.
> 
> * Someone points out that such a change should be discussed on
>   emacs-devel.  So they do that, before installation.

That is being done already, where we see it necessary.

However, I see no reason to single out emacs-devel as the only medium
suitable for such discussions.  The Emacs issue tracker is another
valid medium for that.  Some changes are so significant that we do
indeed decide to move them to emacs-devel, but I see no reason to do
that for every behavior change.  Moving a discussion has its
downsides: depending on your MUA you can lose the threading
capabilities; some people fail to notice and continue sending messages
to the bug list; some people start cross-posting to both lists and
thus increase the noise level; future forensics will be harder because
references to discussions on emacs-devel are incomplete; etc.  Thus,
we insist on moving the discussions to emacs-devel only for
significant enough issues -- and which ones are significant is a
judgment call.

> * If some are opposed, they install the feature with a variable to
>   enable it, disabled by default.

This is already being done: every backward-incompatible change is
either required to become compatible, or, if that's not feasible, to
provide a way to get back the old behavior.  In some rare cases this
doesn't happen, but such mistakes are rare exceptions, they aren't the
rule.

> * Some time later -- it need not be soon -- poll the users and see who
>   likes it _and why_.  Maybe change the default.

Volunteers are welcome to step forward and take upon themselves the
responsibilities for conducting such polls.  Failing that, I don't see
how we can promise doing this as a matter of routine.



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

* Re: Confused by y-or-n-p
  2021-01-03 15:16                                         ` Eli Zaretskii
@ 2021-01-04  5:16                                           ` Richard Stallman
  2021-01-04  6:10                                             ` Stefan Monnier
                                                               ` (2 more replies)
  2021-01-04  5:17                                           ` Richard Stallman
  2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
  2 siblings, 3 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-04  5:16 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > When this happens in a released version, the resistance is justifiably
  > stronger.  But those cases should be (and are, IME) very rare.

My point is that they are not so rare -- there is a systematic tendency
for that to happen.

I am proposing a systematic way to make them less likely, by helping
people take notice that a UI change is being proposed, so they can
object quickly.

  > situation is actually the exact opposite: changes are being discussed
  > "to death" and sometimes never implemented due to controversy.

My proposal will help with that problem too.  Instead of waiting for a
resolution of the dispute, we should install the change with a user
option variable to enable the new behavior.  That bypasss the dispute.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-03 15:16                                         ` Eli Zaretskii
  2021-01-04  5:16                                           ` Richard Stallman
@ 2021-01-04  5:17                                           ` Richard Stallman
  2021-01-04  6:12                                             ` Stefan Monnier
  2021-01-04 15:01                                             ` Eli Zaretskii
  2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
  2 siblings, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-04  5:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > However, I see no reason to single out emacs-devel as the only medium
  > suitable for such discussions.  The Emacs issue tracker is another
  > valid medium for that.

It may be "valid" in principle, but it is no a wise choice for changes
in the Emacs command interface.  If we want to be confident that users
will notice plans for changes, and say if they object, before the
change is in a release, we are obliged to help users notice.

  > > * Some time later -- it need not be soon -- poll the users and see who
  > >   likes it _and why_.  Maybe change the default.

  > Volunteers are welcome to step forward and take upon themselves the
  > responsibilities for conducting such polls.  Failing that, I don't see
  > how we can promise doing this as a matter of routine.

That's not difficult.  People who want to make the new behavior the default
will be motivated to conduct the inquiry.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04  5:16                                           ` Richard Stallman
@ 2021-01-04  6:10                                             ` Stefan Monnier
  2021-01-04  7:54                                               ` Stefan Kangas
  2021-01-04 10:28                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-04  8:52                                             ` Lars Ingebrigtsen
  2021-01-04 14:59                                             ` Eli Zaretskii
  2 siblings, 2 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-04  6:10 UTC (permalink / raw)
  To: Richard Stallman
  Cc: juri, rudalics, Eli Zaretskii, emacs-devel, larsi, drew.adams

> I am proposing a systematic way to make them less likely, by helping
> people take notice that a UI change is being proposed, so they can
> object quickly.

In most cases, the reaction to UI changes is to complain about the
change because it's ... different.  That makes for very poor arguments,
*especially* when the change is discussed without people having actually
tried it out for a while to see how it plays out in practice after the
initial "bump".

So, IMO always discussing such changes before implementing the change
may be systematic but it is definitely not the best solution.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-04  5:17                                           ` Richard Stallman
@ 2021-01-04  6:12                                             ` Stefan Monnier
  2021-01-04 15:01                                             ` Eli Zaretskii
  1 sibling, 0 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-04  6:12 UTC (permalink / raw)
  To: Richard Stallman
  Cc: juri, rudalics, Eli Zaretskii, emacs-devel, larsi, drew.adams

> That's not difficult.  People who want to make the new behavior the default
> will be motivated to conduct the inquiry.

More likely, they'll just be discouraged to contribute and will focus on
Spacemacs, Doom, etc... instead.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-04  6:10                                             ` Stefan Monnier
@ 2021-01-04  7:54                                               ` Stefan Kangas
  2021-01-04  9:21                                                 ` martin rudalics
                                                                   ` (4 more replies)
  2021-01-04 10:28                                               ` Gregory Heytings via Emacs development discussions.
  1 sibling, 5 replies; 210+ messages in thread
From: Stefan Kangas @ 2021-01-04  7:54 UTC (permalink / raw)
  To: Stefan Monnier, Richard Stallman
  Cc: emacs-devel, rudalics, Eli Zaretskii, juri, larsi, drew.adams

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> I am proposing a systematic way to make them less likely, by helping
>> people take notice that a UI change is being proposed, so they can
>> object quickly.
>
> In most cases, the reaction to UI changes is to complain about the
> change because it's ... different.  That makes for very poor arguments,
> *especially* when the change is discussed without people having actually
> tried it out for a while to see how it plays out in practice after the
> initial "bump".
>
> So, IMO always discussing such changes before implementing the change
> may be systematic but it is definitely not the best solution.

I agree completely.

To my mind, people running the bleeding edge (i.e. master) also
implicitly agree to test out new feature changes before they are
released.  So here's a suggestion: perhaps we should think about
sometimes carrying out time-boxed experiments on the master branch in
controversial cases.  For example: we add this keybinding now, to be
revisited in 14/21/30 days and then a final discussion is taken to keep
or revert it once people have gotten some experience with it.

I think this could work better than encouraging people to apply patches
or use a branch, since the people opposing them are less likely to do
so.  (And anyone who *really* don't want to participate can of course
still just revert that commit locally and carry on as before until the
experiment is over.)

This should be in the interest also of opponents of the change.  They
now have a very strong argument against discussing it further: "we tried
it on master and it was very unpopular so please don't beat this dead
horse".

(Of course, this would require people to also keep an open mind and a
willingness to change, or it will just be automatically shot down in the
next round of discussions.  Not sure what, if anything, can be done
about that.)



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

* Re: Confused by y-or-n-p
  2021-01-04  5:16                                           ` Richard Stallman
  2021-01-04  6:10                                             ` Stefan Monnier
@ 2021-01-04  8:52                                             ` Lars Ingebrigtsen
  2021-01-05  6:33                                               ` Richard Stallman
  2021-01-04 14:59                                             ` Eli Zaretskii
  2 siblings, 1 reply; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-04  8:52 UTC (permalink / raw)
  To: Richard Stallman; +Cc: rudalics, Eli Zaretskii, emacs-devel, drew.adams, juri

Richard Stallman <rms@gnu.org> writes:

> I am proposing a systematic way to make them less likely, by helping
> people take notice that a UI change is being proposed, so they can
> object quickly.

Three out of five Emacs maintainers have now weighed in (at some length,
in total), that they don't think your proposal would be helpful in
practice, so I think it's time to let this go.  

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04  7:54                                               ` Stefan Kangas
@ 2021-01-04  9:21                                                 ` martin rudalics
  2021-01-04  9:24                                                   ` Lars Ingebrigtsen
  2021-01-04 15:09                                                 ` Eli Zaretskii
                                                                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 210+ messages in thread
From: martin rudalics @ 2021-01-04  9:21 UTC (permalink / raw)
  To: Stefan Kangas, Stefan Monnier, Richard Stallman
  Cc: Eli Zaretskii, juri, larsi, drew.adams, emacs-devel

 > To my mind, people running the bleeding edge (i.e. master) also
 > implicitly agree to test out new feature changes before they are
 > released.  So here's a suggestion: perhaps we should think about
 > sometimes carrying out time-boxed experiments on the master branch in
 > controversial cases.  For example: we add this keybinding now, to be
 > revisited in 14/21/30 days and then a final discussion is taken to keep
 > or revert it once people have gotten some experience with it.

I tried that once when I wanted people to test whether horizontal scroll
bars work on their machines.  It didn't take long to read the first "gentle"
request on this list about how to switch them off ...

martin



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

* Re: Confused by y-or-n-p
  2021-01-04  9:21                                                 ` martin rudalics
@ 2021-01-04  9:24                                                   ` Lars Ingebrigtsen
  2021-01-04  9:55                                                     ` martin rudalics
  0 siblings, 1 reply; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-04  9:24 UTC (permalink / raw)
  To: martin rudalics
  Cc: Richard Stallman, juri, Stefan Kangas, Eli Zaretskii, emacs-devel,
	drew.adams, Stefan Monnier

martin rudalics <rudalics@gmx.at> writes:

> I tried that once when I wanted people to test whether horizontal scroll
> bars work on their machines.  It didn't take long to read the first "gentle"
> request on this list about how to switch them off ...

I hope you gently told them where to go.  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04  9:24                                                   ` Lars Ingebrigtsen
@ 2021-01-04  9:55                                                     ` martin rudalics
  2021-01-04 11:28                                                       ` Andrea Corallo via Emacs development discussions.
  2021-01-04 14:58                                                       ` Dmitry Gutov
  0 siblings, 2 replies; 210+ messages in thread
From: martin rudalics @ 2021-01-04  9:55 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Richard Stallman, emacs-devel, Stefan Kangas, Eli Zaretskii, juri,
	drew.adams, Stefan Monnier

 >> I tried that once when I wanted people to test whether horizontal scroll
 >> bars work on their machines.  It didn't take long to read the first "gentle"
 >> request on this list about how to switch them off ...
 >
 > I hope you gently told them where to go.  :-)

I told them how to switch them off - they didn't even bother to look for
the knob themselves.  But it taught me the lesson to never ever try such
a thing again.  The toughest resistance always comes from veterans and
fellow developers ...

martin



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

* Re: Confused by y-or-n-p
  2021-01-03 15:16                                         ` Eli Zaretskii
  2021-01-04  5:16                                           ` Richard Stallman
  2021-01-04  5:17                                           ` Richard Stallman
@ 2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-04 11:02                                             ` Alan Mackenzie
                                                               ` (2 more replies)
  2 siblings, 3 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-04 10:28 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel


>> The dynamic that results is this:
>>
>> * A few people decide to make a UI change, which many have not noticed.
>>
>> * Some people eventually notice it in master, or in a release, and 
>> maybe people start objecting.
>>
>> * At that point there is resistance to changing back.
>
> The resistance is understandable, but when this happens on master, and 
> the objections are valid and supported by enough people, we usually 
> augment or revert the change.
>

I don't think it's "enough people"; it is, rather, "important enough 
people" ;-)

>> * If some are opposed, they install the feature with a variable to 
>> enable it, disabled by default.
>
> This is already being done: every backward-incompatible change is either 
> required to become compatible, or, if that's not feasible, to provide a 
> way to get back the old behavior.  In some rare cases this doesn't 
> happen, but such mistakes are rare exceptions, they aren't the rule.
>

That's not correct, see for example the thread "Stop frames stealing 
eachothers' minibuffers!", in which the longstanding behavior of Emacs' 
minibuffers, which are arguably a central piece of Emacs' UI, is being 
modified on the pretext that it is "unsystematic", without any argument, 
and in spite of the fact that hundreds and thousands of users have been 
using it without complaining about that supposed "unsystematicity".

I repeatedly explained that the old behavior should remain available. 
Initially the change explicitly removed the old behavior: "The old 
[behavior] is no longer available."  The latest patch sent yesterday, only 
promises to "approximate" the old behavior.



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

* Re: Confused by y-or-n-p
  2021-01-04  6:10                                             ` Stefan Monnier
  2021-01-04  7:54                                               ` Stefan Kangas
@ 2021-01-04 10:28                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-04 17:22                                                 ` Stefan Monnier
  2021-01-05  6:29                                                 ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-04 10:28 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


>> I am proposing a systematic way to make them less likely, by helping 
>> people take notice that a UI change is being proposed, so they can 
>> object quickly.
>
> In most cases, the reaction to UI changes is to complain about the 
> change because it's ... different.  That makes for very poor arguments, 
> *especially* when the change is discussed without people having actually 
> tried it out for a while to see how it plays out in practice after the 
> initial "bump".
>

I agree with you, but I think you are missing Richard's main point: any 
significant UI change should either require setting a variable, or provide 
a way to disable the new behavior / re-enable to old behavior.  Because it 
is always possible that, after having actually tried out a new behavior 
for a while, people dislike it.  For example because they use Emacs in a 
way that was not envisioned by the developer who implemented the UI 
change, and that this UI change breaks their configuration, which relied 
on the old behavior.

I can't speak for everyone, but I think one of the reasons people use and 
like Emacs is that it is stable.  Breaking its stability unavoidably 
creates frictions.

An simple and good example is the :extend attribute, which was added in 
Emacs 27.  People who liked the old behavior simply had to add an ":extend 
t" attribute to a number of faces in their configuration, and that's all.



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

* Re: Confused by y-or-n-p
  2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
@ 2021-01-04 11:02                                             ` Alan Mackenzie
  2021-01-04 11:35                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-04 15:19                                             ` Eli Zaretskii
  2021-01-05  6:44                                             ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: Alan Mackenzie @ 2021-01-04 11:02 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel

Hello, Gregory.

On Mon, Jan 04, 2021 at 10:28:25 +0000, Gregory Heytings via Emacs development discussions. wrote:

> >> The dynamic that results is this:

> >> * A few people decide to make a UI change, which many have not noticed.

> >> * Some people eventually notice it in master, or in a release, and 
> >> maybe people start objecting.

> >> * At that point there is resistance to changing back.

> > The resistance is understandable, but when this happens on master, and 
> > the objections are valid and supported by enough people, we usually 
> > augment or revert the change.


> I don't think it's "enough people"; it is, rather, "important enough 
> people" ;-)

> >> * If some are opposed, they install the feature with a variable to 
> >> enable it, disabled by default.

> > This is already being done: every backward-incompatible change is either 
> > required to become compatible, or, if that's not feasible, to provide a 
> > way to get back the old behavior.  In some rare cases this doesn't 
> > happen, but such mistakes are rare exceptions, they aren't the rule.


> That's not correct, see for example the thread "Stop frames stealing 
> eachothers' minibuffers!", in which the longstanding behavior of Emacs' 
> minibuffers, which are arguably a central piece of Emacs' UI, is being 
> modified on the pretext that it is "unsystematic", without any argument, 
> and in spite of the fact that hundreds and thousands of users have been 
> using it without complaining about that supposed "unsystematicity".

There has been argument, on that other thread, which you have taken part
in, and which now extends to nearly 200 posts.  That few people
complained about the old behaviour is not a strong argument against
improving it.  Many improvements to Emacs are made without being prompted
by widespread complaints.

> I repeatedly explained that the old behavior should remain available. 
> Initially the change explicitly removed the old behavior: "The old 
> [behavior] is no longer available."  The latest patch sent yesterday, only 
> promises to "approximate" the old behavior.

It would thus appear that you are an "important enough person".  I put
the old behaviour back as a result of your representations, despite not
understanding why anybody might want it.  However, since I've tidied up
the C code appreciably, I cannot guarantee that this behaviour is 100%
the same as the old, hence the use of the word "approximate".

Have you tried this patch out, yet?  If there is anything in the
"approximation" which is not close enough, perhaps you could point out
what, so that I might fix it.  Thanks!

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: Confused by y-or-n-p
  2021-01-04  9:55                                                     ` martin rudalics
@ 2021-01-04 11:28                                                       ` Andrea Corallo via Emacs development discussions.
  2021-01-04 14:58                                                       ` Dmitry Gutov
  1 sibling, 0 replies; 210+ messages in thread
From: Andrea Corallo via Emacs development discussions. @ 2021-01-04 11:28 UTC (permalink / raw)
  To: martin rudalics
  Cc: Richard Stallman, juri, Stefan Kangas, Lars Ingebrigtsen,
	emacs-devel, Eli Zaretskii, drew.adams, Stefan Monnier

martin rudalics <rudalics@gmx.at> writes:

>>> I tried that once when I wanted people to test whether horizontal scroll
>>> bars work on their machines.  It didn't take long to read the first "gentle"
>>> request on this list about how to switch them off ...
>>
>> I hope you gently told them where to go.  :-)
>
> I told them how to switch them off - they didn't even bother to look for
> the knob themselves.  But it taught me the lesson to never ever try such
> a thing again.  The toughest resistance always comes from veterans and
> fellow developers ...

My 2 cents,

I may be wrong but to my observation the toughest resistance comes
typically from few veterans who hardly ever wrote a patch, not
developers.  Given the day is 24H people doing development just can't
physically commit all this time arguing for one way or the other for
sustained periods of time.

The result is that often developers just (sadly) fall back on writing
patches as this is perceived to be more useful.

  Andrea



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

* Re: Confused by y-or-n-p
  2021-01-04 11:02                                             ` Alan Mackenzie
@ 2021-01-04 11:35                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-04 12:34                                                 ` Alan Mackenzie
  0 siblings, 1 reply; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-04 11:35 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: emacs-devel


>> That's not correct, see for example the thread "Stop frames stealing 
>> eachothers' minibuffers!", in which the longstanding behavior of Emacs' 
>> minibuffers, which are arguably a central piece of Emacs' UI, is being 
>> modified on the pretext that it is "unsystematic", without any 
>> argument, and in spite of the fact that hundreds and thousands of users 
>> have been using it without complaining about that supposed 
>> "unsystematicity".
>
> There has been argument, on that other thread, which you have taken part 
> in, and which now extends to nearly 200 posts.
>

I haven't seen a single argument in that thread to remove the current 
behavior.  I've only seen an argument that you (and only you AFAICS) don't 
like it.

>
> That few people complained about the old behaviour is not a strong 
> argument against improving it.  Many improvements to Emacs are made 
> without being prompted by widespread complaints.
>

I never ever objected the idea of improving the minibuffer behavior.  I 
strongly objected the idea of removing its longstanding behavior.

>> I repeatedly explained that the old behavior should remain available. 
>> Initially the change explicitly removed the old behavior: "The old 
>> [behavior] is no longer available."  The latest patch sent yesterday, 
>> only promises to "approximate" the old behavior.
>
> It would thus appear that you are an "important enough person".
>

No, quite the contrary.

>
> I put the old behaviour back as a result of your representations, 
> despite not understanding why anybody might want it.
>

That's the problem I mentioned in my other email: "because [some users] 
use Emacs in a way that was not envisioned by the developer who 
implemented the UI change, and that this UI change breaks their 
configuration, which relied on the old behavior".  We cannot know what 
kind of exotic things people do with Emacs, and the only way to ensure 
that it is stable is to keep the old behavior alongside the new one, at 
least for some time.  Some time later (one or two major releases later, 
say) the old behavior can of course be deprecated, with a target release 
when this will happen.  That gives users the time to adapt their libraries 
and configurations.  But all of a sudden removing the old behavior and 
installing a new one is IMO wrong.

>
> However, since I've tidied up the C code appreciably, I cannot guarantee 
> that this behaviour is 100% the same as the old, hence the use of the 
> word "approximate".
>
> Have you tried this patch out, yet?  If there is anything in the 
> "approximation" which is not close enough, perhaps you could point out 
> what, so that I might fix it.  Thanks!
>

Not yet, I'll do that, but can't promise when.  But the problem is that I 
am now, and everybody else is now, in a situation where we have to spend a 
lot of time testing various combinations of commands and to describe what 
doesn't work anymore, which inevitably leads to very long and boring mails 
and discussions.



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

* Re: Confused by y-or-n-p
  2021-01-04 11:35                                               ` Gregory Heytings via Emacs development discussions.
@ 2021-01-04 12:34                                                 ` Alan Mackenzie
  2021-01-04 13:10                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-04 17:21                                                   ` martin rudalics
  0 siblings, 2 replies; 210+ messages in thread
From: Alan Mackenzie @ 2021-01-04 12:34 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

Hello, Gregory.

On Mon, Jan 04, 2021 at 11:35:19 +0000, Gregory Heytings via Emacs development discussions. wrote:

> >> That's not correct, see for example the thread "Stop frames stealing 
> >> eachothers' minibuffers!", in which the longstanding behavior of Emacs' 
> >> minibuffers, which are arguably a central piece of Emacs' UI, is being 
> >> modified on the pretext that it is "unsystematic", without any 
> >> argument, and in spite of the fact that hundreds and thousands of users 
> >> have been using it without complaining about that supposed 
> >> "unsystematicity".

> > There has been argument, on that other thread, which you have taken part 
> > in, and which now extends to nearly 200 posts.


> I haven't seen a single argument in that thread to remove the current 
> behavior.  I've only seen an argument that you (and only you AFAICS) don't 
> like it.

I suggest you reread that thread, long though it is, with some care.
There were strong arguments expressed there, for improving the then
current behaviour.

> > That few people complained about the old behaviour is not a strong 
> > argument against improving it.  Many improvements to Emacs are made 
> > without being prompted by widespread complaints.


> I never ever objected the idea of improving the minibuffer behavior.  I 
> strongly objected the idea of removing its longstanding behavior.

As I have just said, your objections have been taken into account and
acted upon.  I don't really want to get drawn here into detailled
discussion which really belongs on that other thread, but would point out
that that "longstanding behaviour" which you seem so attached to appears
to be an ad hoc unsystematic mess resulting from a lack of systematic
attention.  I have now given it that attention.

> >> I repeatedly explained that the old behavior should remain available. 
> >> Initially the change explicitly removed the old behavior: "The old 
> >> [behavior] is no longer available."  The latest patch sent yesterday, 
> >> only promises to "approximate" the old behavior.

> > It would thus appear that you are an "important enough person".


> No, quite the contrary.

Forgive me if I become uncustomarily blunt and personal, but it seems you
are determined to find the worst possible interpretation of everything,
and your replies to so many posts take on an unusually negative tone.

I put the old behaviour back specifically to please you and others like
you, yet your reaction, rather than to thank me, is to criticise that it
is "only an approximation".  And that before you have even tried it out.

Dealing with such negativity is an emotionally draining experience for
me, and I suspect I am not alone here.  One way of coping with this
would be to ignore your posts entirely, but I don't want to do that.

Would you please try to be more positive in your posts, and try to work
together with people to achieve goals, rather than antagonising them.
Thanks!

> > I put the old behaviour back as a result of your representations, 
> > despite not understanding why anybody might want it.


> That's the problem I mentioned in my other email: "because [some users] 
> use Emacs in a way that was not envisioned by the developer who 
> implemented the UI change, and that this UI change breaks their 
> configuration, which relied on the old behavior".  We cannot know what 
> kind of exotic things people do with Emacs, and the only way to ensure 
> that it is stable is to keep the old behavior alongside the new one, at 
> least for some time.  Some time later (one or two major releases later, 
> say) the old behavior can of course be deprecated, with a target release 
> when this will happen.  That gives users the time to adapt their libraries 
> and configurations.  But all of a sudden removing the old behavior and 
> installing a new one is IMO wrong.

The old "behaviour" seems to be an ad hoc unsystematic mess, not worthy
even of being called a behaviour.

> > However, since I've tidied up the C code appreciably, I cannot guarantee 
> > that this behaviour is 100% the same as the old, hence the use of the 
> > word "approximate".

> > Have you tried this patch out, yet?  If there is anything in the 
> > "approximation" which is not close enough, perhaps you could point out 
> > what, so that I might fix it.  Thanks!


> Not yet, I'll do that, but can't promise when.  But the problem is that I 
> am now, and everybody else is now, in a situation where we have to spend a 
> lot of time testing various combinations of commands and to describe what 
> doesn't work anymore, which inevitably leads to very long and boring mails 
> and discussions.

How is that a problem?  Nobody is forcing you into such discussions.  At
the cutting edge of development, there are bound to be new things, there
are bound to be old things let go, and there are bound to be
controversies.  That is the very essence of development.  People are
grateful for the feedback you give, but nobody is forcing you into doing
anything.

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: Confused by y-or-n-p
  2021-01-04 12:34                                                 ` Alan Mackenzie
@ 2021-01-04 13:10                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-04 17:21                                                   ` martin rudalics
  1 sibling, 0 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-04 13:10 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: emacs-devel


>> I haven't seen a single argument in that thread to remove the current 
>> behavior.  I've only seen an argument that you (and only you AFAICS) 
>> don't like it.
>
> I suggest you reread that thread, long though it is, with some care. 
> There were strong arguments expressed there, for improving the then 
> current behaviour.
>

There are arguments to _improve_ the current behavior, that is, to provide 
other behaviors, and I agree with these arguments.  But there are no 
arguments to _remove_ the current behavior, which should either remain the 
default or be available by setting a variable.

>
> Forgive me if I become uncustomarily blunt and personal, but it seems 
> you are determined to find the worst possible interpretation of 
> everything, and your replies to so many posts take on an unusually 
> negative tone.
>

That was not at all my intention, I'm sorry if you have perceived it as 
such.

>
> Would you please try to be more positive in your posts, and try to work 
> together with people to achieve goals, rather than antagonising them. 
> Thanks!
>

I believe that's what I did, I initially pointed you the difference 
between the use of the echo area and the minibuffer inside isearch, I gave 
you a number of possible improved behaviors, and I already spend quite 
some time testing your patch and providing you with feedback.  I don't 
think this can be considered as an "antagonising" behavior.

>
> I don't really want to get drawn here into detailled discussion which 
> really belongs on that other thread, but would point out that that 
> "longstanding behaviour" which you seem so attached to appears to be an 
> ad hoc unsystematic mess resulting from a lack of systematic attention.
> [...]
> The old "behaviour" seems to be an ad hoc unsystematic mess, not worthy 
> even of being called a behaviour.
>

These are very strong statements.  I understand that this is what it seems 
to you, and I would even say that to a certain extent I agree with you, 
but again, you don't know whether others rely on what you consider to be a 
mess in their libraries or configurations.

>> But the problem is that I am now, and everybody else is now, in a 
>> situation where we have to spend a lot of time testing various 
>> combinations of commands and to describe what doesn't work anymore, 
>> which inevitably leads to very long and boring mails and discussions.
>
> How is that a problem?  Nobody is forcing you into such discussions. 
> At the cutting edge of development, there are bound to be new things, 
> there are bound to be old things let go, and there are bound to be 
> controversies.  That is the very essence of development.  People are 
> grateful for the feedback you give, but nobody is forcing you into doing 
> anything.
>

I don't feel forced to do anything.  I was only pointing the fact that 
those who object the removal of a behavior are in a position that their 
feedback will look like bikeshedding.  This would not happen if the old 
behavior remained available; the discussion would then be more 
constructive, around the question "what is the best default behavior".



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

* Re: Confused by y-or-n-p
  2021-01-04  9:55                                                     ` martin rudalics
  2021-01-04 11:28                                                       ` Andrea Corallo via Emacs development discussions.
@ 2021-01-04 14:58                                                       ` Dmitry Gutov
  1 sibling, 0 replies; 210+ messages in thread
From: Dmitry Gutov @ 2021-01-04 14:58 UTC (permalink / raw)
  To: martin rudalics, Lars Ingebrigtsen
  Cc: Richard Stallman, juri, Stefan Kangas, Eli Zaretskii, emacs-devel,
	drew.adams, Stefan Monnier

On 04.01.2021 11:55, martin rudalics wrote:
> The toughest resistance always comes from veterans and
> fellow developers ...

Then that's part of the culture that we'll need to change, to be able to 
enact changes and test them well.

Perhaps if there is a general understanding that any new feature or 
change added to master have a trial period and won't necessarily stay 
with us, the feedback will be more reserved and more constructive.



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

* Re: Confused by y-or-n-p
  2021-01-04  5:16                                           ` Richard Stallman
  2021-01-04  6:10                                             ` Stefan Monnier
  2021-01-04  8:52                                             ` Lars Ingebrigtsen
@ 2021-01-04 14:59                                             ` Eli Zaretskii
  2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06  5:01                                               ` Richard Stallman
  2 siblings, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 14:59 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, juri@linkov.net,
> 	drew.adams@oracle.com, emacs-devel@gnu.org
> Date: Mon, 04 Jan 2021 00:16:55 -0500
> 
>   > When this happens in a released version, the resistance is justifiably
>   > stronger.  But those cases should be (and are, IME) very rare.
> 
> My point is that they are not so rare -- there is a systematic tendency
> for that to happen.

What is the basis for your impression that such a tendency exists?
Any cases besides this single one?  "Systematic" is a pretty strong
word in this context, it would mean we make backward-incompatible
changes basically all the time.

I don't have such an impression.  In fact, we are frequently accused
in the opposite: that we change the defaults too slowly.

> I am proposing a systematic way to make them less likely, by helping
> people take notice that a UI change is being proposed, so they can
> object quickly.

We need to consider the cost of your proposal as well as its benefits.
I think the costs are too high, given the scarcity of the problems the
proposal aims at fixing, the significant effort it will impose on the
head maintainers, and the adverse effect on development pace.

>   > situation is actually the exact opposite: changes are being discussed
>   > "to death" and sometimes never implemented due to controversy.
> 
> My proposal will help with that problem too.  Instead of waiting for a
> resolution of the dispute, we should install the change with a user
> option variable to enable the new behavior.

That is already happening where the change seems to be controversial
or a too radical departure from long-time behavior.

> That bypasss the dispute.

It doesn't.  At best, it just changes the subject of the dispute to
whether the new behavior should be the default.  At worst, people keep
arguing about the necessity of the change, even though it can be
disabled.

I didn't bring up this particular aspect to complain about it, because
complaining about it in an open project where development discussions
are public is pointless: anyone can start a discussion about any issue
related to Emacs, and we allow and encourage that as part of our
policy.  I brought that up to point out that some -- quite a few --
opine that we have too many discussions already.  Which in my view
means we have a balanced situation: some think we have too few
discussions, others think we have too many.  Increasing the discussion
will thus tilt the balance -- not necessarily for the better.



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

* Re: Confused by y-or-n-p
  2021-01-04  5:17                                           ` Richard Stallman
  2021-01-04  6:12                                             ` Stefan Monnier
@ 2021-01-04 15:01                                             ` Eli Zaretskii
  2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06  5:01                                               ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 15:01 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, juri@linkov.net,
> 	drew.adams@oracle.com, emacs-devel@gnu.org
> Date: Mon, 04 Jan 2021 00:17:28 -0500
> 
>   > However, I see no reason to single out emacs-devel as the only medium
>   > suitable for such discussions.  The Emacs issue tracker is another
>   > valid medium for that.
> 
> It may be "valid" in principle, but it is no a wise choice for changes
> in the Emacs command interface.  If we want to be confident that users
> will notice plans for changes, and say if they object, before the
> change is in a release, we are obliged to help users notice.

Users don't track emacs-devel, either.  In fact, most users nowadays
don't like to use mailing lists at all.  Moreover, the effect of a
change is not necessarily clear from the discussions, not unless the
reader knows enough about Emacs internals.  So I don't see how forcing
discussions to happen on emacs-devel will reach the goal of helping
users notice important changes and object in time.  It might help you
personally, and a few others, but that's a far cry from "users", IMO.

>   > > * Some time later -- it need not be soon -- poll the users and see who
>   > >   likes it _and why_.  Maybe change the default.
> 
>   > Volunteers are welcome to step forward and take upon themselves the
>   > responsibilities for conducting such polls.  Failing that, I don't see
>   > how we can promise doing this as a matter of routine.
> 
> That's not difficult.  People who want to make the new behavior the default
> will be motivated to conduct the inquiry.

If they are motivated enough, we don't need any rules for that, we
just should continue behaving as we did, because starting a discussion
on emacs-devel about any issue related to Emacs is always possible
(and happens already).



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

* Re: Confused by y-or-n-p
  2021-01-04  7:54                                               ` Stefan Kangas
  2021-01-04  9:21                                                 ` martin rudalics
@ 2021-01-04 15:09                                                 ` Eli Zaretskii
  2021-01-04 15:17                                                   ` Lars Ingebrigtsen
  2021-01-04 17:53                                                 ` Juri Linkov
                                                                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 15:09 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: rms, juri, rudalics, monnier, larsi, emacs-devel, drew.adams

> From: Stefan Kangas <stefankangas@gmail.com>
> Date: Mon, 4 Jan 2021 08:54:37 +0100
> Cc: juri@linkov.net, rudalics@gmx.at, Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org, 
> 	larsi@gnus.org, drew.adams@oracle.com
> 
> [...] here's a suggestion: perhaps we should think about sometimes
> carrying out time-boxed experiments on the master branch in
> controversial cases.  For example: we add this keybinding now, to be
> revisited in 14/21/30 days and then a final discussion is taken to
> keep or revert it once people have gotten some experience with it.

I don't mind having such a process, provided that someone volunteers
to manage it: identify and announce the relevant changes, keep track
of the time-box of each one of them, initiate a discussion when the
time is up, etc.  It's a non-trivial amount of work.



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

* Re: Confused by y-or-n-p
  2021-01-04 15:09                                                 ` Eli Zaretskii
@ 2021-01-04 15:17                                                   ` Lars Ingebrigtsen
  2021-01-04 16:10                                                     ` Eli Zaretskii
                                                                       ` (3 more replies)
  0 siblings, 4 replies; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-04 15:17 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, Stefan Kangas, emacs-devel, drew.adams,
	monnier

Eli Zaretskii <eliz@gnu.org> writes:

>> [...] here's a suggestion: perhaps we should think about sometimes
>> carrying out time-boxed experiments on the master branch in
>> controversial cases.  For example: we add this keybinding now, to be
>> revisited in 14/21/30 days and then a final discussion is taken to
>> keep or revert it once people have gotten some experience with it.
>
> I don't mind having such a process,

Me neither -- I think it sounds like something we should try out.

> provided that someone volunteers to manage it: identify and announce
> the relevant changes, keep track of the time-box of each one of them,
> initiate a discussion when the time is up, etc.  It's a non-trivial
> amount of work.

I think the most natural person to manage the process would be the
person that's proposing the change.  That is, we don't really need much
formalism around this.

To take the already-mentioned case as an example -- Martin wanted to
have us try out horizontal scroll bars to see whether they work, so he'd
flip them on, and announce on emacs-devel "these default to on for a
week, and then we'll discuss".

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-04 11:02                                             ` Alan Mackenzie
@ 2021-01-04 15:19                                             ` Eli Zaretskii
  2021-01-04 22:17                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-05  6:44                                             ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 15:19 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

> Date: Mon, 04 Jan 2021 10:28:25 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: emacs-devel@gnu.org
> 
>         * If some are opposed, they install the feature with a variable to enable it, disabled by default. 
> 
>     This is already being done: every backward-incompatible change is either required to become compatible, or, if that's not feasible, to provide a way to get back the old behavior. In some rare cases this doesn't happen, but such mistakes are rare exceptions, they aren't the rule.
> 
> That's not correct, see for example the thread "Stop frames stealing eachothers' minibuffers!", in which the longstanding behavior of Emacs' minibuffers, which are arguably a central piece of Emacs' UI, is being modified on the pretext that it is "unsystematic", without any argument, and in spite of the fact that hundreds and thousands of users have been using it without complaining about that supposed "unsystematicity".
> 
> I repeatedly explained that the old behavior should remain available. Initially the change explicitly removed the old behavior: "The old [behavior] is no longer available." The latest patch sent yesterday, only promises to "approximate" the old behavior.

That's because the original behavior was deemed buggy.  We don't
provide compatibility options to get old bugs back.

As it turned out, what Alan considered buggy behavior was not
necessarily so, therefore he now tries to provide a better backward
compatibility.  As the bug is still being actively worked on, it is
premature ti draw any definitive conclusions from it relevant to the
current discussion.

Also, we should recognize that some changes are deep enough to make
100% backward compatibility impractical or even infeasible.  That
doesn't mean such changes should be automatically rejected.



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

* Re: Confused by y-or-n-p
  2021-01-04 15:17                                                   ` Lars Ingebrigtsen
@ 2021-01-04 16:10                                                     ` Eli Zaretskii
  2021-01-05  8:16                                                       ` Lars Ingebrigtsen
  2021-01-06  5:01                                                       ` Richard Stallman
  2021-01-04 17:17                                                     ` Stefan Monnier
                                                                       ` (2 subsequent siblings)
  3 siblings, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 16:10 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: rms, juri, rudalics, stefankangas, emacs-devel, drew.adams,
	monnier

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: Stefan Kangas <stefankangas@gmail.com>,  monnier@iro.umontreal.ca,
>   rms@gnu.org,  juri@linkov.net,  rudalics@gmx.at,  emacs-devel@gnu.org,
>   drew.adams@oracle.com
> Date: Mon, 04 Jan 2021 16:17:46 +0100
> 
> > provided that someone volunteers to manage it: identify and announce
> > the relevant changes, keep track of the time-box of each one of them,
> > initiate a discussion when the time is up, etc.  It's a non-trivial
> > amount of work.
> 
> I think the most natural person to manage the process would be the
> person that's proposing the change.  That is, we don't really need much
> formalism around this.

I don't mind that, either, but what about people who submit changes,
but don't intend to stick around long enough to see this process
through?  Someone will have to step in and do it for them.



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

* Re: Confused by y-or-n-p
  2021-01-04 15:17                                                   ` Lars Ingebrigtsen
  2021-01-04 16:10                                                     ` Eli Zaretskii
@ 2021-01-04 17:17                                                     ` Stefan Monnier
  2021-01-04 17:43                                                       ` Eli Zaretskii
  2021-01-06  5:02                                                       ` Richard Stallman
  2021-01-04 17:20                                                     ` martin rudalics
  2021-01-06  5:01                                                     ` Richard Stallman
  3 siblings, 2 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-04 17:17 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: rms, juri, rudalics, Stefan Kangas, Eli Zaretskii, emacs-devel,
	drew.adams

>> I don't mind having such a process,
> Me neither -- I think it sounds like something we should try out.

Indeed, it's something we do on a regular basis, but we only do it for
changes we presume won't be rejected.  I think it would indeed be
beneficial to change our habits in this regard and allow ourselves more
"daring" changes, with the understanding that there is a higher
probability that we may have to revert the default behavior.

[ FWIW, I also think there are changes we should keep enabled only on
  `master` *until* they stop being unpopular.  I'm specifically
  thinking of things like removal of obsolete features.  E.g. we could
  have features obsolete since Emacs-25 removed from `master` right
  now, but with a way to get them back on-demand, and with the
  understanding that they will still be present in the Emacs-28
  release.  ]

> I think the most natural person to manage the process would be the
> person that's proposing the change.  That is, we don't really need much
> formalism around this.

Agred.

> To take the already-mentioned case as an example -- Martin wanted to
> have us try out horizontal scroll bars to see whether they work, so he'd
> flip them on, and announce on emacs-devel "these default to on for a
> week, and then we'll discuss".

IME a week is not sufficient:
- Many users don't update from `master` on a daily basis.
- I `git fetch` daily from `master`, but I don't restart my Emacs
  sessions all the time (hell, I just tried `M-x emacs-uptime` and this
  Gnus-dedicated session "says 184 days, 18 hours, 28 minutes, 38
  seconds").
- Especially for UI changes (i.e. changes which don't break code but
  break muscle memory), it often takes a good month of active use before
  I can honestly say whether I prefer the old or the new behavior
  (rather than just being irked by the change itself).

So I think such changes should be introduced with:
- An explicit announcement.
- A clear way to get back the old behavior.
- A trial period in the order 2-3 months.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-04 15:17                                                   ` Lars Ingebrigtsen
  2021-01-04 16:10                                                     ` Eli Zaretskii
  2021-01-04 17:17                                                     ` Stefan Monnier
@ 2021-01-04 17:20                                                     ` martin rudalics
  2021-01-04 17:43                                                       ` Lars Ingebrigtsen
                                                                         ` (2 more replies)
  2021-01-06  5:01                                                     ` Richard Stallman
  3 siblings, 3 replies; 210+ messages in thread
From: martin rudalics @ 2021-01-04 17:20 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Eli Zaretskii
  Cc: rms, emacs-devel, monnier, juri, drew.adams, Stefan Kangas

 > To take the already-mentioned case as an example -- Martin wanted to
 > have us try out horizontal scroll bars to see whether they work, so he'd
 > flip them on, and announce on emacs-devel "these default to on for a
 > week, and then we'll discuss".

That's a pipe dream.  My announcement back then was:

   Note that horizontal scrollbars are turned on by default on all builds
   that support them.  This is the only way I see to get them at least some
   initial coverage.  If you utterly dislike them (or do not use scrollbars
   at all) please use the idiom

   (when (fboundp 'horizontal-scroll-bar-mode)
     (horizontal-scroll-bar-mode -1))

   I intend to disable horizontal scrollbars by default in the next weeks.

What could I have done more?

martin



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

* Re: Confused by y-or-n-p
  2021-01-04 12:34                                                 ` Alan Mackenzie
  2021-01-04 13:10                                                   ` Gregory Heytings via Emacs development discussions.
@ 2021-01-04 17:21                                                   ` martin rudalics
  2021-01-05 10:48                                                     ` Alan Mackenzie
  1 sibling, 1 reply; 210+ messages in thread
From: martin rudalics @ 2021-01-04 17:21 UTC (permalink / raw)
  To: Alan Mackenzie, Gregory Heytings; +Cc: emacs-devel

 > Forgive me if I become uncustomarily blunt and personal, but it seems you
 > are determined to find the worst possible interpretation of everything,
 > and your replies to so many posts take on an unusually negative tone.

Forgive me Alan but

 > The old "behaviour" seems to be an ad hoc unsystematic mess, not worthy
 > even of being called a behaviour.

has a rather negative tone too.  Gregory provided some interesting
insights into how Emacs did (mis-)behave in this regard and I think that
they help us to soon see a state that satisfies most of us.

martin



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

* Re: Confused by y-or-n-p
  2021-01-04 10:28                                               ` Gregory Heytings via Emacs development discussions.
@ 2021-01-04 17:22                                                 ` Stefan Monnier
  2021-01-04 17:28                                                   ` martin rudalics
  2021-01-04 22:18                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-05  6:29                                                 ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-04 17:22 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

> I agree with you, but I think you are missing Richard's main point: any
> significant UI change should either require setting a variable, or provide 
> a way to disable the new behavior / re-enable to old behavior.

I don't think that was Richard's point: we always go to great lengths to
make it possible to get back the old behavior (even for changes where
the impact is quite minor).

E.g. with respect to `y-or-n-p`, I think we already all agree that there
should be a way to recover the previous "modal" behavior.  We just need
someone to implement it (ideally while still preserving the improvement
of the new minibuffer-based code).


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-04 17:22                                                 ` Stefan Monnier
@ 2021-01-04 17:28                                                   ` martin rudalics
  2021-01-06  5:03                                                     ` Richard Stallman
  2021-01-04 22:18                                                   ` Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 210+ messages in thread
From: martin rudalics @ 2021-01-04 17:28 UTC (permalink / raw)
  To: Stefan Monnier, Gregory Heytings; +Cc: emacs-devel

 > E.g. with respect to `y-or-n-p`, I think we already all agree that there
 > should be a way to recover the previous "modal" behavior.  We just need
 > someone to implement it (ideally while still preserving the improvement
 > of the new minibuffer-based code).

IIUC Juri has done that in commit cd4a51695fddf2a76ae9ed71efa8bfb4a515b32e.

martin



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

* Re: Confused by y-or-n-p
  2021-01-04 17:20                                                     ` martin rudalics
@ 2021-01-04 17:43                                                       ` Lars Ingebrigtsen
  2021-01-04 18:52                                                         ` martin rudalics
  2021-01-04 18:04                                                       ` Stefan Monnier
  2021-01-06  5:03                                                       ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-04 17:43 UTC (permalink / raw)
  To: martin rudalics
  Cc: rms, emacs-devel, Stefan Kangas, Eli Zaretskii, juri, drew.adams,
	monnier

martin rudalics <rudalics@gmx.at> writes:

> That's a pipe dream.  My announcement back then was:
>
>   Note that horizontal scrollbars are turned on by default on all builds
>   that support them.  This is the only way I see to get them at least some
>   initial coverage.  If you utterly dislike them (or do not use scrollbars
>   at all) please use the idiom
>
>   (when (fboundp 'horizontal-scroll-bar-mode)
>     (horizontal-scroll-bar-mode -1))
>
>   I intend to disable horizontal scrollbars by default in the next weeks.
>
> What could I have done more?

Hm.  I must be missing something -- I skimmed the (quite long) "Changes
in frame/window code" thread now, and I don't see any push-back on this?
Just a lot of discussion about various glitches on various systems
(which you seemed to fix very quickly)?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04 17:17                                                     ` Stefan Monnier
@ 2021-01-04 17:43                                                       ` Eli Zaretskii
  2021-01-04 18:02                                                         ` Stefan Monnier
  2021-01-06  5:02                                                       ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 17:43 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: rms, juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Eli Zaretskii <eliz@gnu.org>,  Stefan Kangas <stefankangas@gmail.com>,
>   rms@gnu.org,  juri@linkov.net,  rudalics@gmx.at,  emacs-devel@gnu.org,
>   drew.adams@oracle.com
> Date: Mon, 04 Jan 2021 12:17:41 -0500
> 
> [ FWIW, I also think there are changes we should keep enabled only on
>   `master` *until* they stop being unpopular.  I'm specifically
>   thinking of things like removal of obsolete features.  E.g. we could
>   have features obsolete since Emacs-25 removed from `master` right
>   now, but with a way to get them back on-demand, and with the
>   understanding that they will still be present in the Emacs-28
>   release.  ]

AFAIU, this would need a more complicated procedure for cutting a
release branch: some commits would need to be reverted on the release
branch.  How will we keep the record of those commits?  And where is
the confidence that reverting a commit months after it was pushed will
not break Emacs, e.g. because some later commits depend on that?

Unless I completely misunderstand what you propose technically, I
think this idea is too hard to implement, at least as long as we have
only two active branches active at any given time.



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

* Re: Confused by y-or-n-p
  2021-01-04  7:54                                               ` Stefan Kangas
  2021-01-04  9:21                                                 ` martin rudalics
  2021-01-04 15:09                                                 ` Eli Zaretskii
@ 2021-01-04 17:53                                                 ` Juri Linkov
  2021-01-05  6:33                                                 ` Richard Stallman
  2021-01-05  6:35                                                 ` Richard Stallman
  4 siblings, 0 replies; 210+ messages in thread
From: Juri Linkov @ 2021-01-04 17:53 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: Richard Stallman, emacs-devel, rudalics, Stefan Monnier, larsi,
	Eli Zaretskii, drew.adams

> (And anyone who *really* don't want to participate can of course
> still just revert that commit locally and carry on as before until the
> experiment is over.)

No need to revert, there should be a variable, or some other way to disable it.



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

* Re: Confused by y-or-n-p
  2021-01-04 17:43                                                       ` Eli Zaretskii
@ 2021-01-04 18:02                                                         ` Stefan Monnier
  2021-01-04 18:15                                                           ` Eli Zaretskii
  2021-01-05  8:32                                                           ` Lars Ingebrigtsen
  0 siblings, 2 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-04 18:02 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams

>> [ FWIW, I also think there are changes we should keep enabled only on
>>   `master` *until* they stop being unpopular.  I'm specifically
>>   thinking of things like removal of obsolete features.  E.g. we could
>>   have features obsolete since Emacs-25 removed from `master` right
>>   now, but with a way to get them back on-demand, and with the
>>   understanding that they will still be present in the Emacs-28
>>   release.  ]
>
> AFAIU, this would need a more complicated procedure for cutting
> a release branch: some commits would need to be reverted on the
> release branch.

No, I was thinking of changing `make-obsolete` and friends so they
undefine (or refrain from defining) the function/variable.  They could
do so by testing `emacs-version` (or some other way to detect the
`master` code) along with some extra config vars (e.g. a var to force
the behavior globally on way or the other or only for some
functions/variables).

I think this would require some finer control for variables, since it's
frequent for obsolete vars to still appear in the code (in order to
support code that makes use of that variable), but at least for
functions it should be quite straightforward.

It would definitely not require any special handling when cutting the
release branch or anything like that (since, as you point out, that
would be completely impractical).


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-03  6:01                                     ` Richard Stallman
@ 2021-01-04 18:03                                       ` Juri Linkov
  2021-01-06  5:03                                         ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Juri Linkov @ 2021-01-04 18:03 UTC (permalink / raw)
  To: Richard Stallman; +Cc: rudalics, Lars Ingebrigtsen, eliz, emacs-devel

> Since y-or-n-p-use-read-key affects more than just y-or-n-p,
> perhaps it should be renamed to indicate that.

There is another variable that affects other cases:
read-char-choice-use-read-key.

> I propose the name single-key-answers. but I am not
> entirely happy with it.

Its name should be consistent with another variable
use-short-answers that could be used to replace
yes-or-no-p with y-or-n-p.  These two should have names
that preclude confusion between their meanings.

Also use-short-answers could be used by the existing variable
read-answer-short.




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

* Re: Confused by y-or-n-p
  2021-01-04 17:20                                                     ` martin rudalics
  2021-01-04 17:43                                                       ` Lars Ingebrigtsen
@ 2021-01-04 18:04                                                       ` Stefan Monnier
  2021-01-06  5:03                                                       ` Richard Stallman
  2 siblings, 0 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-04 18:04 UTC (permalink / raw)
  To: martin rudalics
  Cc: rms, emacs-devel, Stefan Kangas, Lars Ingebrigtsen, juri,
	Eli Zaretskii, drew.adams

> That's a pipe dream.  My announcement back then was:
[...]
> What could I have done more?

Nothing.  But if we together decide we want to encourage such
experiments, then the reaction to people's complaints should provide
better moral support to the implementer (you in this case) ;-)


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-04 18:02                                                         ` Stefan Monnier
@ 2021-01-04 18:15                                                           ` Eli Zaretskii
  2021-01-05  8:32                                                           ` Lars Ingebrigtsen
  1 sibling, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-04 18:15 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: rms, juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: larsi@gnus.org,  stefankangas@gmail.com,  rms@gnu.org,  juri@linkov.net,
>   rudalics@gmx.at,  emacs-devel@gnu.org,  drew.adams@oracle.com
> Date: Mon, 04 Jan 2021 13:02:15 -0500
> 
> I was thinking of changing `make-obsolete` and friends so they
> undefine (or refrain from defining) the function/variable.  They could
> do so by testing `emacs-version` (or some other way to detect the
> `master` code) along with some extra config vars (e.g. a var to force
> the behavior globally on way or the other or only for some
> functions/variables).

That's fine, but then such a mechanism can handle only a small portion
of the changes that can be perceived as incompatible with past
behavior.  For example, the change which started this thread cannot be
easily handled that way, because it is not about making something
obsolete.

Most of the changes we are talking about don't obsolete anything.

We should also consider the effects of this on code readability.  It
is unexpected to have make-obsolete undefine its subject, let alone do
it or not depending on some under-the-hood magic.



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

* Re: Confused by y-or-n-p
  2021-01-04 17:43                                                       ` Lars Ingebrigtsen
@ 2021-01-04 18:52                                                         ` martin rudalics
  2021-01-05  8:33                                                           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 210+ messages in thread
From: martin rudalics @ 2021-01-04 18:52 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: rms, emacs-devel, Stefan Kangas, Eli Zaretskii, juri, drew.adams,
	monnier

 > Hm.  I must be missing something -- I skimmed the (quite long) "Changes
 > in frame/window code" thread now, and I don't see any push-back on this?
 > Just a lot of discussion about various glitches on various systems
 > (which you seemed to fix very quickly)?

At least Bug#18167 comes to my mind.  There were more complaints IIRC.

martin



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

* Re: Confused by y-or-n-p
  2021-01-04 15:19                                             ` Eli Zaretskii
@ 2021-01-04 22:17                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-05 11:44                                                 ` Alan Mackenzie
  2021-01-05 14:48                                                 ` Eli Zaretskii
  0 siblings, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-04 22:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel


>>>> * If some are opposed, they install the feature with a variable to 
>>>> enable it, disabled by default.
>>>
>>> This is already being done: every backward-incompatible change is 
>>> either required to become compatible, or, if that's not feasible, to 
>>> provide a way to get back the old behavior. In some rare cases this 
>>> doesn't happen, but such mistakes are rare exceptions, they aren't the 
>>> rule.
>>
>> That's not correct, see for example the thread "Stop frames stealing 
>> eachothers' minibuffers!", in which the longstanding behavior of Emacs' 
>> minibuffers, which are arguably a central piece of Emacs' UI, is being 
>> modified on the pretext that it is "unsystematic", without any 
>> argument, and in spite of the fact that hundreds and thousands of users 
>> have been using it without complaining about that supposed 
>> "unsystematicity".
>>
>> I repeatedly explained that the old behavior should remain available. 
>> Initially the change explicitly removed the old behavior: "The old 
>> [behavior] is no longer available." The latest patch sent yesterday, 
>> only promises to "approximate" the old behavior.
>
> That's because the original behavior was deemed buggy.  We don't provide 
> compatibility options to get old bugs back.  As it turned out, what Alan 
> considered buggy behavior was not necessarily so, therefore he now tries 
> to provide a better backward compatibility.
>

It did not "turn out", I explained in detail that the behavior that Alan 
considered buggy was not at all buggy before he started working on this. 
And I fear that trying to provide a better backward compatibility after 
having removed the code of the old behavior is doomed to fail, it will 
most likely result in an endless bug report / bug fix loop.

>
> As the bug is still being actively worked on, it is premature ti draw 
> any definitive conclusions from it relevant to the current discussion.
>

I do believe it is relevant.

The general pattern is similar to the y-or-n-p one, in that the code of an 
UI behavior is removed and replaced by another one.  It is also, I think 
(but it's just a feeling, I did not follow the discussions at that time), 
similar to the changes in Emacs 27 about which Drew loudly complained and 
that make Emacs 27 unuseable for him.

What could have been done instead is to add some new code next to the 
existing one to conditionally provide a new behavior, with an easy way for 
users who prefer / need the old behavior to revert the change.  If this 
had been done with y-or-n-p, this thread would simply not exist.  If this 
had been done with the new minibuffer behavior, the "Stop frames stealing 
each other's minibuffers" thread would be very different.

And the consequence of that pattern is what Richard fears: my comments, 
which can be summarized as "please do not remove the old behavior", are 
perceived by Alan almost as a personal attack.  This would not happen if 
we were doing what Richard suggests.



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

* Re: Confused by y-or-n-p
  2021-01-04 17:22                                                 ` Stefan Monnier
  2021-01-04 17:28                                                   ` martin rudalics
@ 2021-01-04 22:18                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-05 14:50                                                     ` Eli Zaretskii
  2021-01-06  5:13                                                     ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-04 22:18 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


>> I agree with you, but I think you are missing Richard's main point: any 
>> significant UI change should either require setting a variable, or 
>> provide a way to disable the new behavior / re-enable to old behavior.
>
> I don't think that was Richard's point: we always go to great lengths to 
> make it possible to get back the old behavior (even for changes where 
> the impact is quite minor).
>
> E.g. with respect to `y-or-n-p`, I think we already all agree that there 
> should be a way to recover the previous "modal" behavior.  We just need 
> someone to implement it (ideally while still preserving the improvement 
> of the new minibuffer-based code).
>

No always, alas.  With respect to y-or-n-p, there is now indeed an 
agreement that there should be a way to recover the old behavior.  But 
IIUC, Richard's point is that this possibility should have been present 
since the beginning, when the new behavior was introduced, without waiting 
for objections.

What happened is (1) behavior A is removed and replaced by behavior B, (2) 
enough people object this change, (2) behavior B is implemented again.

What could have happened instead is (1) behavior B is implemented, next to 
behavior A, with a way to choose between them, (2) at some point, possibly 
immediately, the default behavior is changed from A to B, (3) if after 
some time it becomes clear that behavior A is not used anymore, it is 
deprecated, and later again removed.

Having both behaviors available at the same time is also, I believe, a 
necessary condition for a fruitful comparison and discussion.  Otherwise 
the discussion is about the merits of a removed behavior vs. the new 
behavior instead of about the merits of a behavior A vs. a behavior B.



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

* Re: Confused by y-or-n-p
  2021-01-03 15:13                                     ` Eli Zaretskii
@ 2021-01-05  6:25                                       ` Richard Stallman
  2021-01-05 14:54                                         ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-05  6:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, emacs-devel, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > That is true, but it may not be a problem.  To get useful results, we
  > > don't need most of the community to switch.  It is enough to get
  > > answers from a variety of users.

  > Which users should they be, and how do we find them and reach out to
  > them?

One obvious way is to post an announcement on various mailing lists,
asking people to repost it.  People will respond.

  > They should definitely be users who have the just-released version
  > installed, which is why I mentioned the observation that the process
  > of upgrading to a new version is slow and takes many moons.

That's why I suggest waiting before we ask.

  > Let's say we have half a dozen of such features, and we need to wait
  > for the answers for a few months about each one of them.  Who can have
  > a long enough attention span to manage such a polling system?

I propose a distributed system which needs no management.  The people
who advocate changing the default to enable a given feature will
probably speak up about it.  We just need a rule about the minimum
time to wait after the release.

If they don't speak up, that suggests that having the new option is
sufficient ;-}.

  >  who can
  > keep track of all those features even though we could switch branches
  > and release a couple of versions in-between?

Those little turns in the road won't intefere with their memory of
where they want to go.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 10:28                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-04 17:22                                                 ` Stefan Monnier
@ 2021-01-05  6:29                                                 ` Richard Stallman
  1 sibling, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-05  6:29 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > I agree with you, but I think you are missing Richard's main point: any 
  > significant UI change should either require setting a variable, or provide 
  > a way to disable the new behavior / re-enable to old behavior.  Because it 
  > is always possible that, after having actually tried out a new behavior 
  > for a while, people dislike it.

Yes, that is true.

It is also possible that, after having actually tried out a new
behavior for a while, people find they like it (although they expected
beforehand they would not).

The plan I propose will help us find out what people think of the feature
after really trying it.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04  7:54                                               ` Stefan Kangas
                                                                   ` (2 preceding siblings ...)
  2021-01-04 17:53                                                 ` Juri Linkov
@ 2021-01-05  6:33                                                 ` Richard Stallman
  2021-01-05 14:57                                                   ` Eli Zaretskii
  2021-01-05  6:35                                                 ` Richard Stallman
  4 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-05  6:33 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: emacs-devel, rudalics, monnier, larsi, juri, eliz, drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  >   So here's a suggestion: perhaps we should think about
  > sometimes carrying out time-boxed experiments on the master branch in
  > controversial cases.  For example: we add this keybinding now, to be
  > revisited in 14/21/30 days and then a final discussion is taken to keep
  > or revert it once people have gotten some experience with it.

That's fine with me, but there should be a variable to enable the
changed behavior.  That makes the experiment painless for everyone else.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04  8:52                                             ` Lars Ingebrigtsen
@ 2021-01-05  6:33                                               ` Richard Stallman
  2021-01-05 14:44                                                 ` Stefan Monnier
  2021-01-05 14:58                                                 ` Eli Zaretskii
  0 siblings, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-05  6:33 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: rudalics, eliz, emacs-devel, drew.adams, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Three out of five Emacs maintainers have now weighed in (at some length,
  > in total), that they don't think your proposal would be helpful in
  > practice, so I think it's time to let this go.  

We can't "let it go".  A combination of our practices adds up to a
system that will install some UI changes without having much of a
discussion about it.  And then, once they are released, it is "too
late" to argue to revert them.

There are many ways we could fix this, but we need to fix it.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04  7:54                                               ` Stefan Kangas
                                                                   ` (3 preceding siblings ...)
  2021-01-05  6:33                                                 ` Richard Stallman
@ 2021-01-05  6:35                                                 ` Richard Stallman
  4 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-05  6:35 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: emacs-devel, rudalics, monnier, larsi, juri, eliz, drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > To my mind, people running the bleeding edge (i.e. master) also
  > implicitly agree to test out new feature changes before they are
  > released.

It makes sense in principle.  I am willing to experience the new
feature changes before they are released.  But I build the current
master only a few times a year, so I don't see them all fast enough.

  >   So here's a suggestion: perhaps we should think about
  > sometimes carrying out time-boxed experiments on the master branch in
  > controversial cases.  For example: we add this keybinding now, to be
  > revisited in 14/21/30 days and then a final discussion is taken to keep
  > or revert it once people have gotten some experience with it.

If I saw a message about that, I would try to build the latest sources soon
so I could comment.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-04 11:02                                             ` Alan Mackenzie
  2021-01-04 15:19                                             ` Eli Zaretskii
@ 2021-01-05  6:44                                             ` Richard Stallman
  2 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-05  6:44 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > I repeatedly explained that the old behavior should remain available. 
  > Initially the change explicitly removed the old behavior: "The old 
  > [behavior] is no longer available."

I don't understand what the "stealing minibuffers" issue is about -- I don't
use Emacs on a graphical terminal normally -- but I agree in principle
with this point.

Alan wrote:

  > Have you tried this patch out, yet?  If there is anything in the
  > "approximation" which is not close enough, perhaps you could point out
  > what, so that I might fix it.  Thanks!

In principle that's a valid way of bringing back the old behavior
as an option.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 16:10                                                     ` Eli Zaretskii
@ 2021-01-05  8:16                                                       ` Lars Ingebrigtsen
  2021-01-05 15:03                                                         ` Eli Zaretskii
  2021-01-06  5:01                                                       ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-05  8:16 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, stefankangas, emacs-devel, drew.adams,
	monnier

Eli Zaretskii <eliz@gnu.org> writes:

> I don't mind that, either, but what about people who submit changes,
> but don't intend to stick around long enough to see this process
> through?  Someone will have to step in and do it for them.

I guess the person who commits the patch is the natural person to do it
then...  but in my experience, things like this is almost exclusively
done by the regular developers.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04 18:02                                                         ` Stefan Monnier
  2021-01-04 18:15                                                           ` Eli Zaretskii
@ 2021-01-05  8:32                                                           ` Lars Ingebrigtsen
  1 sibling, 0 replies; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-05  8:32 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: rms, juri, rudalics, stefankangas, Eli Zaretskii, emacs-devel,
	drew.adams

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> No, I was thinking of changing `make-obsolete` and friends so they
> undefine (or refrain from defining) the function/variable.  They could
> do so by testing `emacs-version` (or some other way to detect the
> `master` code) along with some extra config vars (e.g. a var to force
> the behavior globally on way or the other or only for some
> functions/variables).

It's an interesting idea...  but I'm not sure we have sufficient
obsoletion discipline to do this "mechanically".  That is, most things
that are obsoleted will be removed on schedule, but some things are so
prevalent in the wild that they have to linger for a longer time.

We could mark those few things in a different way, though.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04 18:52                                                         ` martin rudalics
@ 2021-01-05  8:33                                                           ` Lars Ingebrigtsen
  0 siblings, 0 replies; 210+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-05  8:33 UTC (permalink / raw)
  To: martin rudalics
  Cc: rms, emacs-devel, Stefan Kangas, Eli Zaretskii, juri, drew.adams,
	monnier

martin rudalics <rudalics@gmx.at> writes:

>> Hm.  I must be missing something -- I skimmed the (quite long) "Changes
>> in frame/window code" thread now, and I don't see any push-back on this?
>> Just a lot of discussion about various glitches on various systems
>> (which you seemed to fix very quickly)?
>
> At least Bug#18167 comes to my mind.  There were more complaints IIRC.

There will always be complaints, especially from people who aren't
paying attention to emacs-devel, but I don't see that as a major
stumbling block.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Confused by y-or-n-p
  2021-01-04 17:21                                                   ` martin rudalics
@ 2021-01-05 10:48                                                     ` Alan Mackenzie
  2021-01-05 11:10                                                       ` tomas
  2021-01-05 15:34                                                       ` martin rudalics
  0 siblings, 2 replies; 210+ messages in thread
From: Alan Mackenzie @ 2021-01-05 10:48 UTC (permalink / raw)
  To: martin rudalics; +Cc: Gregory Heytings, emacs-devel

Hello, Martin.

On Mon, Jan 04, 2021 at 18:21:19 +0100, martin rudalics wrote:
>  > Forgive me if I become uncustomarily blunt and personal, but it seems you
>  > are determined to find the worst possible interpretation of everything,
>  > and your replies to so many posts take on an unusually negative tone.

> Forgive me Alan but

>  > The old "behaviour" seems to be an ad hoc unsystematic mess, not worthy
>  > even of being called a behaviour.

> has a rather negative tone too.

It does, but it's about a thing, not a person's actions.  Does it
disturb anybody?  Does it disturb you?  That's a genuine question.  If
so, I will be more careful to avoid repeating the disturbance in the
future.

> Gregory provided some interesting insights into how Emacs did
> (mis-)behave in this regard and I think that they help us to soon see
> a state that satisfies most of us.

He did indeed.  He has pointed out some bugs, too, which has been most
helpful, and for which I am grateful.  I do still find his manner of
expression difficult to deal with.

> martin

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: Confused by y-or-n-p
  2021-01-05 10:48                                                     ` Alan Mackenzie
@ 2021-01-05 11:10                                                       ` tomas
  2021-01-05 15:34                                                       ` martin rudalics
  1 sibling, 0 replies; 210+ messages in thread
From: tomas @ 2021-01-05 11:10 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2351 bytes --]

On Tue, Jan 05, 2021 at 10:48:18AM +0000, Alan Mackenzie wrote:
> Hello, Martin.
> 
> On Mon, Jan 04, 2021 at 18:21:19 +0100, martin rudalics wrote:
> >  > Forgive me if I become uncustomarily blunt and personal, but it seems you
> >  > are determined to find the worst possible interpretation of everything,
> >  > and your replies to so many posts take on an unusually negative tone.
> 
> > Forgive me Alan but
> 
> >  > The old "behaviour" seems to be an ad hoc unsystematic mess, not worthy
> >  > even of being called a behaviour.
> 
> > has a rather negative tone too.
> 
> It does, but it's about a thing, not a person's actions.  Does it
> disturb anybody?  Does it disturb you?  That's a genuine question.  If
> so, I will be more careful to avoid repeating the disturbance in the
> future.

This is from the peanut gallery, and from many a past experience.

Take into account that whoever is proposing a change has gone
through a possibly taxing experience and has had to muster quite
a bit of enthusiasm to follow through.

So criticising his/her baby might land, on the other side as a
critique of the person him/herself.

That doesn't mean, of course, that critique is impossible: on the
contrary, that's the only way we (people and things) get better.

So... critique away! But use as much empathy in that as you
can summon.

And, on the original topic, just to illustrate my background
a bit: I'm one of those who appreciate infinitely Emacs' relative
stability.

As a comparison: I've just had a Firefox update. The way the URL
bar works changed subtly -- a double-click doesn't leave the URL
selected anymore (among other things too subtle to put a name on,
but too annoying to just ignore).

The expletives I wrote on my personal diary are NSFW. I was, and
still am, in rage. Why do they have to change every little thing,
just because? This is the contrary of user-empowering. CADT [1],
and so on ad so forth.

But this way of seeing things is just there, it is my first
impression, it is important to understand things. But I feel the
duty to distill it in a constructive way before throwing it at
any other human being.

It's a difficlut balance, but I think it's worth it. We humans
are a messy bunch, it seems :)

Cheers

[1] https://www.jwz.org/doc/cadt.html

 - t

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Confused by y-or-n-p
  2021-01-04 22:17                                               ` Gregory Heytings via Emacs development discussions.
@ 2021-01-05 11:44                                                 ` Alan Mackenzie
  2021-01-05 14:48                                                 ` Eli Zaretskii
  1 sibling, 0 replies; 210+ messages in thread
From: Alan Mackenzie @ 2021-01-05 11:44 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Eli Zaretskii, emacs-devel

Hello, Gregory.

On Mon, Jan 04, 2021 at 22:17:51 +0000, Gregory Heytings via Emacs development discussions. wrote:

> >>>> * If some are opposed, they install the feature with a variable to 
> >>>> enable it, disabled by default.

> >>> This is already being done: every backward-incompatible change is 
> >>> either required to become compatible, or, if that's not feasible, to 
> >>> provide a way to get back the old behavior. In some rare cases this 
> >>> doesn't happen, but such mistakes are rare exceptions, they aren't the 
> >>> rule.

> >> That's not correct, see for example the thread "Stop frames stealing 
> >> eachothers' minibuffers!", in which the longstanding behavior of Emacs' 
> >> minibuffers, which are arguably a central piece of Emacs' UI, is being 
> >> modified on the pretext that it is "unsystematic", without any 
> >> argument, and in spite of the fact that hundreds and thousands of users 
> >> have been using it without complaining about that supposed 
> >> "unsystematicity".

> >> I repeatedly explained that the old behavior should remain available. 
> >> Initially the change explicitly removed the old behavior: "The old 
> >> [behavior] is no longer available." The latest patch sent yesterday, 
> >> only promises to "approximate" the old behavior.

> > That's because the original behavior was deemed buggy.  We don't provide 
> > compatibility options to get old bugs back.  As it turned out, what Alan 
> > considered buggy behavior was not necessarily so, therefore he now tries 
> > to provide a better backward compatibility.


> It did not "turn out", I explained in detail that the behavior that Alan 
> considered buggy was not at all buggy before he started working on this. 

I don't think you "explained" at all, and certainly not before I started
working on it - I initiated the discussion with a proposed patch so as to
minimise the risk of just wasting people's time with bikeshedding.  The
word "explain" would entail you speaking with some special insight, some
special knowledge, some authority.  I don't think you had any of these,
hence making the use of the word "explain" wrong.  Indeed, I found it
offensive for that reason.  You were just expressing your point of view,
one amongst several, that's all.

> And I fear that trying to provide a better backward compatibility after 
> having removed the code of the old behavior is doomed to fail, it will 
> most likely result in an endless bug report / bug fix loop.

You keep referring to an "old behaviour" that I removed, as though there
were something coherent, something valuable, something worth keeping.  I
don't think there's anything of the kind.  I think the former behaviour
just happened by accident as a result of people working on other things,
and nobody consciously made it happen.  I am now consciously trying
to fix it.  If you've argued for an old behaviour on its merits, possibly
in the thread "stealing eachother's minibuffers", could you perhaps point
out the place in that thread, so that I can read it again.

> > As the bug is still being actively worked on, it is premature ti draw 
> > any definitive conclusions from it relevant to the current discussion.


> I do believe it is relevant.

> The general pattern is similar to the y-or-n-p one, in that the code of an 
> UI behavior is removed and replaced by another one.  It is also, I think 
> (but it's just a feeling, I did not follow the discussions at that time), 
> similar to the changes in Emacs 27 about which Drew loudly complained and 
> that make Emacs 27 unuseable for him.

> What could have been done instead is to add some new code next to the 
> existing one to conditionally provide a new behavior, .....

That could not have been done, due to the state of the code in minibuf.c,
in particular, due to the lack of any coherent "existing behaviour".

> .... with an easy way for users who prefer / need the old behavior to
> revert the change.  If this had been done with y-or-n-p, this thread
> would simply not exist.  If this had been done with the new minibuffer
> behavior, the "Stop frames stealing each other's minibuffers" thread
> would be very different.

> And the consequence of that pattern is what Richard fears: my comments, 
> which can be summarized as "please do not remove the old behavior", are 
> perceived by Alan almost as a personal attack.

No.  I see them as a misperception of the state of Emacs on your part.

> This would not happen if we were doing what Richard suggests.

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: Confused by y-or-n-p
  2021-01-05  6:33                                               ` Richard Stallman
@ 2021-01-05 14:44                                                 ` Stefan Monnier
  2021-01-07  7:33                                                   ` Richard Stallman
  2021-01-05 14:58                                                 ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Stefan Monnier @ 2021-01-05 14:44 UTC (permalink / raw)
  To: Richard Stallman
  Cc: juri, rudalics, Lars Ingebrigtsen, emacs-devel, eliz, drew.adams

> A combination of our practices adds up to a system that will install
> some UI changes without having much of a discussion about it.

I see no evidence of that.

Maybe there is no discussion *prior* to the change, but if the change
ends up being controversial, there is pretty much always a discussion
(long) before the next release.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-04 22:17                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-05 11:44                                                 ` Alan Mackenzie
@ 2021-01-05 14:48                                                 ` Eli Zaretskii
  2021-01-05 18:18                                                   ` Juri Linkov
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-05 14:48 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel

> Date: Mon, 04 Jan 2021 22:17:51 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: emacs-devel@gnu.org
> 
>         I repeatedly explained that the old behavior should remain available. Initially the change explicitly removed the old behavior: "The old [behavior] is no longer available." The latest patch sent yesterday, only promises to "approximate" the old behavior. 
> 
>     That's because the original behavior was deemed buggy. We don't provide compatibility options to get old bugs back. As it turned out, what Alan considered buggy behavior was not necessarily so, therefore he now tries to provide a better backward compatibility.
> 
> It did not "turn out", I explained in detail that the behavior that Alan considered buggy was not at all buggy before he started working on this.

I don't see the relevance of this.  We are talking about the process,
so the details of who said what and when to make the developer aware
that the presumed buggy behavior isn't -- those details aren't
important for the purposes of the current discussions, and not naming
the person(s) who contributed to this doesn't mean their contribution
is not acknowledged.

>     As the bug is still being actively worked on, it is premature ti draw any definitive conclusions from it relevant to the current discussion.
> 
> I do believe it is relevant.
> 
> The general pattern is similar to the y-or-n-p one, in that the code of an UI behavior is removed and replaced by another one.

The UI didn't change at all in the case of minibuffer tracking.  The
commands are still the same commands.  What changed is the behavior of
Emacs in response to these commands.  That _is_ different from the
y-or-n-p case.

> It is also, I think (but it's just a feeling, I did not follow the discussions at that time), similar to the changes in Emacs 27 about which Drew loudly complained and that make Emacs 27 unuseable for him.

We don't really know what makes Emacs 27 unusable for Drew, because we
don't have enough information regarding the problems he faces, and no
one else reported anything similar, so it seems.  So I cannot see how
the issue of Emacs 27's usability for Drew can support any conclusions
yet.

> What could have been done instead is to add some new code next to the existing one to conditionally provide a new behavior, with an easy way for users who prefer / need the old behavior to revert the change. If this had been done with y-or-n-p, this thread would simply not exist. If this had been done with the new minibuffer behavior, the "Stop frames stealing each other's minibuffers" thread would be very different.

Like I said, sometimes changes run so deep that providing options to
get the precise past behavior is not feasible.  E.g., see the example
of the bidi display.



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

* Re: Confused by y-or-n-p
  2021-01-04 22:18                                                   ` Gregory Heytings via Emacs development discussions.
@ 2021-01-05 14:50                                                     ` Eli Zaretskii
  2021-01-06  0:14                                                       ` Gregory Heytings via Emacs development discussions.
  2021-01-06  5:13                                                     ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-05 14:50 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: monnier, emacs-devel

> Date: Mon, 04 Jan 2021 22:18:04 +0000
> Cc: emacs-devel@gnu.org
> From: Gregory Heytings via "Emacs development discussions." <emacs-devel@gnu.org>
> 
>     I don't think that was Richard's point: we always go to great lengths to make it possible to get back the old behavior (even for changes where the impact is quite minor).
> 
>     E.g. with respect to `y-or-n-p`, I think we already all agree that there should be a way to recover the previous "modal" behavior. We just need someone to implement it (ideally while still preserving the improvement of the new minibuffer-based code).
> 
> No always, alas.

Yes, not always.  It isn't feasible nor wise to do that "always", so
please don't insist on such unrealistic goals.  But in the vast
majority of cases, we do go to great lengths (some say too great) to
provide an option to get the old behavior back.  This list and the bug
list are replete with examples of that.

> With respect to y-or-n-p, there is now indeed an agreement that there should be a way to recover the old behavior. But IIUC, Richard's point is that this possibility should have been present since the beginning, when the new behavior was introduced, without waiting for objections.

It is impossible to promise that no one will ever make good-faith
mistakes like this.  The important point is to have procedures in
place to detect such mistakes and fix them, without imposing too much
overhead on the development.

> What happened is (1) behavior A is removed and replaced by behavior B, (2) enough people object this change, (2) behavior B is implemented again.
> 
> What could have happened instead is (1) behavior B is implemented, next to behavior A, with a way to choose between them, (2) at some point, possibly immediately, the default behavior is changed from A to B, (3) if after some time it becomes clear that behavior A is not used anymore, it is deprecated, and later again removed.

The changes in the process proposed for making such cases rarer would
cause a significant slowdown of the Emacs development, so my
conclusion is that those proposals are unjustified given the small
number of incidents that would presumably call for those changes.

> Having both behaviors available at the same time is also, I believe, a necessary condition for a fruitful comparison and discussion. Otherwise the discussion is about the merits of a removed behavior vs. the new behavior instead of about the merits of a behavior A vs. a behavior B.

It is very easy to compare without having both behaviors in the same
binary: just keep old binaries around.  That's what I do, and it
allows me to quickly see what was past behavior, and even perform a
quick "bisection" when some new problem is reported.  Highly
recommended.



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

* Re: Confused by y-or-n-p
  2021-01-05  6:25                                       ` Richard Stallman
@ 2021-01-05 14:54                                         ` Eli Zaretskii
  2021-01-06  0:14                                           ` Gregory Heytings via Emacs development discussions.
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-05 14:54 UTC (permalink / raw)
  To: rms; +Cc: rudalics, emacs-devel, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, juri@linkov.net, emacs-devel@gnu.org
> Date: Tue, 05 Jan 2021 01:25:59 -0500
> 
>   > > That is true, but it may not be a problem.  To get useful results, we
>   > > don't need most of the community to switch.  It is enough to get
>   > > answers from a variety of users.
> 
>   > Which users should they be, and how do we find them and reach out to
>   > them?
> 
> One obvious way is to post an announcement on various mailing lists,
> asking people to repost it.  People will respond.
> 
>   > They should definitely be users who have the just-released version
>   > installed, which is why I mentioned the observation that the process
>   > of upgrading to a new version is slow and takes many moons.
> 
> That's why I suggest waiting before we ask.
> 
>   > Let's say we have half a dozen of such features, and we need to wait
>   > for the answers for a few months about each one of them.  Who can have
>   > a long enough attention span to manage such a polling system?
> 
> I propose a distributed system which needs no management.  The people
> who advocate changing the default to enable a given feature will
> probably speak up about it.  We just need a rule about the minimum
> time to wait after the release.
> 
> If they don't speak up, that suggests that having the new option is
> sufficient ;-}.

You are describing something that is already happening.  In the vast
majority of cases new features don't become the default, they are
introduced as opt-in features and announced in NEWS.  We consider
making them the default after several releases, if and when people
start asking us to enable a feature by default.

This is so even if the new feature is compatible with past behavior.
New features that break compatibility with past behavior are highly
unlikely to be turned on by default, much less so than features that
are deemed compatible.

My conclusion is that what you are proposing regarding the
introduction of new features into official releases already happens,
and there's no need for any changes in the process and the rules we
are using for that, in order to support what you'd like to see.

Once again, mistakes can happen, so please don't bring up this or that
single incident as evidence that the above description is incorrect or
skewed, unless you are prepared to argue that the mistakes happen too
often, and produce evidence of such high frequency.  A single incident
is not evidence strong enough that the process is flawed, and doesn't
justify complicating the process with additional rules associated with
high overhead.

(How to avoid mistakes during development, where some change is deemed
compatible and non-problematic whereas in fact it isn't, is a separate
issue, unrelated to the release process and the way we handle changes
in the defaults from release to release.  But that is not the issue
you raised in the message to which I'm responding.)



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

* Re: Confused by y-or-n-p
  2021-01-05  6:33                                                 ` Richard Stallman
@ 2021-01-05 14:57                                                   ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-05 14:57 UTC (permalink / raw)
  To: rms; +Cc: juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams,
	monnier

> From: Richard Stallman <rms@gnu.org>
> Cc: monnier@iro.umontreal.ca, juri@linkov.net, rudalics@gmx.at,
> 	eliz@gnu.org, emacs-devel@gnu.org, larsi@gnus.org,
> 	drew.adams@oracle.com
> Date: Tue, 05 Jan 2021 01:33:50 -0500
> 
>   >   So here's a suggestion: perhaps we should think about
>   > sometimes carrying out time-boxed experiments on the master branch in
>   > controversial cases.  For example: we add this keybinding now, to be
>   > revisited in 14/21/30 days and then a final discussion is taken to keep
>   > or revert it once people have gotten some experience with it.
> 
> That's fine with me, but there should be a variable to enable the
> changed behavior.  That makes the experiment painless for everyone else.

It is impractical to make a variable for every change in behavior.

In some cases the change itself is a variable: for example
introduction of a new option or a new binding gives you that variable
as a side effect.

In other cases we think we are fixing a bug or a confusing or
incorrect behavior.  In these cases we don't provide variables to get
back the incorrect behavior, nor should we.

In yet other cases the changes are so deep and significant that
providing backward compatibility would impose an impossible toll that
makes the entire changeset impractical.

The rare problematic cases are when the judgment call about the nature
of the change turns out to be a mistake.  We should try to minimize
such mistakes, but introducing a rule that _every_ change should
necessarily come with a variable to disable or revert it is a cure
that is much worse than the disease.  I'm against such absurd
measures.

To be practical, a rule like this would need to come with some
elaborate set of allowed exceptions, and that will undoubtedly trigger
endless discussions about whether this or that particular change is or
isn't an exception (because adding such compatibility shims is never a
job developers like).  We have such disputes already, because we do
attempt to provide such options where deemed necessary.  The proposed
rule will make that much worse, so I'm against such an absolute rule.



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

* Re: Confused by y-or-n-p
  2021-01-05  6:33                                               ` Richard Stallman
  2021-01-05 14:44                                                 ` Stefan Monnier
@ 2021-01-05 14:58                                                 ` Eli Zaretskii
  1 sibling, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-05 14:58 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: eliz@gnu.org, rudalics@gmx.at, juri@linkov.net,
> 	drew.adams@oracle.com, emacs-devel@gnu.org
> Date: Tue, 05 Jan 2021 01:33:57 -0500
> 
>   > Three out of five Emacs maintainers have now weighed in (at some length,
>   > in total), that they don't think your proposal would be helpful in
>   > practice, so I think it's time to let this go.  
> 
> We can't "let it go".  A combination of our practices adds up to a
> system that will install some UI changes without having much of a
> discussion about it.  And then, once they are released, it is "too
> late" to argue to revert them.

I don't think the above is a balanced description of the reality.  We
have a single incident, or maybe a small number of them, where the
process failed to spot a problematic change in time for it to be fixed
before the release.  So we are fixing it later.

That's not what the "system" is, that's a rare exception.  Mistakes
happen, and will continue to happen, no matter what procedures we will
install.  Let's not exaggerate the significance of a single incident,
and let's not draw drastic conclusions from it that blow the issue out
of proportions, because that never leads to sound decisions.

> There are many ways we could fix this, but we need to fix it.

The problems are rare, so the proposed solutions should not unduly
complicate the existing process, which in the vast majority of the
cases does work, and works well.  I invite you to read the NEWS for
the few recent releases looking for behavior changes that have a
documented way of disabling them, and for changes that are opt-in to
begin with.  _That_ is what the "system" produces, not the one or two
rare exceptions.



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

* Re: Confused by y-or-n-p
  2021-01-05  8:16                                                       ` Lars Ingebrigtsen
@ 2021-01-05 15:03                                                         ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-05 15:03 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: rms, juri, rudalics, stefankangas, emacs-devel, drew.adams,
	monnier

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: stefankangas@gmail.com,  monnier@iro.umontreal.ca,  rms@gnu.org,
>   juri@linkov.net,  rudalics@gmx.at,  emacs-devel@gnu.org,
>   drew.adams@oracle.com
> Date: Tue, 05 Jan 2021 09:16:57 +0100
> 
> > I don't mind that, either, but what about people who submit changes,
> > but don't intend to stick around long enough to see this process
> > through?  Someone will have to step in and do it for them.
> 
> I guess the person who commits the patch is the natural person to do it
> then...  but in my experience, things like this is almost exclusively
> done by the regular developers.

I have enough examples to the contrary to make me skeptical.

In any case, suppose you are wrong, and the responsible person fails
to do this job, do we have Plan B?  Or do we allow this process to
fail?  If the latter, then we don't really have any guarantee that
this will work, do we?



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

* Re: Confused by y-or-n-p
  2021-01-05 10:48                                                     ` Alan Mackenzie
  2021-01-05 11:10                                                       ` tomas
@ 2021-01-05 15:34                                                       ` martin rudalics
  1 sibling, 0 replies; 210+ messages in thread
From: martin rudalics @ 2021-01-05 15:34 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: Gregory Heytings, emacs-devel

 > It does, but it's about a thing, not a person's actions.  Does it
 > disturb anybody?  Does it disturb you?  That's a genuine question.  If
 > so, I will be more careful to avoid repeating the disturbance in the
 > future.

I'm using such jargon myself (and almost immediately repent it because
somebody must have written that code before) so it usually doesn't
disturb me.  But in the present situation it was not diplomatic to use
it.

martin



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

* Re: Confused by y-or-n-p
  2021-01-05 14:48                                                 ` Eli Zaretskii
@ 2021-01-05 18:18                                                   ` Juri Linkov
  0 siblings, 0 replies; 210+ messages in thread
From: Juri Linkov @ 2021-01-05 18:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Gregory Heytings, emacs-devel

>> It is also, I think (but it's just a feeling, I did not follow the
>> discussions at that time), similar to the changes in Emacs 27 about
>> which Drew loudly complained and that make Emacs 27 unuseable
>> for him.
>
> We don't really know what makes Emacs 27 unusable for Drew, because we
> don't have enough information regarding the problems he faces, and no
> one else reported anything similar, so it seems.  So I cannot see how
> the issue of Emacs 27's usability for Drew can support any conclusions
> yet.

I too don't understand why while in dozens of libraries Drew routinely
adds backward-compatible aliases such as

  (when (= emacs-major-version 27)
    (defun y-or-n-p ()
       pre-27 body ...

but not in this case.



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

* Re: Confused by y-or-n-p
  2021-01-05 14:54                                         ` Eli Zaretskii
@ 2021-01-06  0:14                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-06  0:44                                             ` Stefan Monnier
  2021-01-06  3:35                                             ` Eli Zaretskii
  0 siblings, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-06  0:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, juri, rms, emacs-devel


>
> You are describing something that is already happening.  In the vast 
> majority of cases new features don't become the default, they are 
> introduced as opt-in features and announced in NEWS.  We consider making 
> them the default after several releases, if and when people start asking 
> us to enable a feature by default.
>

I agree with you that this is already happening in the vast majority of 
cases, so why would it be problematic to make this a rule, that in 
principle any change to Emacs' behavior should provide a way to re-enable 
the old behavior?  IIUC that's all Richard wants.  Of course that rule 
would not apply to bugfixes, and exceptions would be possible with the 
explicit approval of a maintainer.



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

* Re: Confused by y-or-n-p
  2021-01-05 14:50                                                     ` Eli Zaretskii
@ 2021-01-06  0:14                                                       ` Gregory Heytings via Emacs development discussions.
  2021-01-06  3:34                                                         ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-06  0:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier, emacs-devel


>> Having both behaviors available at the same time is also, I believe, a 
>> necessary condition for a fruitful comparison and discussion. Otherwise 
>> the discussion is about the merits of a removed behavior vs. the new 
>> behavior instead of about the merits of a behavior A vs. a behavior B.
>
> It is very easy to compare without having both behaviors in the same 
> binary: just keep old binaries around.  That's what I do, and it allows 
> me to quickly see what was past behavior, and even perform a quick 
> "bisection" when some new problem is reported.  Highly recommended.
>

That's what I do, too.  But you can't expect regular users to do this to 
compare two behaviors in order to give feedback.



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

* Re: Confused by y-or-n-p
  2021-01-06  0:14                                           ` Gregory Heytings via Emacs development discussions.
@ 2021-01-06  0:44                                             ` Stefan Monnier
  2021-01-06  9:41                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-06  3:35                                             ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Stefan Monnier @ 2021-01-06  0:44 UTC (permalink / raw)
  To: Gregory Heytings via Emacs development discussions.
  Cc: Gregory Heytings, rudalics, Eli Zaretskii, rms, juri

> I agree with you that this is already happening in the vast majority of
> cases, so why would it be problematic to make this a rule, that in principle
> any change to Emacs' behavior should provide a way to re-enable the old
> behavior?  IIUC that's all Richard wants.  Of course that rule would not
> apply to bugfixes, and exceptions would be possible with the explicit
> approval of a maintainer.

The problem is that I disagree with your "Of course": the whole
difficulty is to decide which change falls in this category.

The problem is not that we don't follow the rule or that we don't have
such a rule.  It's that there's no hard-and-fast way to decide where
that rule should apply: it's a judgment call and often this call is
non-trivial (what one person calls "feature" qualifies as "bug fix" for
another, what should be a cosmetic change may end up unexpectedly
changing behavior), which is why sometimes it takes feedback from users
to realize we got it wrong.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-06  0:14                                                       ` Gregory Heytings via Emacs development discussions.
@ 2021-01-06  3:34                                                         ` Eli Zaretskii
  2021-01-06  9:41                                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-07  7:41                                                           ` Richard Stallman
  0 siblings, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06  3:34 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: monnier, emacs-devel

> Date: Wed, 06 Jan 2021 00:14:33 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
> 
> > It is very easy to compare without having both behaviors in the same 
> > binary: just keep old binaries around.  That's what I do, and it allows 
> > me to quickly see what was past behavior, and even perform a quick 
> > "bisection" when some new problem is reported.  Highly recommended.
> 
> That's what I do, too.  But you can't expect regular users to do this to 
> compare two behaviors in order to give feedback.

Why not?  This is not about any user, this is about people who track
the Emacs development.



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

* Re: Confused by y-or-n-p
  2021-01-06  0:14                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-06  0:44                                             ` Stefan Monnier
@ 2021-01-06  3:35                                             ` Eli Zaretskii
  1 sibling, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06  3:35 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: rudalics, juri, rms, emacs-devel

> Date: Wed, 06 Jan 2021 00:14:21 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: rms@gnu.org, rudalics@gmx.at, emacs-devel@gnu.org, juri@linkov.net
> 
> > You are describing something that is already happening.  In the vast 
> > majority of cases new features don't become the default, they are 
> > introduced as opt-in features and announced in NEWS.  We consider making 
> > them the default after several releases, if and when people start asking 
> > us to enable a feature by default.
> 
> I agree with you that this is already happening in the vast majority of 
> cases, so why would it be problematic to make this a rule, that in 
> principle any change to Emacs' behavior should provide a way to re-enable 
> the old behavior?

Because the fact it's already happening means we already have the
necessary rules, and adding more rules that restrict how we develop
Emacs is an unnecessary overhead.



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

* Re: Confused by y-or-n-p
  2021-01-04 15:01                                             ` Eli Zaretskii
@ 2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06 15:14                                                 ` Eli Zaretskii
  2021-01-06  5:01                                               ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > It may be "valid" in principle, but it is no a wise choice for changes
  > > in the Emacs command interface.  If we want to be confident that users
  > > will notice plans for changes, and say if they object, before the
  > > change is in a release, we are obliged to help users notice.

  > Users don't track emacs-devel, either.  In fact, most users nowadays
  > don't like to use mailing lists at all.

You are right that most users don't pay attention to the work we are
doing while we are doing it.  They will not comment on it.

Thus we have been talking, all along, about the users that do pay
attention, and might comment on proposed changes.  The words you
quoted above refer to them, too.

  >   So I don't see how forcing
  > discussions to happen on emacs-devel will reach the goal of helping
  > users notice important changes and object in time.

It will give help all the users who follow emacs-devel to take note
of a proposed change.  That is what we presume will happen, but it isn't
happening reliably.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 15:01                                             ` Eli Zaretskii
  2021-01-06  5:01                                               ` Richard Stallman
@ 2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06 15:16                                                 ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > That's not difficult.  People who want to make the new behavior the default
  > > will be motivated to conduct the inquiry.

  > If they are motivated enough, we don't need any rules for that, we
  > just should continue behaving as we did, because starting a discussion
  > on emacs-devel about any issue related to Emacs is always possible
  > (and happens already).

You CAN start a discussion on emacs-devel, but in order to be aware
there is a need for one, you would need to subscribe to bug-gnu-emacs
AND follow discussion of dealing with a particular bug.

The point of my rule simply to ensure that the readers of emacs-devel
see that there is an interface change is being proposed.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 14:59                                             ` Eli Zaretskii
@ 2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06 15:16                                                 ` Eli Zaretskii
  2021-01-06 15:28                                                 ` Stefan Monnier
  2021-01-06  5:01                                               ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > My point is that they are not so rare -- there is a systematic tendency
  > > for that to happen.

  > What is the basis for your impression that such a tendency exists?

I've pointed out the steps of the pathway.

1. A bug is reported.  Most of us are not interested in fixing that bug
   so we don't read the messages about it.
2. People discussing it in the bug thread propose
   and agree on a certain change.
3. It happens to be a change in user interface.
4. They implement it without ever discussing it on emacs-devel.
5. Before we notice the change, a new release is made.
6. Some of us object and we are told, "Because this change has been in a
   release, we will not undo it (or even revert the default) unless there
   are strong objections."

How often does this happen?  I don't know.  But why let it happen?

I have proposed several ways to avoid it.  I'm not wedded to any of
them; I just want to stop it from happening again.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 14:59                                             ` Eli Zaretskii
  2021-01-06  5:01                                               ` Richard Stallman
@ 2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06 15:17                                                 ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > My proposal will help with that problem too.  Instead of waiting for a
  > > resolution of the dispute, we should install the change with a user
  > > option variable to enable the new behavior.

  > That is already happening where the change seems to be controversial
  > or a too radical departure from long-time behavior.

That's good.  But it suggests that the spectre of "interminable
dispute" has been exaggerated.  If people are getting tired of
a dispute, they will get behind the solution of "install it with
an option" and we will go ahead with that.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 15:17                                                   ` Lars Ingebrigtsen
                                                                       ` (2 preceding siblings ...)
  2021-01-04 17:20                                                     ` martin rudalics
@ 2021-01-06  5:01                                                     ` Richard Stallman
  3 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: juri, rudalics, stefankangas, eliz, emacs-devel, drew.adams,
	monnier

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > To take the already-mentioned case as an example -- Martin wanted to
  > have us try out horizontal scroll bars to see whether they work, so he'd
  > flip them on, and announce on emacs-devel "these default to on for a
  > week, and then we'll discuss".

That would satisfy me, because it would be announced on emacs-devel.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 16:10                                                     ` Eli Zaretskii
  2021-01-05  8:16                                                       ` Lars Ingebrigtsen
@ 2021-01-06  5:01                                                       ` Richard Stallman
  2021-01-06 15:19                                                         ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:01 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams,
	monnier

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > I think the most natural person to manage the process would be the
  > > person that's proposing the change.  That is, we don't really need much
  > > formalism around this.

  > I don't mind that, either, but what about people who submit changes,
  > but don't intend to stick around long enough to see this process
  > through?  Someone will have to step in and do it for them.

Before doing this time-boxed feature test, we would ask the people pushing for
the change to accept the responsibility to follow it up, with a given
schedule.

If they don't want to do that, the test doesn't start.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 17:17                                                     ` Stefan Monnier
  2021-01-04 17:43                                                       ` Eli Zaretskii
@ 2021-01-06  5:02                                                       ` Richard Stallman
  2021-01-06 15:20                                                         ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:02 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: juri, rudalics, stefankangas, larsi, emacs-devel, eliz,
	drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > IME a week is not sufficient:
  > - Many users don't update from `master` on a daily basis.
  > - I `git fetch` daily from `master`, but I don't restart my Emacs
  >   sessions all the time (hell, I just tried `M-x emacs-uptime` and this
  >   Gnus-dedicated session "says 184 days, 18 hours, 28 minutes, 38
  >   seconds").

I update from master every few months.  Building it takes a day.

Because there are occasional complications, I don't even do git pull
unless I'm ready to spend a while dealing with the consequences.
I do now know how to deal with those complications, but it may
take time.

  > So I think such changes should be introduced with:
  > - An explicit announcement.
  > - A clear way to get back the old behavior.
  > - A trial period in the order 2-3 months.

Fine with me.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 17:20                                                     ` martin rudalics
  2021-01-04 17:43                                                       ` Lars Ingebrigtsen
  2021-01-04 18:04                                                       ` Stefan Monnier
@ 2021-01-06  5:03                                                       ` Richard Stallman
  2021-01-06 15:23                                                         ` Eli Zaretskii
  2 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:03 UTC (permalink / raw)
  To: martin rudalics
  Cc: emacs-devel, stefankangas, larsi, juri, eliz, drew.adams, monnier

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

     > Note that horizontal scrollbars are turned on by default on all builds
     > that support them.  This is the only way I see to get them at least some
     > initial coverage.  If you utterly dislike them (or do not use scrollbars
     > at all) please use the idiom

     > (when (fboundp 'horizontal-scroll-bar-mode)
     >   (horizontal-scroll-bar-mode -1))

     > I intend to disable horizontal scrollbars by default in the next weeks.

It seems good to me.  Just because someone grumbled does not imply it
was your fault.

Perhaps it would have been good to ask Eli to announce it.
That would have gained more respect for the test.
If someone did grumble, we (Eli, you, I, ...) could have responded
that the reason to run the development version is so you can
help by trying it out.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 17:28                                                   ` martin rudalics
@ 2021-01-06  5:03                                                     ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:03 UTC (permalink / raw)
  To: martin rudalics; +Cc: ghe, monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  >  > E.g. with respect to `y-or-n-p`, I think we already all agree that there
  >  > should be a way to recover the previous "modal" behavior.  We just need
  >  > someone to implement it (ideally while still preserving the improvement
  >  > of the new minibuffer-based code).

  > IIUC Juri has done that in commit cd4a51695fddf2a76ae9ed71efa8bfb4a515b32e.

Thank you, Juri.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 18:03                                       ` Juri Linkov
@ 2021-01-06  5:03                                         ` Richard Stallman
  2021-01-14  8:50                                           ` Juri Linkov
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:03 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, larsi, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Its name should be consistent with another variable
  > use-short-answers that could be used to replace
  > yes-or-no-p with y-or-n-p.  These two should have names
  > that preclude confusion between their meanings.

  > Also use-short-answers could be used by the existing variable
  > read-answer-short.

That might be good, but needs working out the details.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-04 22:18                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-05 14:50                                                     ` Eli Zaretskii
@ 2021-01-06  5:13                                                     ` Richard Stallman
  1 sibling, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-06  5:13 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Having both behaviors available at the same time is also, I believe, a 
  > necessary condition for a fruitful comparison and discussion.  Otherwise 
  > the discussion is about the merits of a removed behavior vs. the new 
  > behavior instead of about the merits of a behavior A vs. a behavior B.

It certainly helps people recognize what they prefer
if they can switch back and forth between the two.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06  0:44                                             ` Stefan Monnier
@ 2021-01-06  9:41                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-06 11:06                                                 ` Stefan Kangas
                                                                   ` (2 more replies)
  0 siblings, 3 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-06  9:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rudalics, Eli Zaretskii, juri, rms, emacs-devel


>> I agree with you that this is already happening in the vast majority of 
>> cases, so why would it be problematic to make this a rule, that in 
>> principle any change to Emacs' behavior should provide a way to 
>> re-enable the old behavior?  IIUC that's all Richard wants.  Of course 
>> that rule would not apply to bugfixes, and exceptions would be possible 
>> with the explicit approval of a maintainer.
>
> The problem is that I disagree with your "Of course": the whole 
> difficulty is to decide which change falls in this category.
>
> The problem is not that we don't follow the rule or that we don't have 
> such a rule.  It's that there's no hard-and-fast way to decide where 
> that rule should apply: it's a judgment call and often this call is 
> non-trivial (what one person calls "feature" qualifies as "bug fix" for 
> another, what should be a cosmetic change may end up unexpectedly 
> changing behavior), which is why sometimes it takes feedback from users 
> to realize we got it wrong.
>

A rule is not a mathematical law, it's an action guideline.  Such a rule 
would avoid having developers start working on something thinking that 
scratching the current state of affairs to create something they believe 
is better without thinking about backwards compatibility is okay.

This does happen, and this can lead and does lead to unnecessary disputes 
(one is underway), that could be avoided with such a rule.

By the way, the feedback in this case came from Richard, who wanted the 
old behavior back, and he got it back in a few days.  I'm curious whether 
this would have happened if the feedback had been sent by a random user.



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

* Re: Confused by y-or-n-p
  2021-01-06  3:34                                                         ` Eli Zaretskii
@ 2021-01-06  9:41                                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-06 15:33                                                             ` Eli Zaretskii
  2021-01-08  6:17                                                             ` Richard Stallman
  2021-01-07  7:41                                                           ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-06  9:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier, emacs-devel


>>> It is very easy to compare without having both behaviors in the same 
>>> binary: just keep old binaries around.  That's what I do, and it 
>>> allows me to quickly see what was past behavior, and even perform a 
>>> quick "bisection" when some new problem is reported.  Highly 
>>> recommended.
>>
>> That's what I do, too.  But you can't expect regular users to do this 
>> to compare two behaviors in order to give feedback.
>
> Why not?  This is not about any user, this is about people who track the 
> Emacs development.
>

One of the things Richard had in mind in his proposal was "poll the users 
and see who likes [the new behavior] _and why_".  Perhaps I misunderstood 
what he meant, but for me "the users" is much broader than "people who 
track the Emacs development".



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

* Re: Confused by y-or-n-p
  2021-01-06  9:41                                               ` Gregory Heytings via Emacs development discussions.
@ 2021-01-06 11:06                                                 ` Stefan Kangas
  2021-01-06 15:35                                                   ` Eli Zaretskii
                                                                     ` (2 more replies)
  2021-01-06 15:32                                                 ` Confused by y-or-n-p Eli Zaretskii
  2021-01-07  7:52                                                 ` Richard Stallman
  2 siblings, 3 replies; 210+ messages in thread
From: Stefan Kangas @ 2021-01-06 11:06 UTC (permalink / raw)
  To: Gregory Heytings, Stefan Monnier
  Cc: rudalics, Eli Zaretskii, emacs-devel, rms, juri

Gregory Heytings via "Emacs development discussions."
<emacs-devel@gnu.org> writes:

> A rule is not a mathematical law, it's an action guideline.

No, a rule is obviously stronger than a guideline.

Otherwise, you would have proposed a guideline.  Which would be a fine
proposal, and AFAICT equivalent to what we have already.

> ... developers start working on something thinking that scratching the
> current state of affairs to create something they believe is better
> without thinking about backwards compatibility ...

Do you have any evidence to back up the claim that this has happened?

> By the way, the feedback in this case came from Richard, who wanted the
> old behavior back, and he got it back in a few days.  I'm curious whether
> this would have happened if the feedback had been sent by a random user.

Of course Richard's word has more weight than that of "a random user".
This is expected in any project.  (Guido in Python, Larry Wall in Perl,
Linus in Linux, etc.)

But in general, backwards compatibility complaints are taken seriously
no matter the sender.  In fact, this project sometimes goes to extreme
lengths simply to maintain backwards-compatibility even in the most
minor and inconsequential cases.

But of course on occasion we trip up: we don't pay enough attention to
this aspect, or we take it much too far.  Both are equally bad, IMHO.
To my mind, we need to take a balanced view.  I don't see how a hard
rule (or even a soft one) will help us do that better.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:01                                               ` Richard Stallman
@ 2021-01-06 15:14                                                 ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:14 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, emacs-devel@gnu.org,
> 	drew.adams@oracle.com, juri@linkov.net
> Date: Wed, 06 Jan 2021 00:01:09 -0500
> 
>   > Users don't track emacs-devel, either.  In fact, most users nowadays
>   > don't like to use mailing lists at all.
> 
> You are right that most users don't pay attention to the work we are
> doing while we are doing it.  They will not comment on it.
> 
> Thus we have been talking, all along, about the users that do pay
> attention, and might comment on proposed changes.  The words you
> quoted above refer to them, too.

Then we are talking about some arbitrary sample of users on which we
have no control.  Thus, nothing prevents us from talking about another
arbitrary sample: those who track both emacs-devel and the bug list.

The life of the head maintainers is already complicated enough, so I
object to making it significantly more complicated and time-consuming
just because we want to save someone the trouble of reading another
mailing list.

>   >   So I don't see how forcing
>   > discussions to happen on emacs-devel will reach the goal of helping
>   > users notice important changes and object in time.
> 
> It will give help all the users who follow emacs-devel to take note
> of a proposed change.  That is what we presume will happen, but it isn't
> happening reliably.

I see no reason to believe that the users who read emacs-devel, but
don't read the bug list, are more important for getting feedback from
than those who read both.  I could make a case for the opposite, in
fact.

Btw, all the persons involved in the discussion of the y-or-n-p issue
read both lists, AFAIK.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:01                                               ` Richard Stallman
@ 2021-01-06 15:16                                                 ` Eli Zaretskii
  2021-01-07  7:53                                                   ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:16 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, emacs-devel@gnu.org,
> 	drew.adams@oracle.com, juri@linkov.net
> Date: Wed, 06 Jan 2021 00:01:13 -0500
> 
>   > If they are motivated enough, we don't need any rules for that, we
>   > just should continue behaving as we did, because starting a discussion
>   > on emacs-devel about any issue related to Emacs is always possible
>   > (and happens already).
> 
> You CAN start a discussion on emacs-devel, but in order to be aware
> there is a need for one, you would need to subscribe to bug-gnu-emacs
> AND follow discussion of dealing with a particular bug.

There's no need to subscribe to bug-gnu-emacs in order to read it.
One can follow the list archives via the Web browser, for example, or
use the debbugs Web interface.

> The point of my rule simply to ensure that the readers of emacs-devel
> see that there is an interface change is being proposed.

The rule you propose has a price that I don't think we should pay.  I
personally simply cannot afford paying it.  Reading the bug list is
not a big deal, so people who want to be more involved are invited to
do that.  By contrast, the burden on Lars and myself to make sure we
start a discussion about every change which might require it is
considerable.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:01                                               ` Richard Stallman
@ 2021-01-06 15:16                                                 ` Eli Zaretskii
  2021-01-06 21:18                                                   ` Alfred M. Szmidt
  2021-01-06 15:28                                                 ` Stefan Monnier
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:16 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, emacs-devel@gnu.org,
> 	drew.adams@oracle.com, juri@linkov.net
> Date: Wed, 06 Jan 2021 00:01:17 -0500
> 
>   > What is the basis for your impression that such a tendency exists?
> 
> I've pointed out the steps of the pathway.
> 
> 1. A bug is reported.  Most of us are not interested in fixing that bug
>    so we don't read the messages about it.
> 2. People discussing it in the bug thread propose
>    and agree on a certain change.
> 3. It happens to be a change in user interface.
> 4. They implement it without ever discussing it on emacs-devel.
> 5. Before we notice the change, a new release is made.
> 6. Some of us object and we are told, "Because this change has been in a
>    release, we will not undo it (or even revert the default) unless there
>    are strong objections."
> 
> How often does this happen?  I don't know.

Extremely rare, IME.

> But why let it happen?

If someone can come up with a solution that doesn't impose too heavy
overhead, we should definitely consider it.  None of the solutions
proposed until now fulfills that requirement, so the simple solution I
proposed -- to read bug-gnu-emacs in addition to emacs-devel -- still
wins.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:01                                               ` Richard Stallman
@ 2021-01-06 15:17                                                 ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:17 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, juri, drew.adams, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, emacs-devel@gnu.org,
> 	drew.adams@oracle.com, juri@linkov.net
> Date: Wed, 06 Jan 2021 00:01:20 -0500
> 
>   > > My proposal will help with that problem too.  Instead of waiting for a
>   > > resolution of the dispute, we should install the change with a user
>   > > option variable to enable the new behavior.
> 
>   > That is already happening where the change seems to be controversial
>   > or a too radical departure from long-time behavior.
> 
> That's good.  But it suggests that the spectre of "interminable
> dispute" has been exaggerated.  If people are getting tired of
> a dispute, they will get behind the solution of "install it with
> an option" and we will go ahead with that.

You are forgetting the cases where such a variable is inappropriate,
for example if the person who proposes the change thinks the change
fixes a bug, or when such a variable is not feasible.

Besides, no one can be sure that people who get tired will implement
such a variable to stop the dispute.  They are quite likely to give up
on the change instead.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:01                                                       ` Richard Stallman
@ 2021-01-06 15:19                                                         ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:19 UTC (permalink / raw)
  To: rms; +Cc: juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams,
	monnier

> From: Richard Stallman <rms@gnu.org>
> Cc: larsi@gnus.org, stefankangas@gmail.com, monnier@iro.umontreal.ca,
> 	juri@linkov.net, rudalics@gmx.at, emacs-devel@gnu.org,
> 	drew.adams@oracle.com
> Date: Wed, 06 Jan 2021 00:01:30 -0500
> 
>   > I don't mind that, either, but what about people who submit changes,
>   > but don't intend to stick around long enough to see this process
>   > through?  Someone will have to step in and do it for them.
> 
> Before doing this time-boxed feature test, we would ask the people pushing for
> the change to accept the responsibility to follow it up, with a given
> schedule.

IME, this doesn't work with today's volunteer-based communities,
including this one.  We have no practical way of ensuring people
assume such responsibilities, let alone keep their promises in that
regard.  We all have our Real Lives.

This isn't a theory, it happens here in enough cases to be a real-life
scenario we should take into account.

> If they don't want to do that, the test doesn't start.

Meaning that the change doesn't get installed?  That'd be a serious
blow to development, which is unjustified.  The frequency of problems
such as the current one is very low; by contrast, people submitting a
change that looks useful and then disappearing happens all the time.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:02                                                       ` Richard Stallman
@ 2021-01-06 15:20                                                         ` Eli Zaretskii
  2021-01-06 16:44                                                           ` Stefan Monnier
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:20 UTC (permalink / raw)
  To: rms; +Cc: juri, rudalics, monnier, larsi, emacs-devel, drew.adams,
	stefankangas

> From: Richard Stallman <rms@gnu.org>
> Cc: larsi@gnus.org, eliz@gnu.org, stefankangas@gmail.com,
> 	juri@linkov.net, rudalics@gmx.at, emacs-devel@gnu.org,
> 	drew.adams@oracle.com
> Date: Wed, 06 Jan 2021 00:02:48 -0500
> 
>   > So I think such changes should be introduced with:
>   > - An explicit announcement.
>   > - A clear way to get back the old behavior.
>   > - A trial period in the order 2-3 months.
> 
> Fine with me.

Fine with me, if someone volunteers to do this job.  Failing that,
definitely not fine with me, as I cannot afford adding this to my
current burden of Emacs maintenance.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:03                                                       ` Richard Stallman
@ 2021-01-06 15:23                                                         ` Eli Zaretskii
  2021-01-07  7:53                                                           ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:23 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel, rudalics, stefankangas, larsi, juri, drew.adams,
	monnier

> From: Richard Stallman <rms@gnu.org>
> Cc: larsi@gnus.org, eliz@gnu.org, juri@linkov.net,
> 	stefankangas@gmail.com, emacs-devel@gnu.org,
> 	drew.adams@oracle.com, monnier@iro.umontreal.ca
> Date: Wed, 06 Jan 2021 00:03:07 -0500
> 
> Perhaps it would have been good to ask Eli to announce it.
> That would have gained more respect for the test.

I very much doubt that my announcement would carry much more weight
than Martin's.

More importantly, I have already so much to do with so little time to
do it that I'm glad about every opportunity I have to delegate to
someone else.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:01                                               ` Richard Stallman
  2021-01-06 15:16                                                 ` Eli Zaretskii
@ 2021-01-06 15:28                                                 ` Stefan Monnier
  1 sibling, 0 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-06 15:28 UTC (permalink / raw)
  To: Richard Stallman
  Cc: emacs-devel, rudalics, Eli Zaretskii, juri, larsi, drew.adams

> 1. A bug is reported.  Most of us are not interested in fixing that bug
>    so we don't read the messages about it.
> 2. People discussing it in the bug thread propose
>    and agree on a certain change.
> 3. It happens to be a change in user interface.
> 4. They implement it without ever discussing it on emacs-devel.
> 5. Before we notice the change, a new release is made.
> 6. Some of us object and we are told, "Because this change has been in a
>    release, we will not undo it (or even revert the default) unless there
>    are strong objections."
>
> How often does this happen?  I don't know.

We know it happens extremely rarely.

> But why let it happen?

Because preventing it requires undue burden.  The cure is worse than the disease.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-06  9:41                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-06 11:06                                                 ` Stefan Kangas
@ 2021-01-06 15:32                                                 ` Eli Zaretskii
  2021-01-07  7:52                                                   ` Richard Stallman
  2021-01-07  7:52                                                 ` Richard Stallman
  2 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:32 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: rudalics, juri, monnier, rms, emacs-devel

> Date: Wed, 06 Jan 2021 09:41:09 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: emacs-devel@gnu.org, rudalics@gmx.at, Eli Zaretskii <eliz@gnu.org>,
>         rms@gnu.org, juri@linkov.net
> 
> A rule is not a mathematical law, it's an action guideline.

That's not the kind of "rule" we are discussing here, please re-read
the thread from its beginning.  I said long ago that I'm okay with a
guideline (and we actually already have it and act on it).

The proposed rule is very different: it says that if the announcement
and the discussion didn't happen, the change cannot go in.



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

* Re: Confused by y-or-n-p
  2021-01-06  9:41                                                           ` Gregory Heytings via Emacs development discussions.
@ 2021-01-06 15:33                                                             ` Eli Zaretskii
  2021-01-06 15:46                                                               ` Tassilo Horn
  2021-01-06 23:57                                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-08  6:17                                                             ` Richard Stallman
  1 sibling, 2 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:33 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: monnier, emacs-devel

> Date: Wed, 06 Jan 2021 09:41:27 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
> 
>         That's what I do, too. But you can't expect regular users to do this to compare two behaviors in order to give feedback. 
> 
>     Why not? This is not about any user, this is about people who track the Emacs development.
> 
> One of the things Richard had in mind in his proposal was "poll the users and see who likes [the new behavior] _and why_". Perhaps I misunderstood what he meant, but for me "the users" is much broader than "people who track the Emacs development".

We are talking about people who read emacs-devel, because we'd prefer
detecting any such problems before we release them.  So I don't see
how is that "much broader" than those who track Emacs development and
can keep several past versions for comparison.

And even if you are talking about the released versions, the normal
Emacs installation procedure leaves the previous binary available for
invocation; you need to explicitly "make uninstall" to remove it.
Does installing from a binary distro (as opposed to from sources built
locally) remove previous versions nowadays?



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

* Re: Confused by y-or-n-p
  2021-01-06 11:06                                                 ` Stefan Kangas
@ 2021-01-06 15:35                                                   ` Eli Zaretskii
  2021-01-06 15:46                                                   ` Drew Adams
  2021-01-06 23:57                                                   ` Gregory Heytings via Emacs development discussions.
  2 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 15:35 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: rms, emacs-devel, rudalics, monnier, ghe, juri

> From: Stefan Kangas <stefankangas@gmail.com>
> Date: Wed, 6 Jan 2021 12:06:44 +0100
> Cc: rudalics@gmx.at, Eli Zaretskii <eliz@gnu.org>, juri@linkov.net, rms@gnu.org, 
> 	emacs-devel@gnu.org
> 
> But in general, backwards compatibility complaints are taken seriously
> no matter the sender.  In fact, this project sometimes goes to extreme
> lengths simply to maintain backwards-compatibility even in the most
> minor and inconsequential cases.
> 
> But of course on occasion we trip up: we don't pay enough attention to
> this aspect, or we take it much too far.  Both are equally bad, IMHO.
> To my mind, we need to take a balanced view.  I don't see how a hard
> rule (or even a soft one) will help us do that better.

100% agreement.



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

* RE: Confused by y-or-n-p
  2021-01-06 11:06                                                 ` Stefan Kangas
  2021-01-06 15:35                                                   ` Eli Zaretskii
@ 2021-01-06 15:46                                                   ` Drew Adams
  2021-01-06 23:57                                                   ` Gregory Heytings via Emacs development discussions.
  2 siblings, 0 replies; 210+ messages in thread
From: Drew Adams @ 2021-01-06 15:46 UTC (permalink / raw)
  To: Stefan Kangas, Gregory Heytings, Stefan Monnier
  Cc: rudalics, Eli Zaretskii, juri, rms, emacs-devel

> No, a rule is obviously stronger than a guideline.

Some rules are stronger than guidelines, no doubt,
however one might define rule, guideline, and
strength for each.

A guideline is a rule.  A rule is not necessarily
a guideline.

Effective strength of a rule doesn't necessarily
come from the rule itself; it comes from its
enforcement.

Put differently, just what's meant by the strength
of a rule?

In country X they have very strict driving speed
limits.  But the enforcement is limited.  Every
few years they clamp down further on the amount
of blood alcohol allowed.  But without enforcing
such a "strong" rule the additional "strength" is
meaningless.



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

* Re: Confused by y-or-n-p
  2021-01-06 15:33                                                             ` Eli Zaretskii
@ 2021-01-06 15:46                                                               ` Tassilo Horn
  2021-01-06 16:08                                                                 ` Eli Zaretskii
  2021-01-06 23:57                                                               ` Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 210+ messages in thread
From: Tassilo Horn @ 2021-01-06 15:46 UTC (permalink / raw)
  To: emacs-devel


> And even if you are talking about the released versions, the normal
> Emacs installation procedure leaves the previous binary available for
> invocation; you need to explicitly "make uninstall" to remove it.
> Does installing from a binary distro (as opposed to from sources built
> locally) remove previous versions nowadays?

Usually, yes.  Sometimes there is a package foobar-8.1.0 and additional
foobar6-6.7.1, foobar7-7.9.12, i.e., installing foobar installs the
current version (8.1.0) but separate packages are provided for older
versions and you can have all of them installed in parallel, but that's
mostly done for libraries where some other package only works with
version 6 but not 7 or 8.

And from a distro packager's point of view, the additional
user-convenience of enabling users to compare emacs version X against
the current version surely doesn't justify the added maintenance costs.

Bye,
Tassilo



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

* Re: Confused by y-or-n-p
  2021-01-06 15:46                                                               ` Tassilo Horn
@ 2021-01-06 16:08                                                                 ` Eli Zaretskii
  2021-01-06 16:36                                                                   ` Tassilo Horn
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 16:08 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

> From: Tassilo Horn <tsdh@gnu.org>
> Date: Wed, 06 Jan 2021 16:46:41 +0100
> 
> > Does installing from a binary distro (as opposed to from sources built
> > locally) remove previous versions nowadays?
> 
> Usually, yes.  Sometimes there is a package foobar-8.1.0 and additional
> foobar6-6.7.1, foobar7-7.9.12, i.e., installing foobar installs the
> current version (8.1.0) but separate packages are provided for older
> versions and you can have all of them installed in parallel, but that's
> mostly done for libraries where some other package only works with
> version 6 but not 7 or 8.

Not sure we are on the same page.  I meant the following situation:

  . I installed foobar, which brought me foobar-7.1.0, the latest
    version at that time
  . Time passes and I learn there's a newer version of foobar, 8.1.0.
    So I install foobar again, and that brings me foobar-8.1.0.

But did installing foobar-8.1.0 remove the installation of
foobar-7.1.0?  With many packages, the program executables that come
with the package have the same name 'foobar', so installing the new
one would overwrite the old one.  But building and installing Emacs
installs 2 executables: 'emacs' and 'emacs-MM.NN'; installing a new
version will overwrite 'emacs', but not the versioned 'emacs-MM.NN'
binary, so it needs to be explicitly deleted to get rid of it.  And
then there are versioned subdirectories of /usr/share and
/usr/libexec.

Do distros forcibly remove those versioned files and directories when
they install a new version?

> And from a distro packager's point of view, the additional
> user-convenience of enabling users to compare emacs version X against
> the current version surely doesn't justify the added maintenance costs.

In the case of Emacs, I see no additional costs if all they do is
refrain from removing the files belonging to the previous versions.
The costs are of the end-user.

Thanks.



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

* Re: Confused by y-or-n-p
  2021-01-06 16:08                                                                 ` Eli Zaretskii
@ 2021-01-06 16:36                                                                   ` Tassilo Horn
  2021-01-06 16:58                                                                     ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Tassilo Horn @ 2021-01-06 16:36 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Not sure we are on the same page.  I meant the following situation:
>
>   . I installed foobar, which brought me foobar-7.1.0, the latest
>     version at that time
>   . Time passes and I learn there's a newer version of foobar, 8.1.0.
>     So I install foobar again, and that brings me foobar-8.1.0.
>
> But did installing foobar-8.1.0 remove the installation of
> foobar-7.1.0?

Yes.  Indeed the emacs package (on my Arch install) installs both
/usr/bin/emacs and /usr/bin/emacs-27.1 so it could keep the old version
of the binary around, and also the lisp in /usr/share/emacs/27.1/.  But
then the question is when and how are those files eventually going to be
removed?  And what about the files in /usr/share/emacs/site-lisp/?  If
they were byte-compiled with the newer version, is there a guarantee
they'll work in all the older versions?

> Do distros forcibly remove those versioned files and directories when
> they install a new version?

Yes, as said.  Usually the package manager has some database of
package-<version> and the files it installed and will remove the files
when the package version is removed in order to clean up.

>> And from a distro packager's point of view, the additional
>> user-convenience of enabling users to compare emacs version X against
>> the current version surely doesn't justify the added maintenance
>> costs.
>
> In the case of Emacs, I see no additional costs if all they do is
> refrain from removing the files belonging to the previous versions.
> The costs are of the end-user.

They'd probably still receive bug reports for the old version.

Bye,
Tassilo



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

* Re: Confused by y-or-n-p
  2021-01-06 15:20                                                         ` Eli Zaretskii
@ 2021-01-06 16:44                                                           ` Stefan Monnier
  2021-01-06 17:05                                                             ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Stefan Monnier @ 2021-01-06 16:44 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams

>>   > So I think such changes should be introduced with:
>>   > - An explicit announcement.
>>   > - A clear way to get back the old behavior.
>>   > - A trial period in the order 2-3 months.
>> 
>> Fine with me.
>
> Fine with me, if someone volunteers to do this job.  Failing that,
> definitely not fine with me, as I cannot afford adding this to my
> current burden of Emacs maintenance.

Not sure how others interpreted what I wrote, but AFAIK none of the
above three points imply extra work (just like you, I don't want extra
work).  All it does is clarify that we can tentatively introduce changes
in defaults and when people complain about a change in UI, we may want
to tell them to "try it for a couple month" before deciding it should
be reverted.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-06 16:36                                                                   ` Tassilo Horn
@ 2021-01-06 16:58                                                                     ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 16:58 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-devel

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: emacs-devel@gnu.org
> Date: Wed, 06 Jan 2021 17:36:49 +0100
> 
> > But did installing foobar-8.1.0 remove the installation of
> > foobar-7.1.0?
> 
> Yes.  Indeed the emacs package (on my Arch install) installs both
> /usr/bin/emacs and /usr/bin/emacs-27.1 so it could keep the old version
> of the binary around, and also the lisp in /usr/share/emacs/27.1/.  But
> then the question is when and how are those files eventually going to be
> removed?

When the user decides to do so, possibly never.  E.g., I keep old
versions of all the main programs I use: Emacs, GCC, GDB, and some
others.  It is handy to have when the last version turns out to have
some grave bug, or when I want to know which version introduced some
new feature or some exciting bug.  Disk space is cheap nowadays,
whereas my time is all but cheap.

> And what about the files in /usr/share/emacs/site-lisp/?  If
> they were byte-compiled with the newer version, is there a guarantee
> they'll work in all the older versions?

Yes, we seldom if ever break backward compatibility, precisely so
site-lisp doesn't need to be recompiled.  (There's a versioned
site-lisp subdirectory under /usr/share/emacs/XY.Z as well, for the
packages that do depend on Emacs version.)

> > Do distros forcibly remove those versioned files and directories when
> > they install a new version?
> 
> Yes, as said.

Too bad.

Thanks for the info.



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

* Re: Confused by y-or-n-p
  2021-01-06 16:44                                                           ` Stefan Monnier
@ 2021-01-06 17:05                                                             ` Eli Zaretskii
  2021-01-06 17:13                                                               ` Stefan Monnier
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-06 17:05 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: rms, juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: rms@gnu.org,  larsi@gnus.org,  stefankangas@gmail.com,  juri@linkov.net,
>   rudalics@gmx.at,  emacs-devel@gnu.org,  drew.adams@oracle.com
> Date: Wed, 06 Jan 2021 11:44:26 -0500
> 
> >>   > So I think such changes should be introduced with:
> >>   > - An explicit announcement.
> >>   > - A clear way to get back the old behavior.
> >>   > - A trial period in the order 2-3 months.
> >> 
> >> Fine with me.
> >
> > Fine with me, if someone volunteers to do this job.  Failing that,
> > definitely not fine with me, as I cannot afford adding this to my
> > current burden of Emacs maintenance.
> 
> Not sure how others interpreted what I wrote, but AFAIK none of the
> above three points imply extra work (just like you, I don't want extra
> work).

The "trial period" part is extra work: someone will have to manage
that.  If we are to have a rule that such a trial is required for
every UI change, tracking all those trials so that they could end in
time will be non-trivial.

Remembering to announce such changes is also an annoying additional
duty, albeit a smaller one.

Basically, such a system is a lot of hassle for very little gains.
Please show me another project that does something like that.

> All it does is clarify that we can tentatively introduce changes
> in defaults and when people complain about a change in UI, we may want
> to tell them to "try it for a couple month" before deciding it should
> be reverted.

It wasn't clear you were proposing a trial _after_ installing a
change.  If people who complain about a change agree to the trial
suggestion, it may work, but then what exactly did we change from what
we have now?  And as you well know, people who complain about this
stuff want it reverted NOW.



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

* Re: Confused by y-or-n-p
  2021-01-06 17:05                                                             ` Eli Zaretskii
@ 2021-01-06 17:13                                                               ` Stefan Monnier
  0 siblings, 0 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-06 17:13 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, stefankangas, larsi, emacs-devel, drew.adams

> It wasn't clear you were proposing a trial _after_ installing a
> change.  If people who complain about a change agree to the trial
> suggestion, it may work, but then what exactly did we change from what
> we have now?  And as you well know, people who complain about this
> stuff want it reverted NOW.

That's the crux of my suggestion: we reply "yes you want it now, but
maybe you won't want it any more in two months time, so give it a chance".


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-06 15:16                                                 ` Eli Zaretskii
@ 2021-01-06 21:18                                                   ` Alfred M. Szmidt
  2021-01-07  3:32                                                     ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Alfred M. Szmidt @ 2021-01-06 21:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, juri, rudalics, larsi, emacs-devel, drew.adams

   > How often does this happen?  I don't know.

   Extremely rare, IME.

Even if it is extremely rare, it might be worth considering it because
it would or could reduce conflict, and animosity between parties.



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

* Re: Confused by y-or-n-p
  2021-01-06 11:06                                                 ` Stefan Kangas
  2021-01-06 15:35                                                   ` Eli Zaretskii
  2021-01-06 15:46                                                   ` Drew Adams
@ 2021-01-06 23:57                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-07  9:46                                                     ` Stefan Kangas
  2021-01-07 14:09                                                     ` Eli Zaretskii
  2 siblings, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-06 23:57 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: rms, juri, rudalics, Stefan Monnier, Eli Zaretskii, emacs-devel


>
> Otherwise, you would have proposed a guideline.  Which would be a fine 
> proposal, and AFAICT equivalent to what we have already.
>

Perhaps I did not look at the right place, but I do not see such a rule or 
guideline in CONTRIBUTE or elsewhere.  What do you (and others) think of 
the following:

Any change that matters to end-users should have an entry in etc/NEWS. 
*In principle, any such change should, unless it is an added feature, 
either require setting a variable to be enabled, or be reversible by 
setting a variable.* Try to start each NEWS entry with a sentence that 
summarizes the entry and takes just one line -- this will allow to read 
NEWS in Outline mode after hiding the body of each entry.

>> ... developers start working on something thinking that scratching the 
>> current state of affairs to create something they believe is better 
>> without thinking about backwards compatibility ...
>
> Do you have any evidence to back up the claim that this has happened?
>

It happened with y-or-n-p; it would not have happened with the above 
guideline.  It is happening in the "Stop frames stealing each other's 
minibuffers" thread, where it is not clear that the behavior that is being 
changed should remain available as is, next to other behaviors.  Again 
this would not have happened with the above guideline.

>> By the way, the feedback in this case came from Richard, who wanted the 
>> old behavior back, and he got it back in a few days.  I'm curious 
>> whether this would have happened if the feedback had been sent by a 
>> random user.
>
> Of course Richard's word has more weight than that of "a random user". 
> This is expected in any project.  (Guido in Python, Larry Wall in Perl, 
> Linus in Linux, etc.)
>
> But in general, backwards compatibility complaints are taken seriously 
> no matter the sender.  In fact, this project sometimes goes to extreme 
> lengths simply to maintain backwards-compatibility even in the most 
> minor and inconsequential cases.
>

Of course I understand and expected that Richard's word has more weight. 
My fear was that if the same request had been made by someone else it 
would have been dismissed; I'm glad to read that this wouldn't have 
happened.



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

* Re: Confused by y-or-n-p
  2021-01-06 15:33                                                             ` Eli Zaretskii
  2021-01-06 15:46                                                               ` Tassilo Horn
@ 2021-01-06 23:57                                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-07  9:41                                                                 ` Stefan Kangas
  1 sibling, 1 reply; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-06 23:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: monnier, emacs-devel


>
> Does installing from a binary distro (as opposed to from sources built 
> locally) remove previous versions nowadays?
>

Yes, at least for Debian and Debian derived distributions.  Up to and 
including Emacs 25 it was possible to install more than one Emacs, the 
packages names were different for each version (emacs21, ..., emacs25). 
Debian doesn't do this anymore, the package is now just "emacs".  I don't 
know why they changed their policy.



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

* Re: Confused by y-or-n-p
  2021-01-06 21:18                                                   ` Alfred M. Szmidt
@ 2021-01-07  3:32                                                     ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-07  3:32 UTC (permalink / raw)
  To: Alfred M. Szmidt; +Cc: rms, juri, rudalics, larsi, emacs-devel, drew.adams

> From: "Alfred M. Szmidt" <ams@gnu.org>
> Cc: rms@gnu.org, rudalics@gmx.at, larsi@gnus.org, emacs-devel@gnu.org,
> 	drew.adams@oracle.com, juri@linkov.net
> Date: Wed, 06 Jan 2021 16:18:46 -0500
> 
>    > How often does this happen?  I don't know.
> 
>    Extremely rare, IME.
> 
> Even if it is extremely rare, it might be worth considering it because
> it would or could reduce conflict, and animosity between parties.

Of course, it's worth considering!  I'm not against considering it,
I'm against the specific solutions that were proposed to improve the
situation: they are worse than the problem itself.



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

* Re: Confused by y-or-n-p
  2021-01-05 14:44                                                 ` Stefan Monnier
@ 2021-01-07  7:33                                                   ` Richard Stallman
  2021-01-07 14:18                                                     ` Eli Zaretskii
                                                                       ` (2 more replies)
  0 siblings, 3 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-07  7:33 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: juri, rudalics, larsi, emacs-devel, eliz, drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Maybe there is no discussion *prior* to the change, but if the change
  > ends up being controversial, there is pretty much always a discussion
  > (long) before the next release.

Not always.  We just had a case where there wasn't.  I am simply trying
to ensure that the discussion will happen before the next release.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06  3:34                                                         ` Eli Zaretskii
  2021-01-06  9:41                                                           ` Gregory Heytings via Emacs development discussions.
@ 2021-01-07  7:41                                                           ` Richard Stallman
  2021-01-07 14:23                                                             ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-07  7:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ghe, monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > > It is very easy to compare without having both behaviors in the same 
  > > > binary: just keep old binaries around.  Highly recommended.
  > > 
  > > That's what I do, too.  But you can't expect regular users to do this to 
  > > compare two behaviors in order to give feedback.

  > Why not?  This is not about any user, this is about people who track
  > the Emacs development.

I keep old binaries around, because I know that the new build may have
difficulties.  (That happened to me in the past year.)  People who are
deeping into testing Emacs during development will find this a good
thing to do.

But testing by comparing two binaries won't be as convenient as
testing by flipping a variable during one session.  In one minute you
can toggle the option variable and try your command again.  You can
try 10 minutes of editing this way and 10 minutes that way, without
having to visit your files again.

Making an option variable for each possibly controversial change is
a favor to everyone.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06  9:41                                               ` Gregory Heytings via Emacs development discussions.
  2021-01-06 11:06                                                 ` Stefan Kangas
  2021-01-06 15:32                                                 ` Confused by y-or-n-p Eli Zaretskii
@ 2021-01-07  7:52                                                 ` Richard Stallman
  2 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-07  7:52 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: rudalics, eliz, juri, monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > A rule is not a mathematical law, it's an action guideline.  Such a rule 
  > would avoid having developers start working on something thinking that 
  > scratching the current state of affairs to create something they believe 
  > is better without thinking about backwards compatibility is okay.

+1.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06 15:32                                                 ` Confused by y-or-n-p Eli Zaretskii
@ 2021-01-07  7:52                                                   ` Richard Stallman
  2021-01-07 14:27                                                     ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-07  7:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ghe, rudalics, emacs-devel, monnier, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The proposed rule is very different: it says that if the announcement
  > and the discussion didn't happen, the change cannot go in.

That's not a big deal.  Make the announcement, have the discussion,
and then the change can go in -- perhaps with the addition of a user
option to enable the change.

Since adding the user option variable is meant to be a general
solution, we may as well say that there's no need for the announcement
or the discussion if there is aleady a user option variable to enable
the change, and it is disabled by default.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06 15:23                                                         ` Eli Zaretskii
@ 2021-01-07  7:53                                                           ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-07  7:53 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: emacs-devel, rudalics, stefankangas, larsi, juri, drew.adams,
	monnier

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Perhaps it would have been good to ask Eli to announce it.
  > > That would have gained more respect for the test.

  > I very much doubt that my announcement would carry much more weight
  > than Martin's.

  > More importantly, I have already so much to do with so little time to
  > do it that I'm glad about every opportunity I have to delegate to
  > someone else.

I understand.

Maybe all that's needed is for Martin not to feel worried about the
fact tht a user seems to be angry.  Don't worry about the feelings,
just take note that one user did not like the change.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06 15:16                                                 ` Eli Zaretskii
@ 2021-01-07  7:53                                                   ` Richard Stallman
  2021-01-07 14:32                                                     ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-07  7:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > You CAN start a discussion on emacs-devel, but in order to be aware
  > > there is a need for one, you would need to subscribe to bug-gnu-emacs
  > > AND follow discussion of dealing with a particular bug.

  > There's no need to subscribe to bug-gnu-emacs in order to read it.
  > One can follow the list archives via the Web browser, for example, or
  > use the debbugs Web interface.

We are miscommunicating.  You're talking about a technical question
about how one reads those messages.

I am talking about the time and work required to read all those
messages -- which is why I don't read them.  I can't afford that.

  > The rule you propose has a price that I don't think we should pay.  I
  > personally simply cannot afford paying it.  Reading the bug list is
  > not a big deal,

In my incoming for 20 hours, there were 70 messages to bug-gnu-emacs
and debbugs.

I can't keep up.  I am about to go to bed and I am 200 messages
backlogged from today alone.

When people are discussing fixing a bug that is just a technical
issue, and they can do it fine without me, I delete the whole thread
so  I can have time to read my other mail.

Based on what you've said, I'm sure you understand what this is like.

                    so people who want to be more involved are invited to
  > do that.  By contrast, the burden on Lars and myself to make sure we
  > start a discussion about every change which might require it is
  > considerable.

I agree.  I don't think that you, the maintainers, should have to do this.

I don't think I suggested that.  But we have seen so many subtopics
I can't remember them all with confidence.

Anyway, let's agree that you maintainers shouldn't have a burden from this.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-06 23:57                                                               ` Gregory Heytings via Emacs development discussions.
@ 2021-01-07  9:41                                                                 ` Stefan Kangas
  0 siblings, 0 replies; 210+ messages in thread
From: Stefan Kangas @ 2021-01-07  9:41 UTC (permalink / raw)
  To: Gregory Heytings, Eli Zaretskii; +Cc: monnier, emacs-devel

Gregory Heytings via "Emacs development discussions."
<emacs-devel@gnu.org> writes:

>> Does installing from a binary distro (as opposed to from sources built
>> locally) remove previous versions nowadays?
>>
>
> Yes, at least for Debian and Debian derived distributions.  Up to and
> including Emacs 25 it was possible to install more than one Emacs, the
> packages names were different for each version (emacs21, ..., emacs25).
> Debian doesn't do this anymore, the package is now just "emacs".  I don't
> know why they changed their policy.

Debian dropped their numbered packages to avoid bug reports for very old
versions of Emacs, see e.g.:

    "plans to finally drop our emacsXY binary packages, and just have a
    single version of Emacs in the archive, so that we no longer have to
    deal with bugs due to someone still having emacs21 installed
    (David’s idea; Rob’s implementation; Sean’s mostly-helpful
    comments)"

    https://spwhitton.name/blog/entry/debconf17_reports/



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

* Re: Confused by y-or-n-p
  2021-01-06 23:57                                                   ` Gregory Heytings via Emacs development discussions.
@ 2021-01-07  9:46                                                     ` Stefan Kangas
  2021-01-07 10:03                                                       ` Gregory Heytings via Emacs development discussions.
  2021-01-09  6:34                                                       ` Richard Stallman
  2021-01-07 14:09                                                     ` Eli Zaretskii
  1 sibling, 2 replies; 210+ messages in thread
From: Stefan Kangas @ 2021-01-07  9:46 UTC (permalink / raw)
  To: Gregory Heytings
  Cc: rms, juri, rudalics, Stefan Monnier, Eli Zaretskii, emacs-devel

Gregory Heytings <ghe@sdf.org> writes:

> Perhaps I did not look at the right place, but I do not see such a rule or
> guideline in CONTRIBUTE or elsewhere.  What do you (and others) think of
> the following:
>
> Any change that matters to end-users should have an entry in etc/NEWS.
> *In principle, any such change should, unless it is an added feature,
> either require setting a variable to be enabled, or be reversible by
> setting a variable.*

I am against such a change, for the reasons given in my previous
message.

>> Do you have any evidence to back up the claim that this has happened?
>
> It happened with y-or-n-p; it would not have happened with the above
> guideline.

I don't think the second part of that sentence logically follows from
the first.



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

* Re: Confused by y-or-n-p
  2021-01-07  9:46                                                     ` Stefan Kangas
@ 2021-01-07 10:03                                                       ` Gregory Heytings via Emacs development discussions.
  2021-01-07 10:29                                                         ` Stefan Kangas
  2021-01-09  6:34                                                       ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-07 10:03 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: rms, emacs-devel, rudalics, Stefan Monnier, Eli Zaretskii, juri


>> Perhaps I did not look at the right place, but I do not see such a rule 
>> or guideline in CONTRIBUTE or elsewhere.  What do you (and others) 
>> think of the following:
>>
>> Any change that matters to end-users should have an entry in etc/NEWS. 
>> *In principle, any such change should, unless it is an added feature, 
>> either require setting a variable to be enabled, or be reversible by 
>> setting a variable.*
>
> I am against such a change, for the reasons given in my previous 
> message.
>

Which previous message?  I don't see reasons against such a guideline in 
your previous message sent to this list.

>>> Do you have any evidence to back up the claim that this has happened?
>>
>> It happened with y-or-n-p; it would not have happened with the above 
>> guideline.
>
> I don't think the second part of that sentence logically follows from 
> the first.
>

Just look at the entry for this change in NEWS.27 (and the 
read-char-from-minibuffer one), which does not explain how to revert it, 
unlike the three other entries in the "Minibuffer" section:

*** 'y-or-n-p' now uses the minibuffer to read 'y' or 'n' answer.

*** Some commands that previously used 'read-char-choice' now read a 
character using the minibuffer by 'read-char-from-minibuffer'.

It seems to me that the "Any change that matters to end-users should have 
an entry in etc/NEWS" rule in CONTRIBUTE, which is already applied 
successfully, is also a good way to distinguish changes that are 
potentially controversial from the others, hence the proposal above.



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

* Re: Confused by y-or-n-p
  2021-01-07 10:03                                                       ` Gregory Heytings via Emacs development discussions.
@ 2021-01-07 10:29                                                         ` Stefan Kangas
  0 siblings, 0 replies; 210+ messages in thread
From: Stefan Kangas @ 2021-01-07 10:29 UTC (permalink / raw)
  To: Gregory Heytings
  Cc: rms, emacs-devel, rudalics, Stefan Monnier, Eli Zaretskii, juri

Gregory Heytings <ghe@sdf.org> writes:

> Which previous message?  I don't see reasons against such a guideline in
> your previous message sent to this list.

This is the relevant part:

> But of course on occasion we trip up: we don't pay enough attention to
> this aspect, or we take it much too far.  Both are equally bad, IMHO.
> To my mind, we need to take a balanced view.  I don't see how a hard
> rule (or even a soft one) will help us do that better.



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

* Re: Confused by y-or-n-p
  2021-01-06 23:57                                                   ` Gregory Heytings via Emacs development discussions.
  2021-01-07  9:46                                                     ` Stefan Kangas
@ 2021-01-07 14:09                                                     ` Eli Zaretskii
  2021-01-07 23:34                                                       ` Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-07 14:09 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: rms, juri, rudalics, stefankangas, emacs-devel, monnier

> Date: Wed, 06 Jan 2021 23:57:02 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: Stefan Monnier <monnier@iro.umontreal.ca>, rudalics@gmx.at,
>         Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org, rms@gnu.org,
>         juri@linkov.net
> 
>     Otherwise, you would have proposed a guideline. Which would be a fine proposal, and AFAICT equivalent to what we have already.
> 
> Perhaps I did not look at the right place

The right place to look is in the discussions of the various changes,
where this guideline is voiced loud and clear.

> but I do not see such a rule or guideline in CONTRIBUTE or elsewhere. What do you (and others) think of the following:

CONTRIBUTE is not the right place for this.  It is a document for
contributors, not for Emacs maintainers, and it describes rules, not
guidelines.  It is also already too large, and we risk losing the
attention of the "TL;DR" type of impatient readers.

I'm not convinced that we should have a document with guidelines, IME
it is very hard to formulate guidelines without risking too rigid
interpretation by someone.

>         ... developers start working on something thinking that scratching the current state of affairs to create something they believe is better without thinking about backwards compatibility ... 
> 
>     Do you have any evidence to back up the claim that this has happened?
> 
> It happened with y-or-n-p

The question was whether there's such a _tendency_, not whether
there are exceptions from the rule.

> It is happening in the "Stop frames stealing each other's minibuffers" thread

No, it doesn't.  In fact, the exact opposite happens there: an
assumption that the existing behavior is a bug was later reversed
based on feedback from you and others.

> Again this would not have happened with the above guideline.

Of course, it would: we will never have a rule to allow going back to
buggy behavior, so as long as the past behavior is considered a bug,
there can be no rule that prevents its removal without any
compatibility shims.

> My fear was that if the same request had been made by someone else it would have been dismissed

Fear based on what?  I invite you to read the discussions of such
complaints, and see for yourself whether you have anything to that
effect to fear of.



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

* Re: Confused by y-or-n-p
  2021-01-07  7:33                                                   ` Richard Stallman
@ 2021-01-07 14:18                                                     ` Eli Zaretskii
  2021-01-07 15:09                                                     ` Stefan Monnier
  2021-01-07 15:10                                                     ` Stefan Monnier
  2 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-07 14:18 UTC (permalink / raw)
  To: rms; +Cc: juri, rudalics, monnier, larsi, emacs-devel, drew.adams

> From: Richard Stallman <rms@gnu.org>
> Cc: larsi@gnus.org, rudalics@gmx.at, eliz@gnu.org,
> 	emacs-devel@gnu.org, drew.adams@oracle.com, juri@linkov.net
> Date: Thu, 07 Jan 2021 02:33:42 -0500
> 
>   > Maybe there is no discussion *prior* to the change, but if the change
>   > ends up being controversial, there is pretty much always a discussion
>   > (long) before the next release.
> 
> Not always.  We just had a case where there wasn't.

We will never be able to avoid such incidents in all cases.  We are
just people, and people make mistakes.  It is wrong to try to achieve
such unrealistic goals.

> I am simply trying to ensure that the discussion will happen before
> the next release.

We cannot ensure it; see above.  We can (and should) try lowering the
probability of the discussion not happening, but the measures taken to
that end should be on par with the frequency of those incidents.
Heavy measures to fix very low-frequency incidents are unjustified,
and will harm development for reasons that are not good enough to
justify the harm.



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

* Re: Confused by y-or-n-p
  2021-01-07  7:41                                                           ` Richard Stallman
@ 2021-01-07 14:23                                                             ` Eli Zaretskii
  2021-01-13 15:57                                                               ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-07 14:23 UTC (permalink / raw)
  To: rms; +Cc: ghe, monnier, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: ghe@sdf.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org
> Date: Thu, 07 Jan 2021 02:41:21 -0500
> 
> Making an option variable for each possibly controversial change is
> a favor to everyone.

Which is why we are doing that in every case where we decide that the
change could be (or is) controversial.



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

* Re: Confused by y-or-n-p
  2021-01-07  7:52                                                   ` Richard Stallman
@ 2021-01-07 14:27                                                     ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-07 14:27 UTC (permalink / raw)
  To: rms; +Cc: ghe, rudalics, emacs-devel, monnier, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: ghe@sdf.org, rudalics@gmx.at, juri@linkov.net,
> 	monnier@iro.umontreal.ca, emacs-devel@gnu.org
> Date: Thu, 07 Jan 2021 02:52:59 -0500
> 
>   > The proposed rule is very different: it says that if the announcement
>   > and the discussion didn't happen, the change cannot go in.
> 
> That's not a big deal.  Make the announcement, have the discussion,
> and then the change can go in -- perhaps with the addition of a user
> option to enable the change.

We do all that already, just without the red tape.

It is a big deal for me to add any unnecessary red tape, because it
makes my already hard job significantly harder.

> Since adding the user option variable is meant to be a general
> solution, we may as well say that there's no need for the announcement
> or the discussion if there is aleady a user option variable to enable
> the change, and it is disabled by default.

There we go: the slippery slope of having exceptions to the rule is
already starting.  We will be adding more and more exceptions, and
then we will be endlessly discussing whether a given exception can or
cannot be applied to a particular case.  To what end?



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

* Re: Confused by y-or-n-p
  2021-01-07  7:53                                                   ` Richard Stallman
@ 2021-01-07 14:32                                                     ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-07 14:32 UTC (permalink / raw)
  To: rms; +Cc: rudalics, larsi, emacs-devel, drew.adams, juri

> From: Richard Stallman <rms@gnu.org>
> Cc: rudalics@gmx.at, larsi@gnus.org, juri@linkov.net,
> 	drew.adams@oracle.com, emacs-devel@gnu.org
> Date: Thu, 07 Jan 2021 02:53:09 -0500
> 
>   > > You CAN start a discussion on emacs-devel, but in order to be aware
>   > > there is a need for one, you would need to subscribe to bug-gnu-emacs
>   > > AND follow discussion of dealing with a particular bug.
> 
>   > There's no need to subscribe to bug-gnu-emacs in order to read it.
>   > One can follow the list archives via the Web browser, for example, or
>   > use the debbugs Web interface.
> 
> We are miscommunicating.  You're talking about a technical question
> about how one reads those messages.
> 
> I am talking about the time and work required to read all those
> messages -- which is why I don't read them.  I can't afford that.

Redirecting some of the discussion to emacs-devel will add to what you
have to read, and add considerably.  This present thread is a very
good example of what happens when some controversial issue is being
discussed: you will suddenly see a significant increase in the list
traffic.  Why do you think you will be able to afford that?  It will
be less than if you read all of bug-gnu-emacs, but why do you think it
will be below the threshold of what you cannot afford?

>   > The rule you propose has a price that I don't think we should pay.  I
>   > personally simply cannot afford paying it.  Reading the bug list is
>   > not a big deal,
> 
> In my incoming for 20 hours, there were 70 messages to bug-gnu-emacs
> and debbugs.

I wish I were in your shoes, then: in my incoming for the last 10
hours there were 136 messages.

> I can't keep up.  I am about to go to bed and I am 200 messages
> backlogged from today alone.
> 
> When people are discussing fixing a bug that is just a technical
> issue, and they can do it fine without me, I delete the whole thread
> so  I can have time to read my other mail.
> 
> Based on what you've said, I'm sure you understand what this is like.

Of course, I do!  I _am_ reading all of that: it's my job.

If you are unable to read most of the traffic, based on some simple
filtering of subjects, then I don't see how you can expect to be privy
to important development decisions -- they many times hide in plain
sight, and filtering based on which list they are posted to will not
help.

Maybe you expect Lars and myself to do the filtering job for you and
others: analyze the issues, decide which ones are important enough,
start threads with prominent enough Subject lines that draw attention,
etc.  But that is a large job, and it's unfair to expect us to do that
for others, especially as we have no clear idea who sees what changes
as worthy of their attention.  People who have trouble keeping up with
the traffic here, but still do want to be involved, should find their
own local solutions: smart filtering, sophisticated tools to identify
and flag messages that are worth reading, etc.  Such tools and methods
are not unheard of nowadays.  We even have some of them in Emacs.  Or
people could write them for themselves.

>                     so people who want to be more involved are invited to
>   > do that.  By contrast, the burden on Lars and myself to make sure we
>   > start a discussion about every change which might require it is
>   > considerable.
> 
> I agree.  I don't think that you, the maintainers, should have to do this.

Who will do it, then?  I already said that if volunteers step up to
this job, I certainly won't mind.  Did someone volunteer and I missed
that?

> Anyway, let's agree that you maintainers shouldn't have a burden from this.

Agreed.



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

* Re: Confused by y-or-n-p
  2021-01-07  7:33                                                   ` Richard Stallman
  2021-01-07 14:18                                                     ` Eli Zaretskii
@ 2021-01-07 15:09                                                     ` Stefan Monnier
  2021-01-13 15:57                                                       ` Richard Stallman
  2021-01-07 15:10                                                     ` Stefan Monnier
  2 siblings, 1 reply; 210+ messages in thread
From: Stefan Monnier @ 2021-01-07 15:09 UTC (permalink / raw)
  To: Richard Stallman; +Cc: juri, rudalics, larsi, emacs-devel, eliz, drew.adams

>   > Maybe there is no discussion *prior* to the change, but if the change
>   > ends up being controversial, there is pretty much always a discussion
>   > (long) before the next release.
>
> Not always.  We just had a case where there wasn't.  I am simply trying
> to ensure that the discussion will happen before the next release.

Yes, that's been clear from the beginning.
We just disagree,


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-07  7:33                                                   ` Richard Stallman
  2021-01-07 14:18                                                     ` Eli Zaretskii
  2021-01-07 15:09                                                     ` Stefan Monnier
@ 2021-01-07 15:10                                                     ` Stefan Monnier
  2 siblings, 0 replies; 210+ messages in thread
From: Stefan Monnier @ 2021-01-07 15:10 UTC (permalink / raw)
  To: Richard Stallman; +Cc: juri, rudalics, larsi, emacs-devel, eliz, drew.adams

>   > Maybe there is no discussion *prior* to the change, but if the change
>   > ends up being controversial, there is pretty much always a discussion
>   > (long) before the next release.
>
> Not always.  We just had a case where there wasn't.  I am simply trying
> to ensure that the discussion will happen before the next release.

[ Here's another take on it.  ]

Feel free to do that,


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-07 14:09                                                     ` Eli Zaretskii
@ 2021-01-07 23:34                                                       ` Gregory Heytings via Emacs development discussions.
  2021-01-08  2:10                                                         ` Stefan Monnier
  2021-01-08  7:16                                                         ` Eli Zaretskii
  0 siblings, 2 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-07 23:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rms, juri, rudalics, stefankangas, emacs-devel, monnier


>> It is happening in the "Stop frames stealing each other's minibuffers" 
>> thread
>
> No, it doesn't.  In fact, the exact opposite happens there: an 
> assumption that the existing behavior is a bug was later reversed based 
> on feedback from you and others.
>

Alas, this is not what is happening there.  The old behavior has been 
lost, and the developer who initiated these changes still firmly believes 
that the old behavior is "an ad hoc unsystematic mess, not worthy even of 
being called a behaviour", that it is "chaotic", that it is an "abstruse 
"design" [that] can only have arisen by accident", that it "would get 
rejected out of hand, and indeed ridiculed" if it were proposed now.  In 
spite of this, an approximation of the old behavior is now planned, and 
I'm supposed to document where that current approximation differs from the 
old behavior, to fix the current approximation.  There is of course no 
chance that the behavior of an UI element as complex as the minibuffer 
could ever be recovered by working that way.



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

* Re: Confused by y-or-n-p
  2021-01-07 23:34                                                       ` Gregory Heytings via Emacs development discussions.
@ 2021-01-08  2:10                                                         ` Stefan Monnier
  2021-01-09  9:34                                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-08  7:16                                                         ` Eli Zaretskii
  1 sibling, 1 reply; 210+ messages in thread
From: Stefan Monnier @ 2021-01-08  2:10 UTC (permalink / raw)
  To: Gregory Heytings
  Cc: rms, juri, rudalics, stefankangas, Eli Zaretskii, emacs-devel

> Alas, this is not what is happening there.  The old behavior has been lost,
> and the developer who initiated these changes still firmly believes that
> the old behavior is "an ad hoc unsystematic mess, not worthy even of being
> called a behaviour", that it is "chaotic", that it is an "abstruse "design"
> [that] can only have arisen by accident", that it "would get rejected out
> of hand, and indeed ridiculed" if it were proposed now.  In spite of this,
> an approximation of the old behavior is now planned, and I'm supposed to
> document where that current approximation differs from the old behavior, to
> fix the current approximation.  There is of course no chance that the
> behavior of an UI element as complex as the minibuffer could ever be
> recovered by working that way.

I don't always agree with Alan, but I think in this case his analysis is
about right (tho his wording may be less diplomatic than I'd put it):
based on looking at the code, I think it's clear that the old behavior
was not the result of conscious design, but rather the result of ad-hoc
fixes for specific situations.

Based on the experience with the new code, I agree with you that the old
behavior, while ad-hoc, was a fairly good middle-ground.  But I think
it's valuable to work back from that old ad-hoc solution and try and
re-implement it in a more "conscious design" way.

The end result will probably not be 100% identical, but it should help
us get a code we understand better, compared to the old code whose logic
was very much unclear.

IOW, I think the right way to look at it is as a refactoring, which
clarifies the code and brings new alternative behaviors.


        Stefan




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

* Re: Confused by y-or-n-p
  2021-01-06  9:41                                                           ` Gregory Heytings via Emacs development discussions.
  2021-01-06 15:33                                                             ` Eli Zaretskii
@ 2021-01-08  6:17                                                             ` Richard Stallman
  1 sibling, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-08  6:17 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: eliz, monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > One of the things Richard had in mind in his proposal was "poll the users 
  > and see who likes [the new behavior] _and why_".  Perhaps I misunderstood 
  > what he meant, but for me "the users" is much broader than "people who 
  > track the Emacs development".

I've made several different proposals.  One of them includes that step.

They're all aimed at trying to stop changes in default behavior from
getting intentionally installed without giving at least the people on
emacs-devel a chance to object before it is in a release.

I realize that sometimes bug fixes cause a UI change as an
unintentional byproduct.  That's a different issue and I am not
trying to do address it.


-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-07 23:34                                                       ` Gregory Heytings via Emacs development discussions.
  2021-01-08  2:10                                                         ` Stefan Monnier
@ 2021-01-08  7:16                                                         ` Eli Zaretskii
  2021-01-09  6:44                                                           ` Stealing minibuffers [Was: Confused by y-or-n-p] Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-08  7:16 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: rms, juri, rudalics, stefankangas, emacs-devel, monnier

> Date: Thu, 07 Jan 2021 23:34:09 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: stefankangas@gmail.com, monnier@iro.umontreal.ca, rudalics@gmx.at,
>         emacs-devel@gnu.org, rms@gnu.org, juri@linkov.net
> 
> 
> >> It is happening in the "Stop frames stealing each other's minibuffers" 
> >> thread
> >
> > No, it doesn't.  In fact, the exact opposite happens there: an 
> > assumption that the existing behavior is a bug was later reversed based 
> > on feedback from you and others.
> 
> Alas, this is not what is happening there.  The old behavior has been 
> lost, and the developer who initiated these changes still firmly believes 
> that the old behavior is "an ad hoc unsystematic mess, not worthy even of 
> being called a behaviour", that it is "chaotic", that it is an "abstruse 
> "design" [that] can only have arisen by accident", that it "would get 
> rejected out of hand, and indeed ridiculed" if it were proposed now.  In 
> spite of this, an approximation of the old behavior is now planned, and 
> I'm supposed to document where that current approximation differs from the 
> old behavior, to fix the current approximation.  There is of course no 
> chance that the behavior of an UI element as complex as the minibuffer 
> could ever be recovered by working that way.

There's no contradiction between what I said and what you say, when we
consider what happens in practice.  In practice Alan works on
providing an option to have the best approximation to past behavior
that is practical, given the extensive source code changes he has
done.  That is consistent with the "best effort" nature of providing
backward compatibility in such cases, so I'm okay with that.  We have
other cases where changes were so extensive that providing the 100%
backward-compatibility option is impractical.  (This is one reason why
a dogmatic rule for providing such options is something I cannot agree
to.)



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

* Re: Confused by y-or-n-p
  2021-01-07  9:46                                                     ` Stefan Kangas
  2021-01-07 10:03                                                       ` Gregory Heytings via Emacs development discussions.
@ 2021-01-09  6:34                                                       ` Richard Stallman
  2021-01-09  8:32                                                         ` Eli Zaretskii
  2021-01-09  9:34                                                         ` Confused by y-or-n-p Gregory Heytings via Emacs development discussions.
  1 sibling, 2 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-09  6:34 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: emacs-devel, rudalics, monnier, ghe, eliz, juri

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > >> Do you have any evidence to back up the claim that this has happened?
  > >
  > > It happened with y-or-n-p; it would not have happened with the above
  > > guideline.

  > I don't think the second part of that sentence logically follows from
  > the first.

I think I was the first person to complain about it.  An entry in
etc/NEWS would probably not have come to my attention, since I don't
check it regularly.  But a posting on emacs-devel is something I would
have noticed.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Stealing minibuffers [Was: Confused by y-or-n-p]
  2021-01-08  7:16                                                         ` Eli Zaretskii
@ 2021-01-09  6:44                                                           ` Richard Stallman
  2021-01-09  9:34                                                             ` Gregory Heytings via Emacs development discussions.
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-09  6:44 UTC (permalink / raw)
  To: Eli Zaretskii, ghe; +Cc: rudalics, juri, emacs-devel, stefankangas, monnier

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

With luck, the effort to reimplement something like the old behavior
will work enough that everyone is more or less satisfied.
How about if we give people a chance to try?

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-09  6:34                                                       ` Richard Stallman
@ 2021-01-09  8:32                                                         ` Eli Zaretskii
  2021-01-09 14:06                                                           ` Following etc/NEWS on the development branch (was: Confused by y-or-n-p) Kévin Le Gouguec
  2021-01-09  9:34                                                         ` Confused by y-or-n-p Gregory Heytings via Emacs development discussions.
  1 sibling, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-09  8:32 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel, rudalics, stefankangas, ghe, juri, monnier

> From: Richard Stallman <rms@gnu.org>
> Cc: ghe@sdf.org, juri@linkov.net, rudalics@gmx.at,
> 	monnier@iro.umontreal.ca, eliz@gnu.org, emacs-devel@gnu.org
> Date: Sat, 09 Jan 2021 01:34:32 -0500
> 
> I think I was the first person to complain about it.  An entry in
> etc/NEWS would probably not have come to my attention, since I don't
> check it regularly.  But a posting on emacs-devel is something I would
> have noticed.

Reading NEWS each time one updates from the development branch of the
repository is something we expect from every user.  I suggest to start
reading it when you build a new development version: NEWS is our
standard way of announcing all the user-visible changes, and we invest
some serious effort in keeping it up-to-date and accurate.



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

* Re: Confused by y-or-n-p
  2021-01-08  2:10                                                         ` Stefan Monnier
@ 2021-01-09  9:34                                                           ` Gregory Heytings via Emacs development discussions.
  0 siblings, 0 replies; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-09  9:34 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: rms, emacs-devel, rudalics, stefankangas, Eli Zaretskii, juri


>
> Based on the experience with the new code, I agree with you that the old 
> behavior, while ad-hoc, was a fairly good middle-ground.  But I think 
> it's valuable to work back from that old ad-hoc solution and try and 
> re-implement it in a more "conscious design" way.
>
> The end result will probably not be 100% identical, but it should help 
> us get a code we understand better, compared to the old code whose logic 
> was very much unclear.
>
> IOW, I think the right way to look at it is as a refactoring, which 
> clarifies the code and brings new alternative behaviors.
>

I fully agree with you.



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

* Re: Confused by y-or-n-p
  2021-01-09  6:34                                                       ` Richard Stallman
  2021-01-09  8:32                                                         ` Eli Zaretskii
@ 2021-01-09  9:34                                                         ` Gregory Heytings via Emacs development discussions.
  2021-01-10  6:07                                                           ` Richard Stallman
  1 sibling, 1 reply; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-09  9:34 UTC (permalink / raw)
  To: Richard Stallman
  Cc: emacs-devel, rudalics, Stefan Kangas, eliz, juri, monnier


>>>> Do you have any evidence to back up the claim that this has happened?
>>>
>>> It happened with y-or-n-p; it would not have happened with the above 
>>> guideline.
>
>> I don't think the second part of that sentence logically follows from 
>> the first.
>
> I think I was the first person to complain about it.  An entry in 
> etc/NEWS would probably not have come to my attention, since I don't 
> check it regularly.  But a posting on emacs-devel is something I would 
> have noticed.
>

The proposal was not to mention such changes in NEWS (which is already the 
case), it was to use the existing criterion used to add entries in NEWS 
("Any change that matters to end-users should have an entry in etc/NEWS", 
see CONTRIBUTE) as a basis for an explicit guideline: "In principle, any 
such change should, unless it is an added feature, either require setting 
a variable to be enabled, or be reversible by setting a variable."

(The word "should" here has the meaning of RFC 2119: "This word [...] 
mean[s] that there may exist valid reasons in particular circumstances to 
ignore a particular item, but the full implications must be understood and 
carefully weighed before choosing a different course.")



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

* Re: Stealing minibuffers [Was: Confused by y-or-n-p]
  2021-01-09  6:44                                                           ` Stealing minibuffers [Was: Confused by y-or-n-p] Richard Stallman
@ 2021-01-09  9:34                                                             ` Gregory Heytings via Emacs development discussions.
  2021-01-09 10:04                                                               ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Gregory Heytings via Emacs development discussions. @ 2021-01-09  9:34 UTC (permalink / raw)
  To: Richard Stallman
  Cc: juri, rudalics, stefankangas, Eli Zaretskii, emacs-devel, monnier


>
> With luck, the effort to reimplement something like the old behavior 
> will work enough that everyone is more or less satisfied. How about if 
> we give people a chance to try?
>

I'm an engineer, I don't believe in luck, I believe in care.  The right 
way to handle this problem is what Stefan said:

1. Start with the old code / behavior

2. Carefully refactor that code to make the implicit behavior explicit, 
and to make room for other possible behaviors

3. Add other behaviors



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

* Re: Stealing minibuffers [Was: Confused by y-or-n-p]
  2021-01-09  9:34                                                             ` Gregory Heytings via Emacs development discussions.
@ 2021-01-09 10:04                                                               ` Eli Zaretskii
  0 siblings, 0 replies; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-09 10:04 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: rms, juri, rudalics, monnier, emacs-devel, stefankangas

> Date: Sat, 09 Jan 2021 09:34:26 +0000
> From: Gregory Heytings <ghe@sdf.org>
> cc: Eli Zaretskii <eliz@gnu.org>, stefankangas@gmail.com,
>         monnier@iro.umontreal.ca, rudalics@gmx.at, emacs-devel@gnu.org,
>         juri@linkov.net
> 
> 1. Start with the old code / behavior
> 
> 2. Carefully refactor that code to make the implicit behavior explicit, 
> and to make room for other possible behaviors
> 
> 3. Add other behaviors

That isn't always possible in software engineering.  Sometimes you
need to throw away the old code and rewrite it from scratch, using
what you perceive as the requirements as your guide.  For example,
when the old code was written based on some restriction that you want
to lift, it can be impractical refactoring the code if too many of its
parts have that restriction implicitly hard-coded in the algorithm.

I've bumped into this a couple of times when I made the Emacs display
engine support bidirectional text.



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

* Following etc/NEWS on the development branch (was: Confused by y-or-n-p)
  2021-01-09  8:32                                                         ` Eli Zaretskii
@ 2021-01-09 14:06                                                           ` Kévin Le Gouguec
  2021-01-09 14:24                                                             ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Kévin Le Gouguec @ 2021-01-09 14:06 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, stefankangas, ghe, emacs-devel, monnier

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Richard Stallman <rms@gnu.org>
>> Cc: ghe@sdf.org, juri@linkov.net, rudalics@gmx.at,
>> 	monnier@iro.umontreal.ca, eliz@gnu.org, emacs-devel@gnu.org
>> Date: Sat, 09 Jan 2021 01:34:32 -0500
>> 
>> I think I was the first person to complain about it.  An entry in
>> etc/NEWS would probably not have come to my attention, since I don't
>> check it regularly.  But a posting on emacs-devel is something I would
>> have noticed.
>
> Reading NEWS each time one updates from the development branch of the
> repository is something we expect from every user.  I suggest to start
> reading it when you build a new development version

FWIW, after pulling changes, one can ask Git "What changed in NEWS since
my last update?" like so:

    git diff @{1} etc/NEWS

"@{1}" means "the previous value of the current branch"
(cf. gitrevisions(7)).

While I personally spend a few minutes reading every commit after
fetching[1], I wouldn't fault anyone for not watching etc/NEWS
conscientiously.  All the ways I can think of[2] (that do not involve
fiddling with Git) fail to limit their output to my last update, so they
are not as user-friendly as ticking messages off a mailing list.

A list like emacs-diffs focusing on etc/NEWS would make sense to me; it
would be lower-volume than either bug-gnu-emacs or emacs-devel, so it
would be harder for readers to miss (documented) user-facing changes.

And such a list would expose those changes once they have taken a
concrete form (committed patches, applied and ready to be tried out);
this is easier to pick apart than week-long exchanges of dozens of
messages, featuring half as many versions of one (or more) patch(es),
all of them possibly dismissed because of unevocative subject lines.


NB: these are just ideas to make user-facing changes more visible for
people tracking the development branch; they are orthogonal to Gregory's
tentative guideline of considering new user settings for every change
worth mentioning in NEWS, to allow users to opt out of new features.


[1] With some amount of arbitrary filtering, e.g.
    - Is there a bug ID?
        ⇒ skim (probably saw it on bug-gnu-emacs)
    - Does the title refer to platforms/packages I don't care about?
        ⇒ skim (maybe some nice coding tricks to glean from the diff)
    - Does the message contain a non-ChangeLog summary?
        ⇒ read it (less noisy than ChangeLog entries IMO)
    - Does the commit have NEWS entries?
        ⇒ read them (to learn about new knobs to tweak)
    - Does the commit touch on areas of personal interest?
        ⇒ read the diff

[2] C-x p f etc/NEWS RET C-x v l
    https://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS



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

* Re: Following etc/NEWS on the development branch (was: Confused by y-or-n-p)
  2021-01-09 14:06                                                           ` Following etc/NEWS on the development branch (was: Confused by y-or-n-p) Kévin Le Gouguec
@ 2021-01-09 14:24                                                             ` Eli Zaretskii
  2021-01-09 16:05                                                               ` Following etc/NEWS on the development branch Kévin Le Gouguec
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-09 14:24 UTC (permalink / raw)
  To: Kévin Le Gouguec
  Cc: rms, juri, rudalics, stefankangas, ghe, emacs-devel, monnier

> From: Kévin Le Gouguec <kevin.legouguec@gmail.com>
> Cc: rms@gnu.org,  emacs-devel@gnu.org,  rudalics@gmx.at,
>   stefankangas@gmail.com,  ghe@sdf.org,  juri@linkov.net,
>   monnier@iro.umontreal.ca
> Date: Sat, 09 Jan 2021 15:06:15 +0100
> 
> > Reading NEWS each time one updates from the development branch of the
> > repository is something we expect from every user.  I suggest to start
> > reading it when you build a new development version
> 
> FWIW, after pulling changes, one can ask Git "What changed in NEWS since
> my last update?" like so:
> 
>     git diff @{1} etc/NEWS
> 
> "@{1}" means "the previous value of the current branch"
> (cf. gitrevisions(7)).

Why not

   git log -p --since="<last date I updated>" etc/NEWS

?

It's easier, since it frees the user from remembering the tricky
syntax of reflog-revisions.

Or how about simply using "C-x h C-x v h" with NEWS the current
buffer?  One can stop reading when one gets to the date of the
previous update from Git.

> While I personally spend a few minutes reading every commit after
> fetching[1], I wouldn't fault anyone for not watching etc/NEWS
> conscientiously.

I wouldn't, either.  But people who are interested in tracking the
development, not just in having the latest version, should do that,
and if they don't, there should be little surprise that some
developments are left unnoticed.  Right?

> A list like emacs-diffs focusing on etc/NEWS would make sense to me;

Sure, if someone wants to set that up, and there are people who'd like
to have that, why not?

OTOH, it shouldn't be hard to subscribe to emacs-diffs and only read
the changes to NEWS in it with some simple filter.  This is Emacs,
after all.



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

* Re: Following etc/NEWS on the development branch
  2021-01-09 14:24                                                             ` Eli Zaretskii
@ 2021-01-09 16:05                                                               ` Kévin Le Gouguec
  0 siblings, 0 replies; 210+ messages in thread
From: Kévin Le Gouguec @ 2021-01-09 16:05 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: rms, juri, rudalics, stefankangas, ghe, emacs-devel, monnier

Eli Zaretskii <eliz@gnu.org> writes:

>>     git diff @{1} etc/NEWS
>> 
>> "@{1}" means "the previous value of the current branch"
>> (cf. gitrevisions(7)).
>
> Why not
>
>    git log -p --since="<last date I updated>" etc/NEWS
>
> ?
>
> It's easier, since it frees the user from remembering the tricky
> syntax of reflog-revisions.
>
> Or how about simply using "C-x h C-x v h" with NEWS the current
> buffer?  One can stop reading when one gets to the date of the
> previous update from Git.

Right; my suggestion came from assuming that (1) remembering the date of
the previous update is bothersome (2) one can set an alias to hide away
the reflog syntax (which I also won't fault anyone for not wanting to
waste brain cells on):

    git config alias.wassup 'diff @{1} etc/NEWS'

>> While I personally spend a few minutes reading every commit after
>> fetching[1], I wouldn't fault anyone for not watching etc/NEWS
>> conscientiously.
>
> I wouldn't, either.  But people who are interested in tracking the
> development, not just in having the latest version, should do that,
> and if they don't, there should be little surprise that some
> developments are left unnoticed.  Right?

Absolutely!  I'm mostly pondering ways to make changes to NEWS easier to
track, although I admit I don't think this would entirely solve the
issues raised in the parent thread.

> OTOH, it shouldn't be hard to subscribe to emacs-diffs and only read
> the changes to NEWS in it with some simple filter.  This is Emacs,
> after all.

That ought to work just as well, yes.



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

* Re: Confused by y-or-n-p
  2021-01-09  9:34                                                         ` Confused by y-or-n-p Gregory Heytings via Emacs development discussions.
@ 2021-01-10  6:07                                                           ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-10  6:07 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: juri, rudalics, stefankangas, eliz, emacs-devel, monnier

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The proposal was not to mention such changes in NEWS (which is already the 
  > case), it was to use the existing criterion used to add entries in NEWS 
  > ("Any change that matters to end-users should have an entry in etc/NEWS", 
  > see CONTRIBUTE) as a basis for an explicit guideline: "In principle, any 
  > such change should, unless it is an added feature, either require setting 
  > a variable to be enabled, or be reversible by setting a variable."

I'm sorry I read too fast before.  Now I see your idea, and I think it
is a good one.

One of my proposals is equivalent to adding this to your idea.

  If it is made reversible. then the people who add it should also
  post on emacs-devel about it.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-07 14:23                                                             ` Eli Zaretskii
@ 2021-01-13 15:57                                                               ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-13 15:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ghe, monnier, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Which is why we are doing that in every case where we decide that the
  > change could be (or is) controversial.

That is the intention.  Some of my alternative proposals aim to
systematically make sure to put it into practice.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-07 15:09                                                     ` Stefan Monnier
@ 2021-01-13 15:57                                                       ` Richard Stallman
  2021-01-13 16:16                                                         ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-13 15:57 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: juri, rudalics, larsi, emacs-devel, eliz, drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > Not always.  We just had a case where there wasn't.  I am simply trying
  > > to ensure that the discussion will happen before the next release.

  > Yes, that's been clear from the beginning.
  > We just disagree,

The reason I think it matters whether the discussion happens
before the next release, or after, is that I was told that
after a release there is a presumption in favor of not reverting
the change that was made.  It adds up to a bureaucratic pitfall you
can get stuck in for not reading all the bug report mail.

We can't please everyone, but it is especially frustrating to be told
that your complaint will be disregarded because it is too late.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-13 15:57                                                       ` Richard Stallman
@ 2021-01-13 16:16                                                         ` Eli Zaretskii
  2021-01-15  5:28                                                           ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-13 16:16 UTC (permalink / raw)
  To: rms; +Cc: juri, rudalics, monnier, larsi, emacs-devel, drew.adams

> From: Richard Stallman <rms@gnu.org>
> Cc: larsi@gnus.org, rudalics@gmx.at, eliz@gnu.org,
> 	emacs-devel@gnu.org, drew.adams@oracle.com, juri@linkov.net
> Date: Wed, 13 Jan 2021 10:57:36 -0500
> 
> The reason I think it matters whether the discussion happens
> before the next release, or after, is that I was told that
> after a release there is a presumption in favor of not reverting
> the change that was made.  It adds up to a bureaucratic pitfall you
> can get stuck in for not reading all the bug report mail.
> 
> We can't please everyone, but it is especially frustrating to be told
> that your complaint will be disregarded because it is too late.

We never disregard such complaints.  We just need a stronger reason to
make the change in that case, and it should be stronger as the time
since releasing the offending feature becomes longer.

The assumption is that if we didn't have a complaint during all the
time the features was on the development branch and then in the
pretests, it probably means most people are okay with it.



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

* Re: Confused by y-or-n-p
  2021-01-06  5:03                                         ` Richard Stallman
@ 2021-01-14  8:50                                           ` Juri Linkov
  2021-01-15  5:41                                             ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Juri Linkov @ 2021-01-14  8:50 UTC (permalink / raw)
  To: Richard Stallman; +Cc: rudalics, larsi, eliz, emacs-devel

>   > Its name should be consistent with another variable
>   > use-short-answers that could be used to replace
>   > yes-or-no-p with y-or-n-p.  These two should have names
>   > that preclude confusion between their meanings.
>
>   > Also use-short-answers could be used by the existing variable
>   > read-answer-short.
>
> That might be good, but needs working out the details.

Maybe also there is a need to add a separate option that
turns short y-or-n-p queries to long yes-or-no-p questions?

So when it's non-nil and y-or-n-p is called, it will redirect
the prompt to yes-or-no-p to ask a long yes-or-no question.



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

* Re: Confused by y-or-n-p
  2021-01-13 16:16                                                         ` Eli Zaretskii
@ 2021-01-15  5:28                                                           ` Richard Stallman
  2021-01-15  7:13                                                             ` Eli Zaretskii
  0 siblings, 1 reply; 210+ messages in thread
From: Richard Stallman @ 2021-01-15  5:28 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel, rudalics, monnier, larsi, juri, drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The assumption is that if we didn't have a complaint during all the
  > time the features was on the development branch and then in the
  > pretests, it probably means most people are okay with it.

That is a valid conclusion, as regards experienced users.

But surely that should not impede us from adding a user option
to get the old behavior -- if due to an omission we did not
make one.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-14  8:50                                           ` Juri Linkov
@ 2021-01-15  5:41                                             ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-15  5:41 UTC (permalink / raw)
  To: Juri Linkov; +Cc: rudalics, larsi, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Maybe also there is a need to add a separate option that
  > turns short y-or-n-p queries to long yes-or-no-p questions?

It is not something I personally want, but I am not arguing against
it.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Confused by y-or-n-p
  2021-01-15  5:28                                                           ` Richard Stallman
@ 2021-01-15  7:13                                                             ` Eli Zaretskii
  2021-01-17  6:03                                                               ` Richard Stallman
  0 siblings, 1 reply; 210+ messages in thread
From: Eli Zaretskii @ 2021-01-15  7:13 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel, rudalics, monnier, larsi, juri, drew.adams

> From: Richard Stallman <rms@gnu.org>
> Cc: juri@linkov.net, rudalics@gmx.at, monnier@iro.umontreal.ca,
> 	larsi@gnus.org, emacs-devel@gnu.org, drew.adams@oracle.com
> Date: Fri, 15 Jan 2021 00:28:06 -0500
> 
>   > The assumption is that if we didn't have a complaint during all the
>   > time the features was on the development branch and then in the
>   > pretests, it probably means most people are okay with it.
> 
> That is a valid conclusion, as regards experienced users.
> 
> But surely that should not impede us from adding a user option
> to get the old behavior -- if due to an omission we did not
> make one.

It doesn't impede us.  Where adding an option is practical, it is
certainly a good solution for such problems.  The assumption I
described above is a factor in the decision whether to revert a
change, not whether to make it optional.  The latter is a no-brainer
where it's feasible.



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

* Re: Confused by y-or-n-p
  2021-01-15  7:13                                                             ` Eli Zaretskii
@ 2021-01-17  6:03                                                               ` Richard Stallman
  0 siblings, 0 replies; 210+ messages in thread
From: Richard Stallman @ 2021-01-17  6:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: juri, rudalics, monnier, larsi, emacs-devel, drew.adams

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > It doesn't impede us.  Where adding an option is practical, it is
  > certainly a good solution for such problems.  The assumption I
  > described above is a factor in the decision whether to revert a
  > change, not whether to make it optional.  The latter is a no-brainer
  > where it's feasible.

That is reassuring.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

end of thread, other threads:[~2021-01-17  6:03 UTC | newest]

Thread overview: 210+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-23 15:24 Confused by y-or-n-p Eli Zaretskii
2020-12-23 16:45 ` Stefan Monnier
2020-12-23 17:04   ` Jean Louis
2020-12-23 17:35   ` Eli Zaretskii
2020-12-23 18:11     ` Stefan Monnier
2020-12-23 18:44       ` Eli Zaretskii
2020-12-25  4:29         ` Richard Stallman
2020-12-23 19:48 ` Lars Ingebrigtsen
2020-12-23 19:53 ` Karl Fogel
2020-12-23 20:27   ` Eli Zaretskii
2020-12-24 18:26     ` Karl Fogel
2020-12-24  5:56   ` Richard Stallman
2020-12-24  5:53 ` Richard Stallman
2020-12-24  6:06   ` David Masterson
2020-12-24 16:49   ` João Távora
2020-12-24 15:38 ` martin rudalics
2020-12-24 20:47   ` Juri Linkov
2020-12-25  7:23     ` Eli Zaretskii
2020-12-25  9:07       ` martin rudalics
2020-12-25 11:32         ` Eli Zaretskii
2020-12-25 13:20           ` martin rudalics
2020-12-26 10:24             ` Richard Stallman
2020-12-26 11:01               ` Jean Louis
2020-12-26 13:41               ` martin rudalics
2020-12-27 16:25                 ` Juri Linkov
2020-12-27 17:16                   ` martin rudalics
2020-12-28  8:48                     ` Juri Linkov
2020-12-27 18:06                   ` Eli Zaretskii
2020-12-28  8:52                     ` Juri Linkov
2020-12-28  9:36                       ` Eli Zaretskii
2020-12-28 17:06                         ` Juri Linkov
2020-12-28 17:28                           ` Eli Zaretskii
2020-12-30  9:54                             ` Juri Linkov
2021-01-02  5:25                               ` Richard Stallman
2021-01-02 13:36                                 ` Richard Stallman
2021-01-02  5:25                               ` Richard Stallman
2021-01-02  5:25                               ` Richard Stallman
2021-01-02  7:06                                 ` Eli Zaretskii
2021-01-02  7:22                                   ` Lars Ingebrigtsen
2021-01-02 17:06                                     ` Drew Adams
2021-01-02 17:14                                       ` Eli Zaretskii
2021-01-03  6:06                                       ` Richard Stallman
2021-01-03 15:16                                         ` Eli Zaretskii
2021-01-04  5:16                                           ` Richard Stallman
2021-01-04  6:10                                             ` Stefan Monnier
2021-01-04  7:54                                               ` Stefan Kangas
2021-01-04  9:21                                                 ` martin rudalics
2021-01-04  9:24                                                   ` Lars Ingebrigtsen
2021-01-04  9:55                                                     ` martin rudalics
2021-01-04 11:28                                                       ` Andrea Corallo via Emacs development discussions.
2021-01-04 14:58                                                       ` Dmitry Gutov
2021-01-04 15:09                                                 ` Eli Zaretskii
2021-01-04 15:17                                                   ` Lars Ingebrigtsen
2021-01-04 16:10                                                     ` Eli Zaretskii
2021-01-05  8:16                                                       ` Lars Ingebrigtsen
2021-01-05 15:03                                                         ` Eli Zaretskii
2021-01-06  5:01                                                       ` Richard Stallman
2021-01-06 15:19                                                         ` Eli Zaretskii
2021-01-04 17:17                                                     ` Stefan Monnier
2021-01-04 17:43                                                       ` Eli Zaretskii
2021-01-04 18:02                                                         ` Stefan Monnier
2021-01-04 18:15                                                           ` Eli Zaretskii
2021-01-05  8:32                                                           ` Lars Ingebrigtsen
2021-01-06  5:02                                                       ` Richard Stallman
2021-01-06 15:20                                                         ` Eli Zaretskii
2021-01-06 16:44                                                           ` Stefan Monnier
2021-01-06 17:05                                                             ` Eli Zaretskii
2021-01-06 17:13                                                               ` Stefan Monnier
2021-01-04 17:20                                                     ` martin rudalics
2021-01-04 17:43                                                       ` Lars Ingebrigtsen
2021-01-04 18:52                                                         ` martin rudalics
2021-01-05  8:33                                                           ` Lars Ingebrigtsen
2021-01-04 18:04                                                       ` Stefan Monnier
2021-01-06  5:03                                                       ` Richard Stallman
2021-01-06 15:23                                                         ` Eli Zaretskii
2021-01-07  7:53                                                           ` Richard Stallman
2021-01-06  5:01                                                     ` Richard Stallman
2021-01-04 17:53                                                 ` Juri Linkov
2021-01-05  6:33                                                 ` Richard Stallman
2021-01-05 14:57                                                   ` Eli Zaretskii
2021-01-05  6:35                                                 ` Richard Stallman
2021-01-04 10:28                                               ` Gregory Heytings via Emacs development discussions.
2021-01-04 17:22                                                 ` Stefan Monnier
2021-01-04 17:28                                                   ` martin rudalics
2021-01-06  5:03                                                     ` Richard Stallman
2021-01-04 22:18                                                   ` Gregory Heytings via Emacs development discussions.
2021-01-05 14:50                                                     ` Eli Zaretskii
2021-01-06  0:14                                                       ` Gregory Heytings via Emacs development discussions.
2021-01-06  3:34                                                         ` Eli Zaretskii
2021-01-06  9:41                                                           ` Gregory Heytings via Emacs development discussions.
2021-01-06 15:33                                                             ` Eli Zaretskii
2021-01-06 15:46                                                               ` Tassilo Horn
2021-01-06 16:08                                                                 ` Eli Zaretskii
2021-01-06 16:36                                                                   ` Tassilo Horn
2021-01-06 16:58                                                                     ` Eli Zaretskii
2021-01-06 23:57                                                               ` Gregory Heytings via Emacs development discussions.
2021-01-07  9:41                                                                 ` Stefan Kangas
2021-01-08  6:17                                                             ` Richard Stallman
2021-01-07  7:41                                                           ` Richard Stallman
2021-01-07 14:23                                                             ` Eli Zaretskii
2021-01-13 15:57                                                               ` Richard Stallman
2021-01-06  5:13                                                     ` Richard Stallman
2021-01-05  6:29                                                 ` Richard Stallman
2021-01-04  8:52                                             ` Lars Ingebrigtsen
2021-01-05  6:33                                               ` Richard Stallman
2021-01-05 14:44                                                 ` Stefan Monnier
2021-01-07  7:33                                                   ` Richard Stallman
2021-01-07 14:18                                                     ` Eli Zaretskii
2021-01-07 15:09                                                     ` Stefan Monnier
2021-01-13 15:57                                                       ` Richard Stallman
2021-01-13 16:16                                                         ` Eli Zaretskii
2021-01-15  5:28                                                           ` Richard Stallman
2021-01-15  7:13                                                             ` Eli Zaretskii
2021-01-17  6:03                                                               ` Richard Stallman
2021-01-07 15:10                                                     ` Stefan Monnier
2021-01-05 14:58                                                 ` Eli Zaretskii
2021-01-04 14:59                                             ` Eli Zaretskii
2021-01-06  5:01                                               ` Richard Stallman
2021-01-06 15:16                                                 ` Eli Zaretskii
2021-01-06 21:18                                                   ` Alfred M. Szmidt
2021-01-07  3:32                                                     ` Eli Zaretskii
2021-01-06 15:28                                                 ` Stefan Monnier
2021-01-06  5:01                                               ` Richard Stallman
2021-01-06 15:17                                                 ` Eli Zaretskii
2021-01-04  5:17                                           ` Richard Stallman
2021-01-04  6:12                                             ` Stefan Monnier
2021-01-04 15:01                                             ` Eli Zaretskii
2021-01-06  5:01                                               ` Richard Stallman
2021-01-06 15:14                                                 ` Eli Zaretskii
2021-01-06  5:01                                               ` Richard Stallman
2021-01-06 15:16                                                 ` Eli Zaretskii
2021-01-07  7:53                                                   ` Richard Stallman
2021-01-07 14:32                                                     ` Eli Zaretskii
2021-01-04 10:28                                           ` Gregory Heytings via Emacs development discussions.
2021-01-04 11:02                                             ` Alan Mackenzie
2021-01-04 11:35                                               ` Gregory Heytings via Emacs development discussions.
2021-01-04 12:34                                                 ` Alan Mackenzie
2021-01-04 13:10                                                   ` Gregory Heytings via Emacs development discussions.
2021-01-04 17:21                                                   ` martin rudalics
2021-01-05 10:48                                                     ` Alan Mackenzie
2021-01-05 11:10                                                       ` tomas
2021-01-05 15:34                                                       ` martin rudalics
2021-01-04 15:19                                             ` Eli Zaretskii
2021-01-04 22:17                                               ` Gregory Heytings via Emacs development discussions.
2021-01-05 11:44                                                 ` Alan Mackenzie
2021-01-05 14:48                                                 ` Eli Zaretskii
2021-01-05 18:18                                                   ` Juri Linkov
2021-01-05  6:44                                             ` Richard Stallman
2021-01-03  6:01                                     ` Richard Stallman
2021-01-03  6:01                                     ` Richard Stallman
2021-01-04 18:03                                       ` Juri Linkov
2021-01-06  5:03                                         ` Richard Stallman
2021-01-14  8:50                                           ` Juri Linkov
2021-01-15  5:41                                             ` Richard Stallman
2021-01-03  6:03                                   ` Richard Stallman
2021-01-03 15:13                                     ` Eli Zaretskii
2021-01-05  6:25                                       ` Richard Stallman
2021-01-05 14:54                                         ` Eli Zaretskii
2021-01-06  0:14                                           ` Gregory Heytings via Emacs development discussions.
2021-01-06  0:44                                             ` Stefan Monnier
2021-01-06  9:41                                               ` Gregory Heytings via Emacs development discussions.
2021-01-06 11:06                                                 ` Stefan Kangas
2021-01-06 15:35                                                   ` Eli Zaretskii
2021-01-06 15:46                                                   ` Drew Adams
2021-01-06 23:57                                                   ` Gregory Heytings via Emacs development discussions.
2021-01-07  9:46                                                     ` Stefan Kangas
2021-01-07 10:03                                                       ` Gregory Heytings via Emacs development discussions.
2021-01-07 10:29                                                         ` Stefan Kangas
2021-01-09  6:34                                                       ` Richard Stallman
2021-01-09  8:32                                                         ` Eli Zaretskii
2021-01-09 14:06                                                           ` Following etc/NEWS on the development branch (was: Confused by y-or-n-p) Kévin Le Gouguec
2021-01-09 14:24                                                             ` Eli Zaretskii
2021-01-09 16:05                                                               ` Following etc/NEWS on the development branch Kévin Le Gouguec
2021-01-09  9:34                                                         ` Confused by y-or-n-p Gregory Heytings via Emacs development discussions.
2021-01-10  6:07                                                           ` Richard Stallman
2021-01-07 14:09                                                     ` Eli Zaretskii
2021-01-07 23:34                                                       ` Gregory Heytings via Emacs development discussions.
2021-01-08  2:10                                                         ` Stefan Monnier
2021-01-09  9:34                                                           ` Gregory Heytings via Emacs development discussions.
2021-01-08  7:16                                                         ` Eli Zaretskii
2021-01-09  6:44                                                           ` Stealing minibuffers [Was: Confused by y-or-n-p] Richard Stallman
2021-01-09  9:34                                                             ` Gregory Heytings via Emacs development discussions.
2021-01-09 10:04                                                               ` Eli Zaretskii
2021-01-06 15:32                                                 ` Confused by y-or-n-p Eli Zaretskii
2021-01-07  7:52                                                   ` Richard Stallman
2021-01-07 14:27                                                     ` Eli Zaretskii
2021-01-07  7:52                                                 ` Richard Stallman
2021-01-06  3:35                                             ` Eli Zaretskii
2020-12-28  5:26                   ` Richard Stallman
2020-12-28  5:51                     ` Drew Adams
2020-12-28  8:59                     ` Juri Linkov
2020-12-26 10:24           ` Richard Stallman
2020-12-26 10:51             ` Eli Zaretskii
2020-12-27  5:38               ` Richard Stallman
2020-12-25  9:23       ` Juri Linkov
2020-12-25 11:46         ` Eli Zaretskii
2020-12-25  8:42     ` martin rudalics
2020-12-25 11:31       ` Eli Zaretskii
2020-12-25 13:20         ` martin rudalics
2020-12-26 10:24     ` Richard Stallman
2020-12-26 10:41       ` Sv: " arthur miller
2020-12-27  5:38         ` Richard Stallman
2020-12-26 10:49       ` Eli Zaretskii
2020-12-26 13:45       ` martin rudalics
2020-12-27  5:46         ` Richard Stallman
2020-12-26 18:30       ` Drew Adams
2020-12-25  4:40   ` Richard Stallman
2020-12-25  8:42     ` martin rudalics
2020-12-28 17:09   ` Juri Linkov
2020-12-29  8:53     ` martin rudalics

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).