Subject: bug#16800: closed (Re: bug#16800: 24.3; flyspell works slow on very short words at the end of big file)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 06 Mar 2015 21:48:02 +0000

Your bug report

#16800: 24.3; flyspell works slow on very short words at the end of big file

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
16800: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16800
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#16800: 24.3; flyspell works slow on very short words at the end of big file
From: Agustin Martin <[email-masked]>
To: Aleksey Cherepanov <[email-masked]>, [email-masked]
Date: Fri, 6 Mar 2015 22:46:59 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.5

2014-03-09 18:25 GMT+01:00 Agustin Martin <[email-masked]>:

>
> I do not expect to have time to check everything shortly. Also, note that
> Emacs 24.4 is on the way, so trunk is frozen for anything potentially
> problematic. Unless I consider the code absolutely rock solid, I'd prefer
> to wait until 24.4 is released.
>

Hi,

emacs24 was released, fix committed to emacs-24 branch and merged into
trunk.

It is time to close this bug report.

Thanks for your contribution to the project. Best regards,

-- 
Agustin

Subject: 24.3; flyspell works slow on very short words at the end of big file
From: Aleksey Cherepanov <[email-masked]>
To: [email-masked]
Date: Wed, 19 Feb 2014 00:56:45 +0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: emacs
Version: 24.3
Severity: normal

Dear Maintainers,

It is a copy of bug #739412 in Debian. Debian uses bug tracker
similar to this one. The bug on web:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739412
Address to continue thread there:
[email-masked]

   * What led up to the situation?

I faced a problem editing my big .org file (2mb+) with flyspell-mode
enabled. I edit it every day, regularly mistype and get words of one
or two letters that are wrong in Russian and cause flyspell work slow.

This one-liner produces "good" file to reproduce the bug.
perl -e 'print(((join " ", ("met and") x 10) . "\n") x 30000)' > t.txt

Typing "nd" at the end of file gives a huge pause even on a fast
computer. But "mw" or "md" does not give pauses because they are not
substrings in this file. It is repeatable with emacs -Q.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

 So exact sequence is
$ emacs --version
GNU Emacs 24.3.1
$ emacs23 --version
GNU Emacs 23.4.1
$ perl -e 'print(((join " ", ("met and") x 10) . "\n") x 30000)' > t.txt
$ LANG=C emacs -Q t.txt
 Then in emacs:
M-x flyspell-mode RET
M->
nd SPC

'emacs23 -Q t.txt' works the same way. LANG=C affects regular words
because default dictionary is Russian on my system so without LANG=C
all words ("met" and "and") are considered misspelled. But it does not
affect huge pause at the end.

   * What was the outcome of this action?

Huge pause when emacs does not react on keys except C-g. Word "nd" is
colored as misspelled after the pause. C-g stops emacs internal
thinking and I could work without waiting but word "nd" is not colored
as misspelled word.

   * What outcome did you expect instead?

I expect it to work as fast as with other words like "md" or "mw" that
does not produce a pause and are colored immediately.

I tried to patch flyspell-word-search-backward and
flyspell-word-search-forward functions from flyspell.el replacing
search-backward with word-search-backward and search-forward with
word-search-forward (perl -pe 's/\(search-/(word-search-/' ). It
solved the problem but I do not know what it broke.

I expect problems with this solution because I do not know if
flyspell's meaning of word is the same as emacs' one. I think it is
described in flyspell-get-word function that is called after search-*
in the patched functions.

flyspell-duplicate-distance variable on its own could mitigate the
problem but it changes the behaviour so I do not want to use this
variable.

Thanks!

-- 
Regards,
Aleksey Cherepanov

In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.8.6)
 of 2013-12-23 on brahms, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11405000
System Description:	Debian GNU/Linux testing (jessie)

Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: ru_RU.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t