Subject: 25.0.92; Inserting unicode in buffer requiring a different font slows down Emacs

From: "Philippe Crama" <[email-masked]>
Date: Thu, 14 Apr 2016 21:28:55 +0200

1. Go to the *scratch* buffer or create a new buffer in fundamental mode
2. Observe that Emacs is quite responsive when typing random ASCII
characters
3. Insert (C-x 8 RET) a CIRCLED DIGIT EIGHT into the buffer
4. Continue typing: the buffer update is slower than before
5. Switch to another buffer and observe that Emacs is still as
responsive there as in step 2 once the slow buffer switch
happened.

Extra info:

1. This issue is
- NOT in Emacs 24.5 (GNU Emacs 24.5.1 (i686-pc-mingw32) of 2015-04-11
on LEG570 downloaded from http://gnu.xl-mirror.nl/emacs/windows/
- already in emacs-25.0.90-i686-w64-mingw32 (dowloaded
from the same http://alpha.gnu.org/gnu/emacs/windows/)

2. Characters from the ISO-8859-1 set (e.g. LATIN SMALL LETTER E WITH
ACUTE=C-x 8 ' e) do not have this problem.  Upon consideration, it's
maybe a question of font: this issue doesn’t happen for “RIGHTWARDS ARROW”
(C-x 8 a >).  C-u x = reports:
position: 125 of 144 (86%), column: 54
character: → (displayed as →) (codepoint 8594, #o20622, #x2192)
preferred charset: unicode (Unicode (ISO10646))
code point in charset: 0x2192
script: symbol
syntax: .                which means: punctuation
category: .:Base, c:Chinese, h:Korean, j:Japanese
to input: type "C-x 8 RET 2192" or "C-x 8 RET RIGHTWARDS ARROW"
buffer code: #xE2 #x86 #x92
file code: not encodable by coding system undecided-unix
display: by this font (glyph code)
uniscribe:-outline-Input-normal-normal-normal-mono-13-*-*-*-c-*-iso8859-1 (#x21E)

Character code properties: customize what to show
name: RIGHTWARDS ARROW
old-name: RIGHT ARROW
general-category: Sm (Symbol, Math)
decomposition: (8594) ('→')

There are text properties here:
fontified            t

3. In all versions I tested for this report, C-u x = reports the same
information for CIRCLED DIGIT EIGHT (I've replaced the troublesome
unicode character by `(8)'):
character: (8) (displayed as (8)) (codepoint 9319, #o22147, #x2467)
preferred charset: unicode (Unicode (ISO10646))
code point in charset: 0x2467
script: symbol
syntax: _         which means: symbol
category: .:Base, c:Chinese, h:Korean, j:Japanese
to input: type "C-x 8 RET 2467" or "C-x 8 RET CIRCLED DIGIT EIGHT"
buffer code: #xE2 #x91 #xA7
file code: #xE2 #x91 #xA7 (encoded by coding system utf-8-dos)
display: by this font (glyph code)
uniscribe:-outline-BatangChe-normal-normal-normal-mono-13-*-*-*-c-*-gb2312.1980-0 (#xF62)

Character code properties: customize what to show
name: CIRCLED DIGIT EIGHT
general-category: No (Number, Other)
decomposition: (circle 56) (circle '8')

In GNU Emacs 25.0.92.1 (i686-w64-mingw32) of 2016-03-21 built on LAPHROAIG

Windowing system distributor 'Microsoft Corp.', version 6.1.7601

Configured using:
'configure --host=i686-w64-mingw32 --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: en_US.UTF-8
locale-coding-system: cp1252

Major mode: Lisp Interaction

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
line-number-mode: t
transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list... [3 times]

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec epg epg-config gnus-util mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase
cl-lib mail-prsvr mail-utils iso-transl 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 8 173134 14084)
(symbols 32 30311 0)
(miscs 32 43 119)
(strings 16 66961 7694)
(string-bytes 1 1488651)
(vectors 8 13576)
(vector-slots 4 563074 23106)
(floats 8 164 59)
(intervals 28 555 1222)
(buffers 520 12))