Subject: 25.1; Fonts can make Emacs grind to a halt

From: Klaus-Dieter Bauer <[email-masked]>
Date: Thu, 10 Nov 2016 16:53:55 +0100

Hello!

When using Google's "Noto Mono" font, some buffers grind to a halt, with
user input being registered with roughly a one-second delay. Trying to
do more, will make Emacs entirely unresponsive to user-input leaving
only killing the process through the task manager (Windows 10,
tasgmgr.exe or 'taskkill /F /IM emacs.exe').

To avoid interaction with other customizations I tried it with
https://ftp.gnu.org/gnu/emacs/windows/emacs-25.1-x86_64-w64-mingw32.zip
starting emacs as 'runemacs -Q' and observed the same behavior.

The issue is dodgy though. The only case where I could consistently
reproduce it, was `package-list-packages' (using ELPA only). When saving
the buffer contents as a text file and opening it, the issue did *not*
occur.

Outside of Emacs I haven't yet observed issues with the Noto fonts.

The user-side fix (using another font) is easy, but the font being the blame
was rather unexpected.

regards, Klaus

In GNU Emacs 25.1.1 (x86_64-w64-mingw32)
 of 2016-09-17 built on LAPHROAIG
Windowing system distributor 'Microsoft Corp.', version 10.0.14393
Configured using:
 'configure --without-dbus --without-compress-install CFLAGS=-static'

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS

Important settings:
  value of $LANG: DEA
  locale-coding-system: cp1252

Major mode: Package Menu

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-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
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Mark set [4 times]
You can run the command ‘package-list-packages’ with M-x pa-l- RET
Package refresh done
Mark set
Quit
user-error: Saving settings from "emacs -q" would overwrite existing
customizations
Mark set
user-error: Saving settings from "emacs -q" would overwrite existing
customizations
Package refresh done
C-x C-g is undefined

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail crm thingatpt cus-edit
cus-start cus-load wid-edit warnings mm-archive message dired
format-spec rfc822 mml mml-sec epg mailabbrev gmm-utils mailheader
mm-decode mm-bodies mm-encode url-handlers mail-utils network-stream nsm
starttls url-http tls gnutls mail-parse rfc2231 rfc2047 rfc2045
ietf-drums url-gw url-cache url-auth url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
url-parse auth-source cl-seq eieio eieio-core cl-macs gnus-util mm-util
help-fns mail-prsvr password-cache url-vars mailcap finder-inf package
epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode
easymenu cconv cl-loaddefs pcase cl-lib time-date mule-util tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 ls-lisp disp-table w32-win w32-vars term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame
cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote w32notify w32 multi-tty
make-network-process emacs)

Memory information:
((conses 16 178349 20495)
 (symbols 56 24138 0)
 (miscs 48 554 679)
 (strings 32 31726 4513)
 (string-bytes 1 843950)
 (vectors 16 18272)
 (vector-slots 8 495355 7739)
 (floats 8 245 115)
 (intervals 56 6280 29)
 (buffers 976 24))