Subject: Re: bug#7291: 24.0.50; `non-essential' is incomprehensible

From: Stefan Monnier <[email-masked]>
Date: Thu, 28 Oct 2010 16:12:16 -0400

>> the answer can be found by using, not the code nor
>> the docstring, but: your brain.
> Personal insults are really not necessary, Stefan.

Honestly, I can't think of any way someone who has the least bit of
familiarity with Elisp can wonder "whether `non-essential'=nil or
`non-essential'=t means performing a non-essential task (whatever that
in turn might mean)".

> AFAICT, the _reason_ it is bound there is for Tramp and Tramp alone.

No.  At most, the problem that triggered the introduction of this was
linked to interactions between Tramp and ido/icomplete.  So there's
a link to Tramp, but it's not there "for Tramp alone".

> If some day this var were to have some additional effect, besides
> preventing Tramp from reading passwords, then ido.el and icomplete.el
> might need to be revisited.

No.  The whole reason why it has such a docstring and a generic name is
so that we can decide whether it's right for icomplete to use it
regardless of what Tramp does with it, and similarly we can decide
whether it's right for Tramp to use it regardless of where it's bound.

> The second change is to state what "non-essential" means here.
> It apparently means that the task being performed is so IMPORTANT that
> the user should NOT be interrupted (e.g. to read a password).

> And that goes somewhat against the usual meaning of "non-essential".

That's because you have it backwards:

 It means that the task being performed is so UNimportant that
 the user should NOT be interrupted for it.

> One could easily suppose that a non-essential task is one that it is
> NOT IMPORTANT enough to protect against interruption.

Yes, I thought it was so easy to suppose that, that the docstring
was understandable.

> You seem to be defending the doc as it is only because you wrote it.
> It doesn't matter that a user points out that it can be confusing?

No, I don't actually defend it.  It sucks because I'm bad at it, and
I know it.  Your bug-report just rubbed me the wrong way: I know I'm bad
at it, no need to rub my face in it.  "As a longtime professional doc
writer" you should be able to provide more constructive criticism, and
not only after the Nth email exchange.

>> Yes, they perform operations which are non-essential, i.e. 
>> during which we don't want to pester the user.
> Do you see how backward that sounds?

No I don't.

> Do we want to pester the user only when s?he is performing
> _essential_ tasks?

We're talking about what the code does, not about what the user does.

        Stefan