Subject: Re: bug#32610: Enhancement Request (Flyspell/Ispell): Customizing a NIL value for ispell-async-processp.

From: Eli Zaretskii <[email-masked]>
Date: Sun, 02 Sep 2018 18:41:51 +0300

> Date: Sat, 01 Sep 2018 17:57:13 -0700
> From: Keith David Bershatsky <[email-masked]>
> 
> Some users (such as myself) may desire to control whether a spelling subprocess runs all the time.

I don't really see why.  As long as the speller keeps running, it
remembers all of your previous choices in this session, like words you
told it to accept in this document (but not in others), etc.  If you
restart the speller, it "forgets" all that, and you need to tell it
the same things anew.

This is why Emacs generally keeps the speller running at all times.

> Flyspell does not work if a user purposefully sets ispell-async-processp to a nil value.

That variable is an internal variable not meant to be set by users or
external Lisp programs, it is supposed to be set and used by ispell.el
itself.

And you seem to have a mistaken idea regarding that variable's
purpose: it is supposed to be set to nil by ispell.el when it runs on
a system that doesn't support async subprocesses (i.e. on MS-DOS).  I
don't see how it could be useful on modern systems, certainly not for
what you want to accomplish.

If you must stop the speller, simply kill it by invoking
ispell-kill-ispell.

> 
> Step 1:
> 
> (require 'flyspell)
> 
> (setq ispell-program-name "/path/to/aspell")
> 
> (setq ispell-async-processp nil)
> 
> (turn-on-flyspell)
> 
> Step 2:  Switch to the *Messages* buffer and observe the error message:
> 
> Error enabling Flyspell mode:
> (
> 
> @(#) International Ispell Version 3.1.20 (but really Aspell 0.60.6.1))

Evidently, flyspell was never adapted to work when
ispell-async-processp is nil.

> OBSERVATION:  It appears to me from a review of the code that some initial work has already been done to permit Flyspell and/or Ispell to work with ispell-async-processp having a nil value; however, additional modification of the code is needed.

I don't expect anyone to work on this, since its only purpose is to
support a system no one here is interested in.  And in any case, this
is not what you want.

I think we should close this bug.