Subject: Re: bug#12127: 24.1.50; ispell slow under Emacs.app

From: Jan Djärv <[email-masked]>
Date: Sun, 14 Oct 2012 20:40:41 +0200

Hello.

The NS-port does not use polling anymore.  Can you test if the current approach seems like an improvement?

Thanks,

	Jan D.

3 aug 2012 kl. 01:18 skrev Pat Rondon <[email-masked]>:

> Run "open Emacs.app --args -Q"
> Open a large file
> M-x ispell-buffer
> The spell checking process will take a very long time.
> 
> This problem seems to have to do with the long polling interval (.1
> second) used in ns_select in src/nsterm.m. Setting the polling interval
> to a shorter period helps a lot:
> 
> *** old.nsterm.m	2012-08-02 16:04:22.000000000 -0700
> --- nsterm.m	2012-08-02 16:01:52.000000000 -0700
> *************** ns_select (int nfds, fd_set *readfds, fd
> *** 3545,3551 ****
>                                                           retain];
> 
>    /* set a periodic task to try the pselect () again */
> !   fd_entry = [[NSTimer scheduledTimerWithTimeInterval: 0.1
>                                                 target: NSApp
>                                               selector: @selector (fd_handler:)
>                                               userInfo: 0
> --- 3545,3551 ----
>                                                           retain];
> 
>    /* set a periodic task to try the pselect () again */
> !   fd_entry = [[NSTimer scheduledTimerWithTimeInterval: 0.001
>                                                 target: NSApp
>                                               selector: @selector (fd_handler:)
>                                               userInfo: 0
> 
> Corresponding ChangeLog entry:
> 
> 2012-08-02  Pat Rondon  <[email-masked]>
> 
>        * nsterm.m (ns_select): Shorten ns_select polling interval.
> 
> 
> In GNU Emacs 24.1.50.2 (x86_64-apple-darwin11.4.0, NS apple-appkit-1138.47)
> of 2012-08-02 on manzanita
> Bzr revision: 109405 [email-masked]
> Windowing system distributor `Apple', version 10.3.1138
> Configured using:
> `configure '--prefix=/Users/pmr/' '--with-ns''
> 
> Important settings:
>  value of $LC_CTYPE: en_US.UTF-8
>  value of $LANG: en_US.UTF-8
>  locale-coding-system: utf-8-unix
>  default enable-multibyte-characters: t
> 
> Major mode: Lisp Interaction
> 
> Minor modes in effect:
>  tooltip-mode: t
>  mouse-wheel-mode: t
>  tool-bar-mode: t
>  menu-bar-mode: t
>  file-name-shadow-mode: t
>  global-font-lock-mode: t
>  font-lock-mode: t
>  blink-cursor-mode: t
>  auto-composition-mode: t
>  auto-encryption-mode: t
>  auto-compression-mode: t
>  line-number-mode: t
>  transient-mark-mode: t
> 
> Recent input:
> M-x r e p o <tab> r t - e m <tab> <return>
> 
> Recent messages:
> For information about GNU Emacs and the GNU system, type C-h C-a.
> Making completion list...
> 
> Load-path shadows:
> None found.
> 
> Features:
> (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
> mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
> gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
> mail-prsvr mail-utils help-mode easymenu time-date tooltip ediff-hook
> vc-hooks lisp-float-type mwheel ns-win tool-bar dnd fontset image
> regexp-opt fringe tabulated-list newcomment lisp-mode register page
> menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
> syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
> vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
> romanian slovak czech european ethiopic indian cyrillic chinese
> case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs
> button faces cus-face files text-properties overlay sha1 md5 base64
> format env code-pages mule custom widget hashtable-print-readable
> backquote make-network-process ns multi-tty emacs)
> 
>