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

From: Stefan Monnier <[email-masked]>
Date: Thu, 28 Oct 2010 13:14:06 -0400

>> > So does nil mean the code is performing an essential task?  Or does
>> > non-nil mean that?
>> Let's see, you're asking whether "non-essential = nil" means 
>> "performing an essential task" or "performing a non-essential
>> task"?
> Actually, I asked whether `non-essential'=nil or  `non-essential'=t means
> performing a non-essential task (whatever that in turn might mean).

Right, same thing: the answer can be found by using, not the code nor
the docstring, but: your brain.

> The variable's only use is in Tramp.  Why isn't it named with the prefix
> `tramp-'?  Is there something more general going on?

It's used by icomplete and ido as well, so clearly it's not
a Tramp-only variable.  The fact that only Tramp reacts to it right now
is not significant.

> You admit that the doc for this is incomprehensible and misleading.

No I don't.  Apparently you don't understand it, but since you can't
even figure out which of "non-essential=nil" or "non-essential=t" means
that the executed code is non-essential, I think you're disqualified
to judge.  Of course, I'm disqualified as well since I wrote it, so
we're left with a lack of judgment.

> Still, I would like to know what this is about.  Especially since it
> apparently matters for code that involves file-name completion.
> Is there something special about Ido and Icomplete that this should
> single them out for its treatment (whatever that treatment might be)?
> Or does it apply generally to file-name completion code?

Yes, they perform operations which are non-essential, i.e. during which
we don't want to pester the user.  The particular example where it's
currently used is: prompt the user for a password just in order to show
the list of possible completions when the user hasn't even asked for
completion (other than by turning on icomplete or ido which causes
completions to be displayed eagerly).

        Stefan