GNU bug report logs - #39133
28.0.50; Emacs slowdown on special char

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Evgeny Zajcev <lg.zevlg@HIDDEN>; dated Tue, 14 Jan 2020 13:22:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 24 Jan 2020 15:41:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 10:41:49 2020
Received: from localhost ([127.0.0.1]:54653 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iv15h-0006Vp-L3
	for submit <at> debbugs.gnu.org; Fri, 24 Jan 2020 10:41:49 -0500
Received: from mail-wr1-f44.google.com ([209.85.221.44]:39233)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1iv15g-0006Vc-Fd
 for 39133 <at> debbugs.gnu.org; Fri, 24 Jan 2020 10:41:48 -0500
Received: by mail-wr1-f44.google.com with SMTP id y11so2514223wrt.6
 for <39133 <at> debbugs.gnu.org>; Fri, 24 Jan 2020 07:41:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :mime-version; bh=MxRtJ5zkmV7F0mG5yJOHOZfAPdVKXFN4ExIr8PvBivg=;
 b=ACj0cFOGR9ci3P3tseMun2JhegRmUXZx4hxYN1/5PK1+D+pYzwMglPhoZfGthFN/me
 IJFcRANDowru7RRBgaVXLF+DBT8elgBHI2dTMYh8W9qYvqmVUzmkBd66NkUEB7OK/+nS
 FU639qGP8BxuIdWH9Ml/Ob/lVq6kpIPvNZxaeec5I/sF2j3QI2EoyB7IVR5kz39xbiMi
 Hoe01lldfE/z+SKEXzebOtSCOgoX7ITNT7bZfJkjDihSMnyW0RWS4U+hCXQL+NPCz/4s
 6/W9MXUK/2UKaeisBEaJJMzNbM0xCiAseUceTE0yH7PRybIs7quEy+FwI97LeYJ+IFk4
 iYgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:mime-version;
 bh=MxRtJ5zkmV7F0mG5yJOHOZfAPdVKXFN4ExIr8PvBivg=;
 b=XVohFwfuILq5c7l9z/LL70VIbdz6eHQ1jWZ3l6UGf9ZIstlIp56UDLv0TAvxqE67xA
 h/l5K/PofxEoBN3JjRcaSOBKk4HKSLwnq2qavJLDt2wKs2u2u/ADgEdIMvFpkF16huow
 6F0JiKnxpCOxq9GZpT0MpExviYlaGje2ZLzw8TCq67Zg02ksxZEO1/e+43ipdmQImYyK
 ogRbhEdr498gGsEVnzcy04C2QJNqJqwAfMQftbBjyvj5kJu0FyV7pFjPGlfPM8JQa9a5
 LAdM3LJTMNEGL2T6CTwtbheQFg8kw781iutI71vOzSz3vUZotvLeUDZov8JFUX+GVosf
 dMGQ==
X-Gm-Message-State: APjAAAXIwjlLfRNpN4IfbUDi1JbNpxBL8ZOHrToVAZz2SCa8K5o4BqUc
 pO+deLNoJd+aKbZZf5RVFLM=
X-Google-Smtp-Source: APXvYqw4Kbqfiub5zaEkRNVmIJLzxWC6R4Jj0LbIEPLt4QHg6MYN56F+GD8O7dBTHEf93IyUwUOKuw==
X-Received: by 2002:adf:f103:: with SMTP id r3mr4905441wro.295.1579880502605; 
 Fri, 24 Jan 2020 07:41:42 -0800 (PST)
Received: from rpluim-mac ([149.5.228.1])
 by smtp.gmail.com with ESMTPSA id a9sm6966767wmm.15.2020.01.24.07.41.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 24 Jan 2020 07:41:41 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN> <83r2004rqn.fsf@HIDDEN>
 <m21rrpb1r1.fsf@HIDDEN> <8336c5rw5t.fsf@HIDDEN>
 <m2lfpx9f25.fsf@HIDDEN> <83y2txq8fw.fsf@HIDDEN>
 <m2h80l9d65.fsf@HIDDEN>
Date: Fri, 24 Jan 2020 16:41:40 +0100
In-Reply-To: <m2h80l9d65.fsf@HIDDEN> (Robert Pluim's message of "Fri, 24
 Jan 2020 14:50:10 +0100")
Message-ID: <m2d0b8amkr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39133
Cc: lg.zevlg@HIDDEN, 39133 <at> debbugs.gnu.org, mituharu@HIDDEN,
 handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain

>>>>> On Fri, 24 Jan 2020 14:50:10 +0100, Robert Pluim <rpluim@HIDDEN> said:
    Robert> Yes, I worked that out. A simple crash, for once :-)


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0001-Don-t-attempt-to-cache-glyph-metrics-for-FONT_INVALI.patch

From 667f47abecc13e8a47181f338e727d95e57a6354 Mon Sep 17 00:00:00 2001
From: Robert Pluim <rpluim@HIDDEN>
Date: Fri, 24 Jan 2020 14:11:44 +0100
Subject: [PATCH] Don't attempt to cache glyph metrics for FONT_INVALID_CODE

This was causing massive slowdown in redisplay when eg #xfe0f
(VARIATION SELECTOR-16) was present, as the cache ended up very large,
unused, and being recreated on every call to font_fill_lglyph_metrics
(Bug#39133).

* src/composite.c (fill_gstring_body): Hoist FONT_OBJECT_P check out
of loop.  Calculate glyph code and check for FONT_INVALID_CODE before
calling font_fill_lglyph_metrics.  Pass glyph code to it.

* src/font.c (font_fill_lglyph_metrics): Add code parameter, move
glyph code calculation up the call stack into fill_gstring_body.

* src/font.h: Adjust font_fill_lglyph_metrics prototype.
---
 src/composite.c | 18 ++++++++++++++----
 src/font.c      |  4 +---
 src/font.h      |  2 +-
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/composite.c b/src/composite.c
index 53e6930b5f..364d5c9316 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -818,6 +818,11 @@ fill_gstring_body (Lisp_Object gstring)
   Lisp_Object header = AREF (gstring, 0);
   ptrdiff_t len = LGSTRING_CHAR_LEN (gstring);
   ptrdiff_t i;
+  struct font *font = NULL;
+  unsigned int code;
+
+  if (FONT_OBJECT_P (font_object))
+    font = XFONT_OBJECT (font_object);
 
   for (i = 0; i < len; i++)
     {
@@ -832,10 +837,15 @@ fill_gstring_body (Lisp_Object gstring)
       LGLYPH_SET_FROM (g, i);
       LGLYPH_SET_TO (g, i);
       LGLYPH_SET_CHAR (g, c);
-      if (FONT_OBJECT_P (font_object))
-	{
-	  font_fill_lglyph_metrics (g, font_object);
-	}
+
+      if (font != NULL)
+        code = font->driver->encode_char (font, LGLYPH_CHAR (g));
+      else
+        code = FONT_INVALID_CODE;
+      if (code != FONT_INVALID_CODE)
+        {
+	  font_fill_lglyph_metrics (g, font, code);
+        }
       else
 	{
 	  int width = XFIXNAT (CHAR_TABLE_REF (Vchar_width_table, c));
diff --git a/src/font.c b/src/font.c
index bb39aef92d..2a45630061 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4416,10 +4416,8 @@ DEFUN ("clear-font-cache", Fclear_font_cache, Sclear_font_cache, 0, 0, 0,
 
 
 void
-font_fill_lglyph_metrics (Lisp_Object glyph, Lisp_Object font_object)
+font_fill_lglyph_metrics (Lisp_Object glyph, struct font *font, unsigned int code)
 {
-  struct font *font = XFONT_OBJECT (font_object);
-  unsigned code = font->driver->encode_char (font, LGLYPH_CHAR (glyph));
   struct font_metrics metrics;
 
   LGLYPH_SET_CODE (glyph, code);
diff --git a/src/font.h b/src/font.h
index 0561e3c83f..8614e7fa10 100644
--- a/src/font.h
+++ b/src/font.h
@@ -886,7 +886,7 @@ valid_font_driver (struct font_driver const *d)
 extern Lisp_Object font_range (ptrdiff_t, ptrdiff_t, ptrdiff_t *,
 			       struct window *, struct face *,
 			       Lisp_Object);
-extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object);
+extern void font_fill_lglyph_metrics (Lisp_Object, struct font *, unsigned int);
 
 extern Lisp_Object font_put_extra (Lisp_Object font, Lisp_Object prop,
                                    Lisp_Object val);
-- 
2.23.0


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 24 Jan 2020 13:50:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 08:50:19 2020
Received: from localhost ([127.0.0.1]:53565 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iuzLn-0001UW-8T
	for submit <at> debbugs.gnu.org; Fri, 24 Jan 2020 08:50:19 -0500
Received: from mail-wm1-f44.google.com ([209.85.128.44]:39024)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1iuzLm-0001UK-0v
 for 39133 <at> debbugs.gnu.org; Fri, 24 Jan 2020 08:50:18 -0500
Received: by mail-wm1-f44.google.com with SMTP id c84so891562wme.4
 for <39133 <at> debbugs.gnu.org>; Fri, 24 Jan 2020 05:50:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :mime-version; bh=KXuYTnG8K3XdmWRd0K/TEKFsqJd8VzdVKURg1M/wMOY=;
 b=UXMX/fLmG4DCxwP6A9zLKSTVE+p6N0cm56cDzVuIVIpLdYn7DVH9nRlTO3WuVXC3bG
 qz6e1E1N2Ly5br416g/x5IeIfzJy1rpzToLN/6yb/GmpV4RfmeKLfOwLPKLzplC9NOfX
 szSsfwABIG5d9adipkwAJlpSRO4kdgUq75tl25JWuRHKVbzK6tIvW9HHTo+xoarRP8ev
 qZe3Rji+QovNPNf2octyzIgfdFQB5moyQ7XbgFi4YeKDLvHf5+bLLfYugbcOifGtPWVF
 Nqw67ZepWwche7GMp4MX7sv/uX2WhZhQmwQ8njLA8tXfOgaztZmKqjhxbVHhtYoqrNKx
 KQhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:mime-version;
 bh=KXuYTnG8K3XdmWRd0K/TEKFsqJd8VzdVKURg1M/wMOY=;
 b=cvjh/RNgY9JPUaBDOo9ydxJQAdp8gHS7pBx64CMMSUmMcpweLgyNOB2i4kZRafuZ9F
 NSdpA/YF4wBfDLPSyqi2Vzr5qCDfrkrAsGLvC7Sihjgofe4Y0ujH6ApB5Ub7k55CfAs+
 RAVqkwqwnd1uuO97xR7knbMnCdODWIfPVCp+GitIGJYSv+2QcCPjC7nsFC1WcgfTGwfg
 dwTasDdUhVclvAQIfXzRFqousTOP4BTzkqTX2QZg123rygUX3P0ZDfW0ARdcMPv9K4iG
 GWzh6xYSEOFxHEPP/93vMvjSk9A2+6oXta8k1mzNzFsqTlxFiC0KMvSqmBQoTfxi+LlH
 B/Lw==
X-Gm-Message-State: APjAAAW4ehGJ5rns6ESfheEkL0RvyDSdt6SyZEh187c0VGxJnKrOcSxt
 +2IgR+EMFSQagGQANJfUVr4=
X-Google-Smtp-Source: APXvYqzrjayWVVuThXafqJAZEOdClTd0wmPB8Pp2U1R1hc6DBFokkcOCXEQmEZ3SE5SodeyxxY6mDA==
X-Received: by 2002:a7b:c183:: with SMTP id y3mr3295827wmi.45.1579873812092;
 Fri, 24 Jan 2020 05:50:12 -0800 (PST)
Received: from rpluim-mac ([149.5.228.1])
 by smtp.gmail.com with ESMTPSA id n10sm7335390wrt.14.2020.01.24.05.50.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 24 Jan 2020 05:50:11 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN> <83r2004rqn.fsf@HIDDEN>
 <m21rrpb1r1.fsf@HIDDEN> <8336c5rw5t.fsf@HIDDEN>
 <m2lfpx9f25.fsf@HIDDEN> <83y2txq8fw.fsf@HIDDEN>
Date: Fri, 24 Jan 2020 14:50:10 +0100
In-Reply-To: <83y2txq8fw.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 24 Jan
 2020 15:40:19 +0200")
Message-ID: <m2h80l9d65.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, lg.zevlg@HIDDEN, mituharu@HIDDEN,
 handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>>>>> On Fri, 24 Jan 2020 15:40:19 +0200, Eli Zaretskii <eliz@HIDDEN> said:

    >> From: Robert Pluim <rpluim@HIDDEN>
    >> Cc: lg.zevlg@HIDDEN,  39133 <at> debbugs.gnu.org,
    >> mituharu@HIDDEN,  handa@HIDDEN
    >> Date: Fri, 24 Jan 2020 14:09:22 +0100
    >> 
    >> >> Rather than duplicate that code, I moved the FONT_INVALID_CODE check
    >> >> up. This works for me:
    >> 
    Eli> Looks reasonable, thanks.
    >> 
    >> Except it crashes under -nw.

    Eli> Yes, because the call to the font driver should only be done when
    Eli> 'font_object' is a font object (it isn't on TTY frames).  Otherwise,
    Eli> simply assign FONT_INVALID_CODE to 'code'.

Yes, I worked that out. A simple crash, for once :-)

Robert




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 24 Jan 2020 13:40:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 08:40:55 2020
Received: from localhost ([127.0.0.1]:53553 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iuzCg-0001Fu-Rf
	for submit <at> debbugs.gnu.org; Fri, 24 Jan 2020 08:40:55 -0500
Received: from eggs.gnu.org ([209.51.188.92]:55242)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1iuzCf-0001Fh-3I
 for 39133 <at> debbugs.gnu.org; Fri, 24 Jan 2020 08:40:53 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:60893)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1iuzCY-0003GY-Vg; Fri, 24 Jan 2020 08:40:47 -0500
Received: from [176.228.60.248] (port=3154 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1iuzCO-0001v0-9E; Fri, 24 Jan 2020 08:40:37 -0500
Date: Fri, 24 Jan 2020 15:40:19 +0200
Message-Id: <83y2txq8fw.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Robert Pluim <rpluim@HIDDEN>
In-reply-to: <m2lfpx9f25.fsf@HIDDEN> (message from Robert Pluim on Fri, 24
 Jan 2020 14:09:22 +0100)
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN> <83r2004rqn.fsf@HIDDEN>
 <m21rrpb1r1.fsf@HIDDEN> <8336c5rw5t.fsf@HIDDEN> <m2lfpx9f25.fsf@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, lg.zevlg@HIDDEN, mituharu@HIDDEN,
 handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> From: Robert Pluim <rpluim@HIDDEN>
> Cc: lg.zevlg@HIDDEN,  39133 <at> debbugs.gnu.org,
>   mituharu@HIDDEN,  handa@HIDDEN
> Date: Fri, 24 Jan 2020 14:09:22 +0100
> 
>     >> Rather than duplicate that code, I moved the FONT_INVALID_CODE check
>     >> up. This works for me:
> 
>     Eli> Looks reasonable, thanks.
> 
> Except it crashes under -nw.

Yes, because the call to the font driver should only be done when
'font_object' is a font object (it isn't on TTY frames).  Otherwise,
simply assign FONT_INVALID_CODE to 'code'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 24 Jan 2020 13:09:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 08:09:31 2020
Received: from localhost ([127.0.0.1]:53537 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iuyiJ-0000Wi-Os
	for submit <at> debbugs.gnu.org; Fri, 24 Jan 2020 08:09:31 -0500
Received: from mail-wr1-f43.google.com ([209.85.221.43]:34671)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1iuyiI-0000WP-1E
 for 39133 <at> debbugs.gnu.org; Fri, 24 Jan 2020 08:09:30 -0500
Received: by mail-wr1-f43.google.com with SMTP id t2so1922512wrr.1
 for <39133 <at> debbugs.gnu.org>; Fri, 24 Jan 2020 05:09:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :mime-version; bh=93ytGBeGYqqK4C0GmR2twGA2fmjC/ilyJcR/m8SEVSM=;
 b=nm7Xu18ITH7cDEAJBvSZ81qm3mfIOK+USwoHFZoe6eKHJcFwATJhZhlWgaL0JteqFB
 x5wu3geAR2ahhvSWFCCgbWJS0V0H1s/+6RD/PasKgiYRLxDzIeAlJuqFkzlbW5B7HJFo
 ROpLItEarU/0BYfCxdsLowbnyhVlMgh2KDR6qLgoj/W9rjPRY9s8vq8gUtO2U8+SzNvd
 JxhW3pWC5iKt2PuJXt+aCvNAdOzFVILCx6Oz7un/NDpS//n1Ih0sugnCepmQKt9pTltL
 vJffTQSpiKERdQp6jwvNAvMxAhdER3BB7v41AZGkBUratEPIvV5ItcOhBeqrtFIYDwZy
 fqTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:mime-version;
 bh=93ytGBeGYqqK4C0GmR2twGA2fmjC/ilyJcR/m8SEVSM=;
 b=DS55mSHbpGSeCc/C+kqaWFJvYF5DY/oqnf+8OcCx42pJ+ENrE/UpOsVdhmBT2wDLmR
 uInEhkgCZyjg7uuTZQ2uFgIVbrcy6+OtmuqCHiw2Yd28Cr2MtNaB1ux0zmQw2Kh5bAVH
 hmOn/7ONcD/Tlj+H26aO7cxOXXehDrpPXDJIxJrhVShMRkx7XQo6GcYh7CHpYHwW5U6K
 9P84yvFHUXoMrXHzDIRbUiIoEPUPWNnBlMGqX4/chYGIkx5AGC8FrDfeTw0wyFt4pJDd
 KBTapXVBxBLDgkAjQQC2NjU5AcxtzeehaHRrY1/PYLza3gTEPakZKfHHcMDLxmX93DBb
 JEmg==
X-Gm-Message-State: APjAAAW4tZEKtsJuI6ooOGLwWIiLwahMhTUpv3DjnlFZ+jOHVAOYLKKZ
 FZYmnzblfxHmBNPnnRgEm2I=
X-Google-Smtp-Source: APXvYqzanjJ/Dn8X0KMugiCAZkmoNJKLwXYH6ZPbNCgwOlPghhYitz1UDojztXPULFFc6zCqaIYlBw==
X-Received: by 2002:a5d:4d06:: with SMTP id z6mr4288580wrt.339.1579871364080; 
 Fri, 24 Jan 2020 05:09:24 -0800 (PST)
Received: from rpluim-mac ([149.5.228.1])
 by smtp.gmail.com with ESMTPSA id y7sm12944584wmd.1.2020.01.24.05.09.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 24 Jan 2020 05:09:23 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN> <83r2004rqn.fsf@HIDDEN>
 <m21rrpb1r1.fsf@HIDDEN> <8336c5rw5t.fsf@HIDDEN>
Date: Fri, 24 Jan 2020 14:09:22 +0100
In-Reply-To: <8336c5rw5t.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 24 Jan
 2020 12:22:38 +0200")
Message-ID: <m2lfpx9f25.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, lg.zevlg@HIDDEN, mituharu@HIDDEN,
 handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>>>>> On Fri, 24 Jan 2020 12:22:38 +0200, Eli Zaretskii <eliz@HIDDEN> said:

    >> From: Robert Pluim <rpluim@HIDDEN>
    >> Cc: YAMAMOTO Mitsuharu <mituharu@HIDDEN>,
    >> 39133 <at> debbugs.gnu.org,  lg.zevlg@HIDDEN,  handa@HIDDEN
    >> Date: Fri, 24 Jan 2020 11:13:54 +0100
    >> 
    >> >>>>> On Wed, 15 Jan 2020 18:19:28 +0200, Eli Zaretskii <eliz@HIDDEN> said:
    Eli> We could do in the 'else' branch the same we do in the single caller
    Eli> of this function, fill_gstring_body, when we don't call
    Eli> font_fill_lglyph_metrics:
    >> 
    >> Rather than duplicate that code, I moved the FONT_INVALID_CODE check
    >> up. This works for me:

    Eli> Looks reasonable, thanks.

Except it crashes under -nw. More investigation required.

Robert




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 24 Jan 2020 10:23:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 05:23:04 2020
Received: from localhost ([127.0.0.1]:53497 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iuw7E-00034p-Ke
	for submit <at> debbugs.gnu.org; Fri, 24 Jan 2020 05:23:04 -0500
Received: from eggs.gnu.org ([209.51.188.92]:34127)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1iuw7C-000349-GL
 for 39133 <at> debbugs.gnu.org; Fri, 24 Jan 2020 05:23:03 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:48112)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1iuw76-0002n2-Vk; Fri, 24 Jan 2020 05:22:57 -0500
Received: from [176.228.60.248] (port=3112 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1iuw76-0002bb-Fh; Fri, 24 Jan 2020 05:22:56 -0500
Date: Fri, 24 Jan 2020 12:22:38 +0200
Message-Id: <8336c5rw5t.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Robert Pluim <rpluim@HIDDEN>
In-reply-to: <m21rrpb1r1.fsf@HIDDEN> (message from Robert Pluim on Fri, 24
 Jan 2020 11:13:54 +0100)
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN> <83r2004rqn.fsf@HIDDEN>
 <m21rrpb1r1.fsf@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 39133
Cc: lg.zevlg@HIDDEN, 39133 <at> debbugs.gnu.org, mituharu@HIDDEN,
 handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> From: Robert Pluim <rpluim@HIDDEN>
> Cc: YAMAMOTO Mitsuharu <mituharu@HIDDEN>,
>   39133 <at> debbugs.gnu.org,  lg.zevlg@HIDDEN,  handa@HIDDEN
> Date: Fri, 24 Jan 2020 11:13:54 +0100
> 
> >>>>> On Wed, 15 Jan 2020 18:19:28 +0200, Eli Zaretskii <eliz@HIDDEN> said:
>     Eli> We could do in the 'else' branch the same we do in the single caller
>     Eli> of this function, fill_gstring_body, when we don't call
>     Eli> font_fill_lglyph_metrics:
> 
> Rather than duplicate that code, I moved the FONT_INVALID_CODE check
> up. This works for me:

Looks reasonable, thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 24 Jan 2020 10:14:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 05:14:03 2020
Received: from localhost ([127.0.0.1]:53493 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iuvyV-0002rO-Lp
	for submit <at> debbugs.gnu.org; Fri, 24 Jan 2020 05:14:03 -0500
Received: from mail-wr1-f45.google.com ([209.85.221.45]:39655)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1iuvyT-0002ql-Pj
 for 39133 <at> debbugs.gnu.org; Fri, 24 Jan 2020 05:14:02 -0500
Received: by mail-wr1-f45.google.com with SMTP id y11so1277200wrt.6
 for <39133 <at> debbugs.gnu.org>; Fri, 24 Jan 2020 02:14:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:date:message-id:mime-version;
 bh=7qUoo+cz+mtqvQfhoiqCO5XJddBTrgxwZlm8wQ92ltg=;
 b=lPs3SJencP65QRzCvBGeTLSgnBRR6ietYyIOWeuU6LNH5NHH+gg3N/JGHmyR+ynEWE
 mz9hgtjwY2spvO4VSHMN8Vg/uH+i7DUoliXgGb76BdzmXP7mo/S2ySK84zqOseuRCmht
 3P9k0uq/Gji1AtClUnl6c+KPmXCbKZLTdGeySPfs7uYCZOMIEJdu5X1t5txdiTPrP8yl
 zZ3w8JaGHFXgT9kH5DhVnw87MJ+3Hw93ykQnryIa7NUsYpQalAq8RjLfxX2C/0CEN15Q
 CJwJotMaWKLYT2zir4udAWYhnvV3Zn6pTGOwoH5vXUT3AT9kT3huNTbtRkbWoOjAv5sL
 psvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:message-id
 :mime-version;
 bh=7qUoo+cz+mtqvQfhoiqCO5XJddBTrgxwZlm8wQ92ltg=;
 b=Vl7jjbLs3gVpJLNw4QHMjIWyzmevFtk5ROMUs/AScBxcP8pKcCAKBspwwrlCIswgvL
 ZlDr+iaE5tOkjLujr2uyhDeRzONvUNrGKsEbmvxLajNv7Cn7zcGDfY0XbtZcx/QVP43p
 8aZqVEVtFehVk5HFyJHL34JWp8gRX8RSZEB41GLbCCCt1CZW7u5UbE7wPUIpx8TKPeHk
 E4PKwh8Ccj3odG6BFcDJl6zOA4VdpYfQljuRzn8BPRN1krZPu/AGOD7l80GUs/HkOGwD
 5YO4yjmwbarK07zOCAZ7AYUq8+1fMEwdxpWKBeWXmMZNCwjGXefMzV4ezrNJF6dXQB4O
 y2rA==
X-Gm-Message-State: APjAAAVOAe+lQ9c0tb/y3xGJndyZy5FvB6taYGRsC2QBwqARuV+6JMP2
 GQgFYnSfLwWQKRAtUwhoBzE=
X-Google-Smtp-Source: APXvYqywQaZe03roxY/A1YRip0t7Gtw7zQ+oot/j4LNx/igYlJLrmS2kFmABoOg8nzoAkXPUPrc/FQ==
X-Received: by 2002:adf:f54d:: with SMTP id j13mr3395105wrp.19.1579860835951; 
 Fri, 24 Jan 2020 02:13:55 -0800 (PST)
Received: from rpluim-mac ([149.5.228.1])
 by smtp.gmail.com with ESMTPSA id r6sm6675997wrq.92.2020.01.24.02.13.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 24 Jan 2020 02:13:55 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN> <83r2004rqn.fsf@HIDDEN>
Date: Fri, 24 Jan 2020 11:13:54 +0100
Message-ID: <m21rrpb1r1.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39133
Cc: lg.zevlg@HIDDEN, 39133 <at> debbugs.gnu.org,
 YAMAMOTO Mitsuharu <mituharu@HIDDEN>, handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>>>>> On Wed, 15 Jan 2020 18:19:28 +0200, Eli Zaretskii <eliz@HIDDEN> said:
    Eli> We could do in the 'else' branch the same we do in the single caller
    Eli> of this function, fill_gstring_body, when we don't call
    Eli> font_fill_lglyph_metrics:

Rather than duplicate that code, I moved the FONT_INVALID_CODE check
up. This works for me:

diff --git a/src/composite.c b/src/composite.c
index 53e6930b5f..bf5884fa55 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -818,6 +818,7 @@ fill_gstring_body (Lisp_Object gstring)
   Lisp_Object header = AREF (gstring, 0);
   ptrdiff_t len = LGSTRING_CHAR_LEN (gstring);
   ptrdiff_t i;
+  struct font *font = XFONT_OBJECT (font_object);
 
   for (i = 0; i < len; i++)
     {
@@ -832,9 +833,12 @@ fill_gstring_body (Lisp_Object gstring)
       LGLYPH_SET_FROM (g, i);
       LGLYPH_SET_TO (g, i);
       LGLYPH_SET_CHAR (g, c);
-      if (FONT_OBJECT_P (font_object))
+
+      unsigned int code = font->driver->encode_char (font, LGLYPH_CHAR (g));
+
+      if (FONT_OBJECT_P (font_object) && code != FONT_INVALID_CODE)
 	{
-	  font_fill_lglyph_metrics (g, font_object);
+	  font_fill_lglyph_metrics (g, font_object, code);
 	}
       else
 	{
diff --git a/src/font.c b/src/font.c
index bb39aef92d..03d9cc50ae 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4416,10 +4416,9 @@ DEFUN ("clear-font-cache", Fclear_font_cache, Sclear_font_cache, 0, 0, 0,
 
 
 void
-font_fill_lglyph_metrics (Lisp_Object glyph, Lisp_Object font_object)
+font_fill_lglyph_metrics (Lisp_Object glyph, Lisp_Object font_object, unsigned int code)
 {
   struct font *font = XFONT_OBJECT (font_object);
-  unsigned code = font->driver->encode_char (font, LGLYPH_CHAR (glyph));
   struct font_metrics metrics;
 
   LGLYPH_SET_CODE (glyph, code);
diff --git a/src/font.h b/src/font.h
index 0561e3c83f..d82039eed8 100644
--- a/src/font.h
+++ b/src/font.h
@@ -886,7 +886,7 @@ valid_font_driver (struct font_driver const *d)
 extern Lisp_Object font_range (ptrdiff_t, ptrdiff_t, ptrdiff_t *,
 			       struct window *, struct face *,
 			       Lisp_Object);
-extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object);
+extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object, unsigned int);
 
 extern Lisp_Object font_put_extra (Lisp_Object font, Lisp_Object prop,
                                    Lisp_Object val);




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 15 Jan 2020 16:19:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 15 11:19:23 2020
Received: from localhost ([127.0.0.1]:35421 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1irlO6-0007b8-Ty
	for submit <at> debbugs.gnu.org; Wed, 15 Jan 2020 11:19:23 -0500
Received: from eggs.gnu.org ([209.51.188.92]:52837)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1irlO4-0007au-Ro
 for 39133 <at> debbugs.gnu.org; Wed, 15 Jan 2020 11:19:21 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:39268)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1irlNy-0006Z7-Nn; Wed, 15 Jan 2020 11:19:14 -0500
Received: from [176.228.60.248] (port=3279 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1irlNx-00023Z-Ur; Wed, 15 Jan 2020 11:19:14 -0500
Date: Wed, 15 Jan 2020 18:19:28 +0200
Message-Id: <83r2004rqn.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: YAMAMOTO Mitsuharu <mituharu@HIDDEN>
In-reply-to: <wlmuape464.wl-mituharu@HIDDEN> (message from
 YAMAMOTO Mitsuharu on Wed, 15 Jan 2020 13:26:11 +0900)
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN>
 <m2a76qropm.fsf@HIDDEN> <wlmuape464.wl-mituharu@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, rpluim@HIDDEN, lg.zevlg@HIDDEN, handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Wed, 15 Jan 2020 13:26:11 +0900
> From: YAMAMOTO Mitsuharu <mituharu@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>,
> 	Evgeny Zajcev <lg.zevlg@HIDDEN>,
> 	39133 <at> debbugs.gnu.org, handa@HIDDEN
> 
> +  if (code != FONT_INVALID_CODE)
> +    {
> +      struct font_metrics metrics;
> +
> +      LGLYPH_SET_CODE (glyph, code);
> +      font->driver->text_extents (font, &code, 1, &metrics);
> +      LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
> +      LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
> +      LGLYPH_SET_WIDTH (glyph, metrics.width);
> +      LGLYPH_SET_ASCENT (glyph, metrics.ascent);
> +      LGLYPH_SET_DESCENT (glyph, metrics.descent);
> +    }
>  }
>  
>  
> But I'm not sure if it is ok to leave the code and metrics-related
> fields nil when encode_char returns FONT_INVALID_CODE.  Handa-san?

We could do in the 'else' branch the same we do in the single caller
of this function, fill_gstring_body, when we don't call
font_fill_lglyph_metrics:

      if (FONT_OBJECT_P (font_object))
	{
	  font_fill_lglyph_metrics (g, font_object);
	}
      else
	{
	  int width = XFIXNAT (CHAR_TABLE_REF (Vchar_width_table, c));

	  LGLYPH_SET_CODE (g, c);
	  LGLYPH_SET_LBEARING (g, 0);
	  LGLYPH_SET_RBEARING (g, width);
	  LGLYPH_SET_WIDTH (g, width);
	  LGLYPH_SET_ASCENT (g, 1);
	  LGLYPH_SET_DESCENT (g, 0);
	}




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 15 Jan 2020 10:48:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 15 05:48:12 2020
Received: from localhost ([127.0.0.1]:34302 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1irgDY-0002up-RR
	for submit <at> debbugs.gnu.org; Wed, 15 Jan 2020 05:48:12 -0500
Received: from mail-lf1-f45.google.com ([209.85.167.45]:36891)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <lg.zevlg@HIDDEN>) id 1irgDS-0002u4-Lk
 for 39133 <at> debbugs.gnu.org; Wed, 15 Jan 2020 05:48:06 -0500
Received: by mail-lf1-f45.google.com with SMTP id b15so12326925lfc.4
 for <39133 <at> debbugs.gnu.org>; Wed, 15 Jan 2020 02:48:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=KHIrum8UYIZHije9xKDhi8QeT0sE0KqLXvNDZNdYHZ4=;
 b=T0e9kj8sVw//Swis/LSAhjoZjh3z1FPDx+kdB9c96khY4iDT+y69yQm6XXDaW2vGUw
 68oAXOHsqyTdZlUf/P10Nw4Ig+Grd6q2mHOTiacYPfJ0rqtaUlmrQT5rflibodQdWsJz
 XHQSs6W5j9k78EXHJS4amLyY65xRlEQoH7eGOY4gSJR72cvGO0b5jtrAExzP76cZU4tv
 TP9dewgFIikzlRVDFBUUKNxSQUIvUsKQtPdecEbvI88bG+SlqBjpEqyNufNTgUQSiDHZ
 ADPNzMgn1/YyHUIF+M70aM1aztVueZ3/uuEe1HsDLDlznOSLqQhG/D7IcV14hOEOnNBU
 92kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=KHIrum8UYIZHije9xKDhi8QeT0sE0KqLXvNDZNdYHZ4=;
 b=cJ4ahAcHHCxGnsF4icrsWbsbUrX2Yyve05uaAX0kasZ6SPAZ2TAxyr6LsfYsuf4Nhb
 0XJb2FTFm9P3ugIXJR+Ioo+hlPrb0+ZyXEdwu7SarVl3W0CnpTPPsrIQut22JbdzYRbi
 lpSa+ZTl1vO2Y9QrEi25gq2Nvw44SwNh75KAJPFX4fiu7U4TJC47RnbdZEajhZszt7Rp
 SurX+5VMsvhTRw7StoQMsh4Mwc/1/gFNNLwI6WdkR0WFwT9BVF2MO+3xNjLv1qdn1xNx
 HQVMyugMzty/wgJvAHpk0ToSPvvQFcKK5PqPev2KBSjtXV3sGExE1k4/bhaw+F8Hg4zL
 hpYA==
X-Gm-Message-State: APjAAAUSBnlDUKZdj128UkCVwkdScBITSDMpCzPCPHjmD1/4Tfydcf3j
 TY782D/QRbIQFz2EpaaIA9Fh6yUr+plmoHXVFqI=
X-Google-Smtp-Source: APXvYqwNj2lNR8zkPP5TVPxY/VATfIT/aJe3quSYOm4zQswBRn0+u5KzYy1RDfjjdgLE7Q0aw/ZzSkZkvOwKf+EbbDU=
X-Received: by 2002:ac2:5b41:: with SMTP id i1mr4361174lfp.82.1579085276592;
 Wed, 15 Jan 2020 02:47:56 -0800 (PST)
MIME-Version: 1.0
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN>
 <m25zhdqg6w.fsf@HIDDEN>
In-Reply-To: <m25zhdqg6w.fsf@HIDDEN>
From: Evgeny Zajcev <lg.zevlg@HIDDEN>
Date: Wed, 15 Jan 2020 13:47:45 +0300
Message-ID: <CAO=W_Zo6HNDSouaQuaaWuNUbaiD9Ei6TmG+V3wkfXpR=iRtQ9A@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
To: Robert Pluim <rpluim@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000fb3db2059c2b7043"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39133
Cc: handa@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, 39133 <at> debbugs.gnu.org,
 YAMAMOTO Mitsuharu <mituharu@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000fb3db2059c2b7043
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

=D1=81=D1=80, 15 =D1=8F=D0=BD=D0=B2. 2020 =D0=B3. =D0=B2 11:25, Robert Plui=
m <rpluim@HIDDEN>:

> >>>>> On Wed, 15 Jan 2020 13:26:11 +0900, YAMAMOTO Mitsuharu <
> mituharu@HIDDEN> said:
>
>     YAMAMOTO> 0xFFFFFFFF comes from FONT_INVALID_CODE.
> font->driver->text_extents
>     YAMAMOTO> shouldn't be called if font->font->driver->encode_char
> returns it.
>
>     YAMAMOTO> diff --git a/src/font.c b/src/font.c
>     YAMAMOTO> index 2b90903c90..03e6176220 100644
>     YAMAMOTO> --- a/src/font.c
>     YAMAMOTO> +++ b/src/font.c
>     YAMAMOTO> @@ -4420,15 +4420,19 @@ font_fill_lglyph_metrics
> (Lisp_Object glyph, Lisp_Object font_object)
>     YAMAMOTO>  {
>     YAMAMOTO>    struct font *font =3D XFONT_OBJECT (font_object);
>     YAMAMOTO>    unsigned code =3D font->driver->encode_char (font,
> LGLYPH_CHAR (glyph));
>     YAMAMOTO> -  struct font_metrics metrics;
>     YAMAMOTO> -
>     YAMAMOTO> -  LGLYPH_SET_CODE (glyph, code);
>     YAMAMOTO> -  font->driver->text_extents (font, &code, 1, &metrics);
>     YAMAMOTO> -  LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
>     YAMAMOTO> -  LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
>     YAMAMOTO> -  LGLYPH_SET_WIDTH (glyph, metrics.width);
>     YAMAMOTO> -  LGLYPH_SET_ASCENT (glyph, metrics.ascent);
>     YAMAMOTO> -  LGLYPH_SET_DESCENT (glyph, metrics.descent);
>     YAMAMOTO> +
>     YAMAMOTO> +  if (code !=3D FONT_INVALID_CODE)
>     YAMAMOTO> +    {
>     YAMAMOTO> +      struct font_metrics metrics;
>     YAMAMOTO> +
>     YAMAMOTO> +      LGLYPH_SET_CODE (glyph, code);
>     YAMAMOTO> +      font->driver->text_extents (font, &code, 1, &metrics=
);
>     YAMAMOTO> +      LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
>     YAMAMOTO> +      LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
>     YAMAMOTO> +      LGLYPH_SET_WIDTH (glyph, metrics.width);
>     YAMAMOTO> +      LGLYPH_SET_ASCENT (glyph, metrics.ascent);
>     YAMAMOTO> +      LGLYPH_SET_DESCENT (glyph, metrics.descent);
>     YAMAMOTO> +    }
>     YAMAMOTO>  }
>
>
>     YAMAMOTO> But I'm not sure if it is ok to leave the code and
> metrics-related
>     YAMAMOTO> fields nil when encode_char returns FONT_INVALID_CODE.
> Handa-san?
>
> I don=CA=BCt know either, but your patch fixes the slowdown and I=CA=BCve=
 seen
> no negative effects yet.
>

Yeah, this patch fixes the slowdown!

--=20
lg

--000000000000fb3db2059c2b7043
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">=D1=81=D1=80, 15 =D1=8F=D0=BD=D0=B2. =
2020 =D0=B3. =D0=B2 11:25, Robert Pluim &lt;<a href=3D"mailto:rpluim@gmail.=
com">rpluim@HIDDEN</a>&gt;:<br></div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex">&gt;&gt;&gt;&gt;&gt; On Wed, 15 Jan 2020 13:26:11 +0900, YAM=
AMOTO Mitsuharu &lt;<a href=3D"mailto:mituharu@HIDDEN" target=
=3D"_blank">mituharu@HIDDEN</a>&gt; said:<br>
<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; 0xFFFFFFFF comes from FONT_INVALID_CODE. font-&g=
t;driver-&gt;text_extents<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; shouldn&#39;t be called if font-&gt;font-&gt;dri=
ver-&gt;encode_char returns it.<br>
<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; diff --git a/src/font.c b/src/font.c<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; index 2b90903c90..03e6176220 100644<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; --- a/src/font.c<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +++ b/src/font.c<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; @@ -4420,15 +4420,19 @@ font_fill_lglyph_metrics=
 (Lisp_Object glyph, Lisp_Object font_object)<br>
=C2=A0 =C2=A0 YAMAMOTO&gt;=C2=A0 {<br>
=C2=A0 =C2=A0 YAMAMOTO&gt;=C2=A0 =C2=A0 struct font *font =3D XFONT_OBJECT =
(font_object);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt;=C2=A0 =C2=A0 unsigned code =3D font-&gt;driver-&=
gt;encode_char (font, LGLYPH_CHAR (glyph));<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 struct font_metrics metrics;<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 LGLYPH_SET_CODE (glyph, code);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 font-&gt;driver-&gt;text_extents (font, =
&amp;code, 1, &amp;metrics);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 LGLYPH_SET_LBEARING (glyph, metrics.lbea=
ring);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 LGLYPH_SET_RBEARING (glyph, metrics.rbea=
ring);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 LGLYPH_SET_WIDTH (glyph, metrics.width);=
<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 LGLYPH_SET_ASCENT (glyph, metrics.ascent=
);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; -=C2=A0 LGLYPH_SET_DESCENT (glyph, metrics.desce=
nt);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 if (code !=3D FONT_INVALID_CODE)<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 {<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 struct font_metrics metric=
s;<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 LGLYPH_SET_CODE (glyph, co=
de);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 font-&gt;driver-&gt;text_e=
xtents (font, &amp;code, 1, &amp;metrics);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 LGLYPH_SET_LBEARING (glyph=
, metrics.lbearing);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 LGLYPH_SET_RBEARING (glyph=
, metrics.rbearing);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 LGLYPH_SET_WIDTH (glyph, m=
etrics.width);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 LGLYPH_SET_ASCENT (glyph, =
metrics.ascent);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 =C2=A0 LGLYPH_SET_DESCENT (glyph,=
 metrics.descent);<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; +=C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 YAMAMOTO&gt;=C2=A0 }<br>
<br>
<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; But I&#39;m not sure if it is ok to leave the co=
de and metrics-related<br>
=C2=A0 =C2=A0 YAMAMOTO&gt; fields nil when encode_char returns FONT_INVALID=
_CODE.=C2=A0 Handa-san?<br>
<br>
I don=CA=BCt know either, but your patch fixes the slowdown and I=CA=BCve s=
een<br>
no negative effects yet.<br></blockquote><div><br></div><div>Yeah, this pat=
ch fixes the slowdown!</div><div><br></div></div>-- <br><div dir=3D"ltr" cl=
ass=3D"gmail_signature">lg</div></div>

--000000000000fb3db2059c2b7043--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 15 Jan 2020 08:26:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 15 03:26:02 2020
Received: from localhost ([127.0.0.1]:34242 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1irdzx-0001zm-GQ
	for submit <at> debbugs.gnu.org; Wed, 15 Jan 2020 03:26:02 -0500
Received: from mail-wm1-f53.google.com ([209.85.128.53]:40919)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1irdzr-0001zR-Rg
 for 39133 <at> debbugs.gnu.org; Wed, 15 Jan 2020 03:25:56 -0500
Received: by mail-wm1-f53.google.com with SMTP id t14so16750814wmi.5
 for <39133 <at> debbugs.gnu.org>; Wed, 15 Jan 2020 00:25:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:date:message-id:mime-version
 :content-transfer-encoding;
 bh=CjcGgCoYhDWKc1GQ6nNS3oK9wP4g6HuVYSycC2wpx5s=;
 b=mZd76WI9tMOPqrtWJwXyiYuqOfJmgBkuAM4x6IvX36g+EijPjB+mtpltQINIp0dg2N
 1M9t6uEL+FURz8kWMIBvfYcQ2DVqjl3X3Bw4j1yax1+kgFTY77x/iJzThUURoVz9iPtS
 QmXXG7lL9z6uBZ0se2wz4koy8zSPhZBYrdkmu71u3TWu+6d4IIrLCs5cgGW+R3j8PhqS
 WkK9j8FSWF63QK7LLI4sIW7rPwzDewRPchkgfuDDm0ICqVAILMZ/zZ7W3AAsae4CdShN
 /1yPlhVjH3+cvJnmG/uGhwss4O/BSqK+O1z2fuIePpdLh7/0Zy04xHU0B1LqPZBYi536
 rmig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:message-id
 :mime-version:content-transfer-encoding;
 bh=CjcGgCoYhDWKc1GQ6nNS3oK9wP4g6HuVYSycC2wpx5s=;
 b=cSGCMzOrAYiC3ZS9e5j29Ig0RYkl4RXgclRLtgQBacjMMvLbapBGCqfI7xtc+3u/Tq
 KAlzYnBllmgGZStpcbxjNgWa9Baa8iBMncRy99Chx3tNE3gMFueV5Jb0w3tGPdwCSsDv
 dxjRdKCzQCuK4bGsYVzOEP1iZR/HDbQTNuOq4arEisfGx9gtH5auAzTNz3QrtU4yHTL8
 bYN5v3gbGgBfZQB6oa8zrBldF8Xbkcl0DoDJuazeP+XeZiNSDqXifQ8g7EZARQDfoi3p
 nWBesTah0fnBACIFytCmvRQDVoZZw5ai6qtieRrwHvmQb7W9hMn7mNPEnOFFpMZP4OBX
 W5TQ==
X-Gm-Message-State: APjAAAXaGcVNqS+cQksbiT6/sc0gNBoKpg+AqPyiPDzpf19KMfyQWrtz
 cBihubv59s59c6yhlkUdCbk=
X-Google-Smtp-Source: APXvYqwOs3Dm7xVF+ZlMoqYx9X8wNVpMZmnMwcgAa8/GQLXcS7zsHNsisfp4ZRyRaJz9qwYA74geVQ==
X-Received: by 2002:a05:600c:20e:: with SMTP id
 14mr24440859wmi.104.1579076745821; 
 Wed, 15 Jan 2020 00:25:45 -0800 (PST)
Received: from rpluim-mac ([149.5.228.1])
 by smtp.gmail.com with ESMTPSA id n189sm22877703wme.33.2020.01.15.00.25.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 15 Jan 2020 00:25:45 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: YAMAMOTO Mitsuharu <mituharu@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
 <wlmuape464.wl-mituharu@HIDDEN>
Date: Wed, 15 Jan 2020 09:25:43 +0100
Message-ID: <m25zhdqg6w.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Evgeny Zajcev <lg.zevlg@HIDDEN>, handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>>>>> On Wed, 15 Jan 2020 13:26:11 +0900, YAMAMOTO Mitsuharu <mituharu@math=
.s.chiba-u.ac.jp> said:

    YAMAMOTO> 0xFFFFFFFF comes from FONT_INVALID_CODE. font->driver->text_e=
xtents
    YAMAMOTO> shouldn't be called if font->font->driver->encode_char return=
s it.

    YAMAMOTO> diff --git a/src/font.c b/src/font.c
    YAMAMOTO> index 2b90903c90..03e6176220 100644
    YAMAMOTO> --- a/src/font.c
    YAMAMOTO> +++ b/src/font.c
    YAMAMOTO> @@ -4420,15 +4420,19 @@ font_fill_lglyph_metrics (Lisp_Object=
 glyph, Lisp_Object font_object)
    YAMAMOTO>  {
    YAMAMOTO>    struct font *font =3D XFONT_OBJECT (font_object);
    YAMAMOTO>    unsigned code =3D font->driver->encode_char (font, LGLYPH_=
CHAR (glyph));
    YAMAMOTO> -  struct font_metrics metrics;
    YAMAMOTO> -
    YAMAMOTO> -  LGLYPH_SET_CODE (glyph, code);
    YAMAMOTO> -  font->driver->text_extents (font, &code, 1, &metrics);
    YAMAMOTO> -  LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
    YAMAMOTO> -  LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
    YAMAMOTO> -  LGLYPH_SET_WIDTH (glyph, metrics.width);
    YAMAMOTO> -  LGLYPH_SET_ASCENT (glyph, metrics.ascent);
    YAMAMOTO> -  LGLYPH_SET_DESCENT (glyph, metrics.descent);
    YAMAMOTO> +
    YAMAMOTO> +  if (code !=3D FONT_INVALID_CODE)
    YAMAMOTO> +    {
    YAMAMOTO> +      struct font_metrics metrics;
    YAMAMOTO> +
    YAMAMOTO> +      LGLYPH_SET_CODE (glyph, code);
    YAMAMOTO> +      font->driver->text_extents (font, &code, 1, &metrics);
    YAMAMOTO> +      LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
    YAMAMOTO> +      LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
    YAMAMOTO> +      LGLYPH_SET_WIDTH (glyph, metrics.width);
    YAMAMOTO> +      LGLYPH_SET_ASCENT (glyph, metrics.ascent);
    YAMAMOTO> +      LGLYPH_SET_DESCENT (glyph, metrics.descent);
    YAMAMOTO> +    }
    YAMAMOTO>  }
=20
=20
    YAMAMOTO> But I'm not sure if it is ok to leave the code and metrics-re=
lated
    YAMAMOTO> fields nil when encode_char returns FONT_INVALID_CODE.  Handa=
-san?

I don=CA=BCt know either, but your patch fixes the slowdown and I=CA=BCve s=
een
no negative effects yet.

Robert




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 15 Jan 2020 04:26:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 14 23:26:17 2020
Received: from localhost ([127.0.0.1]:34052 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1iraG0-0000Tf-Ts
	for submit <at> debbugs.gnu.org; Tue, 14 Jan 2020 23:26:17 -0500
Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:55993)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mituharu@HIDDEN>) id 1iraFy-0000TS-N3
 for 39133 <at> debbugs.gnu.org; Tue, 14 Jan 2020 23:26:15 -0500
Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5])
 by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 4E961F08ED;
 Wed, 15 Jan 2020 13:26:11 +0900 (JST)
 (envelope-from mituharu@HIDDEN)
Date: Wed, 15 Jan 2020 13:26:11 +0900
Message-ID: <wlmuape464.wl-mituharu@HIDDEN>
From: YAMAMOTO Mitsuharu <mituharu@HIDDEN>
To: Robert Pluim <rpluim@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
In-Reply-To: <m2a76qropm.fsf@HIDDEN>
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN> <m2a76qropm.fsf@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
 FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.8 EasyPG/1.0.0 Emacs/26
 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
Organization: Faculty of Science, Chiba University
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
 Evgeny Zajcev <lg.zevlg@HIDDEN>, handa@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Wed, 15 Jan 2020 01:24:05 +0900,
Robert Pluim wrote:
>=20
> >>>>> On Tue, 14 Jan 2020 17:26:45 +0200, Eli Zaretskii <eliz@HIDDEN> sa=
id:
>=20
>     >> From: Evgeny Zajcev <lg.zevlg@HIDDEN>
>     >> Date: Tue, 14 Jan 2020 16:21:23 +0300
>     >>=20
>     >> I'm experiencing extreme Emacs slowdown when VARIATION SELECTOR-16=
 char
>     >> is used somewhere in Emacs buffer.  For example, I just executed:
>     >>=20
>     >> (insert "a\xfe0f")
>     >>=20
>     >> in *scratch* buffer.  Moving cursor (when this char is visible) be=
come
>     >> unbearable.  Here is the results of cpu profiling:
>     >>=20
>     >> - command-execute                                                 =
776  62%
>     >> - call-interactively                                             7=
76  62%
>     >> - funcall-interactively                                         67=
5  54%
>     >> - previous-line                                                476=
  38%
>     >> - line-move                                                   476 =
 38%
>     >> - line-move-1                                                476  =
38%
>     >> + vertical-motion                                           225  1=
8%
>=20
>     Eli> Does it help to set inhibit-compacting-font-caches non-nil?
>=20
>     >> As I remember I did not experienced something similar in Emacs 26/=
27
>=20
>     Eli> I don't think Emacs < 27 supported variation selectors, did it?
>=20
> It=CA=BCs coming from the caching in ftcrfont_glyph_extents:
>=20
>   row =3D glyph / METRICS_NCOLS_PER_ROW; <=3D=3D glyph =3D=3D 0xFFFFFFFF,=
 row -> 0x1FFFFFF
>   col =3D glyph % METRICS_NCOLS_PER_ROW;
>   if (row >=3D ftcrfont_info->metrics_nrows)
>     {
>       ftcrfont_info->metrics =3D
> 	xrealloc (ftcrfont_info->metrics,
> 		  sizeof (struct font_metrics *) * (row + 1));
>       memset (ftcrfont_info->metrics + ftcrfont_info->metrics_nrows, 0,
> 	      (sizeof (struct font_metrics *)
> 	       * (row + 1 - ftcrfont_info->metrics_nrows)));
>       ftcrfont_info->metrics_nrows =3D row + 1; <=3D=3D=3D we=CA=BCre upd=
ating
>   metrics_nrows, lets look in ftfont.h
>     }
>=20
> ftfont.h:
>=20
> #ifdef USE_CAIRO
>   cairo_scaled_font_t *cr_scaled_font;
>   /* Scale factor from the bitmap strike metrics in 1/64 pixels, used
>      as the hb_position_t value in HarfBuzz, to those in (scaled)
>      pixels.  The value is 0 for scalable fonts.  */
>   double bitmap_position_unit;
>   /* Font metrics cache.  */
>   struct font_metrics **metrics;
>   short metrics_nrows;
>   ^^^^^ oops! Now we end up calling xrealloc every time we enter
>   ftctfont_glyph_extents for that glyph.
>=20
> Of course, I don=CA=BCt think glyph should be 0xFFFFFFFF, but that=CA=BCs=
 a
> different problem.
>=20
> Robert

0xFFFFFFFF comes from FONT_INVALID_CODE. font->driver->text_extents
shouldn't be called if font->font->driver->encode_char returns it.

diff --git a/src/font.c b/src/font.c
index 2b90903c90..03e6176220 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4420,15 +4420,19 @@ font_fill_lglyph_metrics (Lisp_Object glyph, Lisp_O=
bject font_object)
 {
   struct font *font =3D XFONT_OBJECT (font_object);
   unsigned code =3D font->driver->encode_char (font, LGLYPH_CHAR (glyph));
-  struct font_metrics metrics;
-
-  LGLYPH_SET_CODE (glyph, code);
-  font->driver->text_extents (font, &code, 1, &metrics);
-  LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
-  LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
-  LGLYPH_SET_WIDTH (glyph, metrics.width);
-  LGLYPH_SET_ASCENT (glyph, metrics.ascent);
-  LGLYPH_SET_DESCENT (glyph, metrics.descent);
+
+  if (code !=3D FONT_INVALID_CODE)
+    {
+      struct font_metrics metrics;
+
+      LGLYPH_SET_CODE (glyph, code);
+      font->driver->text_extents (font, &code, 1, &metrics);
+      LGLYPH_SET_LBEARING (glyph, metrics.lbearing);
+      LGLYPH_SET_RBEARING (glyph, metrics.rbearing);
+      LGLYPH_SET_WIDTH (glyph, metrics.width);
+      LGLYPH_SET_ASCENT (glyph, metrics.ascent);
+      LGLYPH_SET_DESCENT (glyph, metrics.descent);
+    }
 }
=20
=20
But I'm not sure if it is ok to leave the code and metrics-related
fields nil when encode_char returns FONT_INVALID_CODE.  Handa-san?

				     YAMAMOTO Mitsuharu
				mituharu@HIDDEN




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 14 Jan 2020 16:24:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 14 11:24:14 2020
Received: from localhost ([127.0.0.1]:33458 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1irOzF-0005yR-PS
	for submit <at> debbugs.gnu.org; Tue, 14 Jan 2020 11:24:14 -0500
Received: from mail-wr1-f46.google.com ([209.85.221.46]:46204)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rpluim@HIDDEN>) id 1irOzF-0005yC-0O
 for 39133 <at> debbugs.gnu.org; Tue, 14 Jan 2020 11:24:13 -0500
Received: by mail-wr1-f46.google.com with SMTP id z7so12743640wrl.13
 for <39133 <at> debbugs.gnu.org>; Tue, 14 Jan 2020 08:24:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :mime-version:content-transfer-encoding;
 bh=wvb7F2prjRaAUSkxxWH1A24fsF07KXsSWyOt7q5xdkQ=;
 b=Zhjmm90gruWNvv7gwwPfeJ8xD2Q6Ye44KCeMbQXTvkTMM7mvtlnoPxan8pmc7riaFg
 cIVxwj6DwKnf714ZDQuhajvYbOhkODgOJWC1bdYe/2qM4P6BKVXKDXU2MKCwUHy5wui5
 cAe/6XBX1fVu4ZqBoh7tLQrJv1inY0Z5T5UicYyWC3ZZ5bO78ZkY2aLsgDhcB8nT1PK7
 LMuJOo6TmRYFKvLZHz185wM4GdrhrKe2Lj/HS8Ug7cpohNOYjxl/IQjHR9pnXYlMlUAw
 dK/I6iMMxPFiEEv3CMG5LgSYhXLqTlsVstsXQltIWY3I7WFBpet3e6ksOuhijSr8P0es
 Rk2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:mime-version:content-transfer-encoding;
 bh=wvb7F2prjRaAUSkxxWH1A24fsF07KXsSWyOt7q5xdkQ=;
 b=dUY5LDM5tUaG2uoi4ahz8vqHZrwGuEywTCEjnfarL/5jHBI85iEZIf9q1q81EiRtX2
 Rc4+0iwwYwIzBvi/6BfI8qHEkeUNMNJJQ3yvsVtN7oGB28RXhbjEkTG6iwn0fWGl7C2b
 6oB87pR69iN4HaXOn7tQNwk0dk1pF0XpngHZ0D3CIY4RqDyd1s0EoIMsVTQPVD6A9Pxn
 cdhMmT5KvN2Gxg95i/wO6GFKLrf2nIpY+HlvLAOP6J5kS4DZZyJLJGNpKoPvZz6ANpl4
 rlLwJ/4X4K+XEdwk8YwQAayYK6EU75SJHpol5pvD19wWYDQY5qllaqkhhj8/4hupCXfl
 iFeQ==
X-Gm-Message-State: APjAAAUALi9AJY6wEMSg9NMHmUmBjkEEYfqo8lMI7+jRKlnKKpuzB7BE
 wM3ofh49wKWF1KsOl0LrU5hnDjifJqI=
X-Google-Smtp-Source: APXvYqzzOrGlg1c+UgM7FQEBWPyNLpEkemF323LNTfqFOSj2v8DQ8JDiaJn9MpxCE9bfEHtTEhrizg==
X-Received: by 2002:a05:6000:1047:: with SMTP id
 c7mr26692873wrx.341.1579019046513; 
 Tue, 14 Jan 2020 08:24:06 -0800 (PST)
Received: from rpluim-mac ([149.5.228.1])
 by smtp.gmail.com with ESMTPSA id u8sm19243036wmm.15.2020.01.14.08.24.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 14 Jan 2020 08:24:05 -0800 (PST)
From: Robert Pluim <rpluim@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 <83lfqa5aa2.fsf@HIDDEN>
Date: Tue, 14 Jan 2020 17:24:05 +0100
In-Reply-To: <83lfqa5aa2.fsf@HIDDEN> (Eli Zaretskii's message of "Tue, 14 Jan
 2020 17:26:45 +0200")
Message-ID: <m2a76qropm.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org, Evgeny Zajcev <lg.zevlg@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

>>>>> On Tue, 14 Jan 2020 17:26:45 +0200, Eli Zaretskii <eliz@HIDDEN> said:

    >> From: Evgeny Zajcev <lg.zevlg@HIDDEN>
    >> Date: Tue, 14 Jan 2020 16:21:23 +0300
    >>=20
    >> I'm experiencing extreme Emacs slowdown when VARIATION SELECTOR-16 c=
har
    >> is used somewhere in Emacs buffer.  For example, I just executed:
    >>=20
    >> (insert "a\xfe0f")
    >>=20
    >> in *scratch* buffer.  Moving cursor (when this char is visible) beco=
me
    >> unbearable.  Here is the results of cpu profiling:
    >>=20
    >> - command-execute                                                 77=
6  62%
    >> - call-interactively                                             776=
  62%
    >> - funcall-interactively                                         675 =
 54%
    >> - previous-line                                                476  =
38%
    >> - line-move                                                   476  3=
8%
    >> - line-move-1                                                476  38%
    >> + vertical-motion                                           225  18%

    Eli> Does it help to set inhibit-compacting-font-caches non-nil?

    >> As I remember I did not experienced something similar in Emacs 26/27

    Eli> I don't think Emacs < 27 supported variation selectors, did it?

It=CA=BCs coming from the caching in ftcrfont_glyph_extents:

  row =3D glyph / METRICS_NCOLS_PER_ROW; <=3D=3D glyph =3D=3D 0xFFFFFFFF, r=
ow -> 0x1FFFFFF
  col =3D glyph % METRICS_NCOLS_PER_ROW;
  if (row >=3D ftcrfont_info->metrics_nrows)
    {
      ftcrfont_info->metrics =3D
	xrealloc (ftcrfont_info->metrics,
		  sizeof (struct font_metrics *) * (row + 1));
      memset (ftcrfont_info->metrics + ftcrfont_info->metrics_nrows, 0,
	      (sizeof (struct font_metrics *)
	       * (row + 1 - ftcrfont_info->metrics_nrows)));
      ftcrfont_info->metrics_nrows =3D row + 1; <=3D=3D=3D we=CA=BCre updat=
ing
  metrics_nrows, lets look in ftfont.h
    }

ftfont.h:

#ifdef USE_CAIRO
  cairo_scaled_font_t *cr_scaled_font;
  /* Scale factor from the bitmap strike metrics in 1/64 pixels, used
     as the hb_position_t value in HarfBuzz, to those in (scaled)
     pixels.  The value is 0 for scalable fonts.  */
  double bitmap_position_unit;
  /* Font metrics cache.  */
  struct font_metrics **metrics;
  short metrics_nrows;
  ^^^^^ oops! Now we end up calling xrealloc every time we enter
  ftctfont_glyph_extents for that glyph.

Of course, I don=CA=BCt think glyph should be 0xFFFFFFFF, but that=CA=BCs a
different problem.

Robert




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at 39133 <at> debbugs.gnu.org:


Received: (at 39133) by debbugs.gnu.org; 14 Jan 2020 15:26:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 14 10:26:45 2020
Received: from localhost ([127.0.0.1]:33410 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1irO5c-0004Uq-UL
	for submit <at> debbugs.gnu.org; Tue, 14 Jan 2020 10:26:45 -0500
Received: from eggs.gnu.org ([209.51.188.92]:32776)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1irO5a-0004Ua-NY
 for 39133 <at> debbugs.gnu.org; Tue, 14 Jan 2020 10:26:43 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:47308)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1irO5V-0002t4-2B; Tue, 14 Jan 2020 10:26:37 -0500
Received: from [176.228.60.248] (port=4191 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1irO5T-0006gH-Us; Tue, 14 Jan 2020 10:26:36 -0500
Date: Tue, 14 Jan 2020 17:26:45 +0200
Message-Id: <83lfqa5aa2.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Evgeny Zajcev <lg.zevlg@HIDDEN>
In-reply-to: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
 (message from Evgeny Zajcev on Tue, 14 Jan 2020 16:21:23 +0300)
Subject: Re: bug#39133: 28.0.50; Emacs slowdown on special char
References: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 39133
Cc: 39133 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Evgeny Zajcev <lg.zevlg@HIDDEN>
> Date: Tue, 14 Jan 2020 16:21:23 +0300
> 
> I'm experiencing extreme Emacs slowdown when VARIATION SELECTOR-16 char
> is used somewhere in Emacs buffer.  For example, I just executed:
> 
>    (insert "a\xfe0f")
> 
> in *scratch* buffer.  Moving cursor (when this char is visible) become
> unbearable.  Here is the results of cpu profiling:
> 
>   - command-execute                                                 776  62%
>    - call-interactively                                             776  62%
>     - funcall-interactively                                         675  54%
>      - previous-line                                                476  38%
>       - line-move                                                   476  38%
>        - line-move-1                                                476  38%
>         + vertical-motion                                           225  18%

Does it help to set inhibit-compacting-font-caches non-nil?

> As I remember I did not experienced something similar in Emacs 26/27

I don't think Emacs < 27 supported variation selectors, did it?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 14 Jan 2020 13:21:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 14 08:21:46 2020
Received: from localhost ([127.0.0.1]:60795 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1irM8f-0001E6-Na
	for submit <at> debbugs.gnu.org; Tue, 14 Jan 2020 08:21:46 -0500
Received: from lists.gnu.org ([209.51.188.17]:56432)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <lg.zevlg@HIDDEN>) id 1irM8d-0001Dw-CS
 for submit <at> debbugs.gnu.org; Tue, 14 Jan 2020 08:21:44 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:46609)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <lg.zevlg@HIDDEN>) id 1irM8Z-0003SC-Vu
 for bug-gnu-emacs@HIDDEN; Tue, 14 Jan 2020 08:21:43 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM,
 HTML_MESSAGE,URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <lg.zevlg@HIDDEN>) id 1irM8W-0001TS-Ty
 for bug-gnu-emacs@HIDDEN; Tue, 14 Jan 2020 08:21:39 -0500
Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]:35022)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <lg.zevlg@HIDDEN>) id 1irM8W-0001S1-EK
 for bug-gnu-emacs@HIDDEN; Tue, 14 Jan 2020 08:21:36 -0500
Received: by mail-lj1-x22e.google.com with SMTP id j1so14302874lja.2
 for <bug-gnu-emacs@HIDDEN>; Tue, 14 Jan 2020 05:21:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=dT1+R2R1DcDzZHNwGtyrIvDJkPjfpNefyIyHE6YckKk=;
 b=FMDIF3MY1Qga1FwsVFOlNjz9DMd3+9Ev8mn7XHxiXacBLi2H7RmL0TxsqtmYGjW20x
 qiRXHa7XLZKYRXB33m5FqTfTNh7Pbuoc7wB093LSpUTWA0pyV5dQprj/U8u8XOCmZUMG
 mSvgEtRyY2HDhcMiQsKqiMdEyxiYrcWx8FZQDgU4DVZFpR/NrpIHs8TAGnUkt03iV/D8
 reekx5mJwhNuIrbCptJW4KWg6bfQ9/lJ8JbwibDqqzT0D7jUitaX2S0vubYzblAalZoq
 Fw16HPA4wDsMOeIO2QRK12wemySuJralDVDtil+aSHRMGAR0gOUP8x/+EGt0kH51JPll
 oCnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=dT1+R2R1DcDzZHNwGtyrIvDJkPjfpNefyIyHE6YckKk=;
 b=F/SHVCIiHcl+O2hirFvCZzyi4A+82Tw0f7F4Muabm3faiyMmd/kmQtrDBsbGIjtSBM
 jyg3fckgwHoCV4eCJPA/AaGZZkispKz01gGbAWXc5Wxbfm6++Px9xlItVXxO5ObCqazv
 AnvWPsuOhGL3rWLECIIrhVJnmzfTMxzKSMXJKPG0cg8+ZstIWiMYu+kRwt53631iV/YL
 SxQUleNHjtzEZmZC8vQ+osVmTcvVuInkhqSUNYEVx1aavQUTbeMyAEcL51FST35KI+5g
 s4hOlnwVD+2uHeTsqNpvn7M3RNN+14QcowgTsIFwDNheMQ+zyuBFOh45rR9J5R1gkWfH
 hFWw==
X-Gm-Message-State: APjAAAWOVnj5eKtrcnZj5jLEUE1SU0Zl0JAH3OSSqOHr6mR/lMpW0xAK
 oahZoH+YfML66EtSjdu/ieeYo0q36LCWdjwHLqyZrPXh
X-Google-Smtp-Source: APXvYqwkz36uxBEUAxilxzrSfOuBdJ8WxV5GxI49vvkiz0fuqiAmwMCg6hS7HA1QB6oFGEg8ept/Fo5Srlk0Qas4LGM=
X-Received: by 2002:a2e:7d01:: with SMTP id y1mr14632170ljc.100.1579008094039; 
 Tue, 14 Jan 2020 05:21:34 -0800 (PST)
MIME-Version: 1.0
From: Evgeny Zajcev <lg.zevlg@HIDDEN>
Date: Tue, 14 Jan 2020 16:21:23 +0300
Message-ID: <CAO=W_ZrSPweeZ+kKUruMnuHuaJD3KqLMSKr53qoGe4X5-f8LeA@HIDDEN>
Subject: 28.0.50; Emacs slowdown on special char
To: bug-gnu-emacs@HIDDEN
Content-Type: multipart/alternative; boundary="0000000000008af124059c1978f3"
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-Received-From: 2a00:1450:4864:20::22e
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

--0000000000008af124059c1978f3
Content-Type: text/plain; charset="UTF-8"

I'm experiencing extreme Emacs slowdown when VARIATION SELECTOR-16 char
is used somewhere in Emacs buffer.  For example, I just executed:

   (insert "a\xfe0f")

in *scratch* buffer.  Moving cursor (when this char is visible) become
unbearable.  Here is the results of cpu profiling:

  - command-execute                                                 776  62%
   - call-interactively                                             776  62%
    - funcall-interactively                                         675  54%
     - previous-line                                                476  38%
      - line-move                                                   476  38%
       - line-move-1                                                476  38%
        + vertical-motion                                           225  18%
     - next-line                                                    198  15%
      - line-move                                                   198  15%
       - line-move-1                                                198  15%
        + vertical-motion                                            94   7%
     + execute-extended-command                                       1   0%
    + byte-code                                                     101   8%
    auto-compose-chars                                              185  14%
  + timer-event-handler                                             175  14%
  - redisplay_internal (C function)                                  75   6%
     auto-compose-chars                                              75   6%
  - ...                                                              30   2%
     Automatic GC                                                    30   2%

As I remember I did not experienced something similar in Emacs 26/27

Thanks

--------------------
In GNU Emacs 28.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.18.9,
cairo version 1.14.6)
 of 2020-01-13 built on wrt
Repository revision: 7c5d6a2afc6c23a7fff8456f506ee2aa2d37a3b9
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description: Ubuntu 16.04.1 LTS

Recent messages:
next-line: End of buffer [2 times]
Mark activated [2 times]
CPU profiler stopped
CPU profiler started
Mark set
Quit
Mark set
CPU profiler stopped
CPU profiler started
Mark set

Configured using:
 'configure --with-modules --with-cairo'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY
INOTIFY GNUTLS LIBXML2 FREETYPE HARFBUZZ LIBOTF ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 XDBE XIM MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LC_MONETARY: ru_RU.UTF-8
  value of $LC_NUMERIC: ru_RU.UTF-8
  value of $LC_TIME: ru_RU.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tracking-mode: t
  telega-mode-line-mode: t
  icomplete-mode: t
  save-place-mode: t
  pyvenv-mode: t
  shell-dirtrack-mode: t
  display-time-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  override-global-mode: t
  cl-old-struct-compat-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t

Load-path shadows:
/home/lg/.emacs.d/elpa/circe-20180105.1158/tracking hides
/home/lg/.emacs.d/elpa/tracking-20171210.2102/tracking
/home/lg/.emacs.d/elpa/circe-20180105.1158/shorten hides
/home/lg/.emacs.d/elpa/tracking-20171210.2102/shorten
~/dev/xelb/xcb-renderutil hides
/home/lg/.emacs.d/elpa/xelb-0.18/xcb-renderutil
~/dev/xelb/xcb-xinput hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xinput
~/dev/xelb/xcb-shape hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-shape
~/dev/xelb/xcb-icccm hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-icccm
~/dev/xelb/xcb-dri3 hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-dri3
~/dev/xelb/xcb-xc_misc hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xc_misc
~/dev/xelb/xcb-render hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-render
~/dev/xelb/xcb-xf86vidmode hides
/home/lg/.emacs.d/elpa/xelb-0.18/xcb-xf86vidmode
~/dev/xelb/xcb-cursor hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-cursor
~/dev/xelb/xcb-dri2 hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-dri2
~/dev/xelb/xcb-xprint hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xprint
~/dev/xelb/xcb-systemtray hides
/home/lg/.emacs.d/elpa/xelb-0.18/xcb-systemtray
~/dev/xelb/xcb-composite hides
/home/lg/.emacs.d/elpa/xelb-0.18/xcb-composite
~/dev/xelb/xcb-types hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-types
~/dev/xelb/xcb-dpms hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-dpms
~/dev/xelb/xcb-bigreq hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-bigreq
~/dev/xelb/xcb-xselinux hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xselinux
~/dev/xelb/xcb-xproto hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xproto
~/dev/xelb/xcb-xlib hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xlib
~/dev/xelb/xcb-xf86dri hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xf86dri
~/dev/xelb/xcb hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb
~/dev/xelb/xcb-xembed hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xembed
~/dev/xelb/xcb-present hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-present
~/dev/xelb/xcb-screensaver hides
/home/lg/.emacs.d/elpa/xelb-0.18/xcb-screensaver
~/dev/xelb/xcb-shm hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-shm
~/dev/xelb/xcb-ge hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-ge
~/dev/xelb/xcb-xinerama hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xinerama
~/dev/xelb/xcb-xim hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xim
~/dev/xelb/xcb-damage hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-damage
~/dev/xelb/xcb-glx hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-glx
~/dev/xelb/xcb-sync hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-sync
~/dev/xelb/xcb-res hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-res
~/dev/xelb/xcb-xfixes hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xfixes
~/dev/xelb/xcb-xtest hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xtest
~/dev/xelb/xcb-keysyms hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-keysyms
~/dev/xelb/xcb-ewmh hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-ewmh
~/dev/xelb/el_client hides /home/lg/.emacs.d/elpa/xelb-0.18/el_client
~/dev/xelb/xcb-record hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-record
~/dev/xelb/xcb-xv hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xv
~/dev/xelb/xcb-randr hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-randr
~/dev/xelb/xcb-xkb hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xkb
~/dev/xelb/xcb-xevie hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xevie
~/dev/xelb/xcb-xvmc hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xvmc
~/dev/xelb/xelb hides /home/lg/.emacs.d/elpa/xelb-0.18/xelb

Features:
(shadow sort mail-extr emacsbug sendmail descr-text bug-reference
cc-mode cc-fonts cc-guess cc-menus cc-styles cc-align apropos profiler
find-func disp-table fill-column-indicator vc vc-dispatcher vc-git
smerge-mode git log-edit pcvs-util add-log misearch multi-isearch
wordfreq face-remap rect mm-archive gnutls network-stream url-cache
multitran mule-util hl-line tracking shorten telega telega-modes
telega-webpage telega-tme visual-fill-column telega-chat telega-i18n
telega-company telega-user telega-sticker telega-notifications
notifications dbus telega-msg telega-vvnote telega-media telega-root
telega-voip telega-ffplay telega-info telega-filter telega-ins
telega-inline telega-tdlib telega-util color svg dom xml ewoc
telega-server telega-core cursor-sensor telega-customize exwm-wconf
winner exwm-misc exwm exwm-match exwm-input xcb-keysyms exwm-manage
exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core
xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types work desktop frameset
gnus-demon nntp gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail
mail-source utf7 netrc gnus-spec gnus-win nnoo gnus-int gnus-range
message rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader gnus nnheader gnus-util rmail
rmail-loaddefs text-property-search mail-utils autoinsert cal-menu
calendar cal-loaddefs icomplete saveplace cython-mode company-capf
company pcase help-fns radix-tree elpy find-file-in-project ivy delsel
ivy-overlay ffap windmove diff-mode elpy-shell pyvenv elpy-profile
elpy-django elpy-refactor python tramp-sh tramp tramp-loaddefs trampver
tramp-integration tramp-compat parse-time iso8601 time-date ls-lisp
format-spec grep files-x etags fileloop generator xref project cus-edit
cus-start cus-load wid-edit python-mode info-look which-func imenu shell
pcomplete hippie-exp flymake-proc flymake warnings thingatpt compile
cc-cmds cc-engine cc-vars cc-defs dot-mode gist dired dired-loaddefs
gh-gist gh-oauth gh-api logito gh-cache pcache gh-auth gh-url url-http
url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-gw nsm rmc puny timezone eieio-base server time
google-translate google-translate-default-ui google-translate-core-ui
google-translate-core google-translate-tk url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap whitespace undo-tree diff ido comint ansi-color ring avoid
ibuffer-vc ibuf-ext ibuffer ibuffer-loaddefs edmacro kmacro
browse-kill-ring derived cl cl-extra help-mode use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core tex-site
gh-common gh-profile rx s marshal eieio-compat dash advice info package
easymenu browse-url url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer 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 composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
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 threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 844236 204685)
 (symbols 48 53129 1)
 (strings 32 212317 6977)
 (string-bytes 1 7670144)
 (vectors 16 104746)
 (vector-slots 8 3029493 25214)
 (floats 8 5990 341)
 (intervals 56 26458 1076)
 (buffers 1000 53)
 (heap 1024 91340 6613))

-- 
lg

--0000000000008af124059c1978f3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I&#39;m experiencing extreme Emacs slowdown when VARIATION=
 SELECTOR-16 char<br>is used somewhere in Emacs buffer.=C2=A0 For example, =
I just executed:<br><br>=C2=A0 =C2=A0(insert &quot;a\xfe0f&quot;)<br><br>in=
 *scratch* buffer.=C2=A0 Moving cursor (when this char is visible) become<b=
r>unbearable.=C2=A0 Here is the results of cpu profiling:<br><br>=C2=A0 - c=
ommand-execute =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 776 =C2=A062%<br>=C2=A0 =C2=A0- call-int=
eractively =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 776 =C2=A062%<br>=C2=A0 =C2=A0 - funcall-interactively =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 675 =C2=
=A054%<br>=C2=A0 =C2=A0 =C2=A0- previous-line =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0476 =C2=
=A038%<br>=C2=A0 =C2=A0 =C2=A0 - line-move =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 476 =
=C2=A038%<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0- line-move-1 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A047=
6 =C2=A038%<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 + vertical-motion =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 225 =C2=A018%<b=
r>=C2=A0 =C2=A0 =C2=A0- next-line =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0198 =C2=
=A015%<br>=C2=A0 =C2=A0 =C2=A0 - line-move =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 198 =
=C2=A015%<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0- line-move-1 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A019=
8 =C2=A015%<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 + vertical-motion =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A094 =C2=A0=
 7%<br>=C2=A0 =C2=A0 =C2=A0+ execute-extended-command =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1 =C2=A0 0%<br>=C2=A0 =C2=A0 + byte-=
code =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 101 =C2=A0 8%<br>=C2=A0 =C2=A0 auto-=
compose-chars =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0185 =C2=A014%<br>=C2=A0 + timer-event-handler =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 175 =C2=A014%<br>=C2=A0 - redisplay_internal (C function) =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A075 =C2=A0 6%<br>=C2=A0 =C2=A0 =C2=A0auto-=
compose-chars =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A075 =C2=A0 6%<br>=C2=A0 - ... =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A030 =C2=A0 2%<br>=C2=A0 =
=C2=A0 =C2=A0Automatic GC =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A030 =C2=A0 2%<br>=
<br>As I remember I did not experienced something similar in Emacs 26/27<br=
><br>Thanks<br><br>--------------------<br>In GNU Emacs 28.0.50 (build 3, x=
86_64-pc-linux-gnu, GTK+ Version 3.18.9, cairo version 1.14.6)<br>=C2=A0of =
2020-01-13 built on wrt<br>Repository revision: 7c5d6a2afc6c23a7fff8456f506=
ee2aa2d37a3b9<br>Repository branch: master<br>Windowing system distributor =
&#39;The X.Org Foundation&#39;, version 11.0.11804000<br>System Description=
: Ubuntu 16.04.1 LTS<br><br>Recent messages:<br>next-line: End of buffer [2=
 times]<br>Mark activated [2 times]<br>CPU profiler stopped<br>CPU profiler=
 started<br>Mark set<br>Quit<br>Mark set<br>CPU profiler stopped<br>CPU pro=
filer started<br>Mark set<br><br>Configured using:<br>=C2=A0&#39;configure =
--with-modules --with-cairo&#39;<br><br>Configured features:<br>XPM JPEG TI=
FF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY<br>INOTIFY GNUTLS LI=
BXML2 FREETYPE HARFBUZZ LIBOTF ZLIB TOOLKIT_SCROLL_BARS<br>GTK3 X11 XDBE XI=
M MODULES THREADS JSON PDUMPER LCMS2 GMP<br><br>Important settings:<br>=C2=
=A0 value of $LC_MONETARY: ru_RU.UTF-8<br>=C2=A0 value of $LC_NUMERIC: ru_R=
U.UTF-8<br>=C2=A0 value of $LC_TIME: ru_RU.UTF-8<br>=C2=A0 value of $LANG: =
en_US.UTF-8<br>=C2=A0 locale-coding-system: utf-8-unix<br><br>Major mode: L=
isp Interaction<br><br>Minor modes in effect:<br>=C2=A0 tracking-mode: t<br=
>=C2=A0 telega-mode-line-mode: t<br>=C2=A0 icomplete-mode: t<br>=C2=A0 save=
-place-mode: t<br>=C2=A0 pyvenv-mode: t<br>=C2=A0 shell-dirtrack-mode: t<br=
>=C2=A0 display-time-mode: t<br>=C2=A0 global-undo-tree-mode: t<br>=C2=A0 u=
ndo-tree-mode: t<br>=C2=A0 override-global-mode: t<br>=C2=A0 cl-old-struct-=
compat-mode: t<br>=C2=A0 global-eldoc-mode: t<br>=C2=A0 eldoc-mode: t<br>=
=C2=A0 mouse-wheel-mode: t<br>=C2=A0 file-name-shadow-mode: t<br>=C2=A0 glo=
bal-font-lock-mode: t<br>=C2=A0 auto-composition-mode: t<br>=C2=A0 auto-enc=
ryption-mode: t<br>=C2=A0 auto-compression-mode: t<br>=C2=A0 column-number-=
mode: t<br>=C2=A0 line-number-mode: t<br>=C2=A0 auto-fill-function: do-auto=
-fill<br>=C2=A0 transient-mark-mode: t<br><br>Load-path shadows:<br>/home/l=
g/.emacs.d/elpa/circe-20180105.1158/tracking hides /home/lg/.emacs.d/elpa/t=
racking-20171210.2102/tracking<br>/home/lg/.emacs.d/elpa/circe-20180105.115=
8/shorten hides /home/lg/.emacs.d/elpa/tracking-20171210.2102/shorten<br>~/=
dev/xelb/xcb-renderutil hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-renderut=
il<br>~/dev/xelb/xcb-xinput hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xinp=
ut<br>~/dev/xelb/xcb-shape hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-shape=
<br>~/dev/xelb/xcb-icccm hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-icccm<b=
r>~/dev/xelb/xcb-dri3 hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-dri3<br>~/=
dev/xelb/xcb-xc_misc hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xc_misc<br>=
~/dev/xelb/xcb-render hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-render<br>=
~/dev/xelb/xcb-xf86vidmode hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xf86v=
idmode<br>~/dev/xelb/xcb-cursor hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-=
cursor<br>~/dev/xelb/xcb-dri2 hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-dr=
i2<br>~/dev/xelb/xcb-xprint hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xpri=
nt<br>~/dev/xelb/xcb-systemtray hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-=
systemtray<br>~/dev/xelb/xcb-composite hides /home/lg/.emacs.d/elpa/xelb-0.=
18/xcb-composite<br>~/dev/xelb/xcb-types hides /home/lg/.emacs.d/elpa/xelb-=
0.18/xcb-types<br>~/dev/xelb/xcb-dpms hides /home/lg/.emacs.d/elpa/xelb-0.1=
8/xcb-dpms<br>~/dev/xelb/xcb-bigreq hides /home/lg/.emacs.d/elpa/xelb-0.18/=
xcb-bigreq<br>~/dev/xelb/xcb-xselinux hides /home/lg/.emacs.d/elpa/xelb-0.1=
8/xcb-xselinux<br>~/dev/xelb/xcb-xproto hides /home/lg/.emacs.d/elpa/xelb-0=
.18/xcb-xproto<br>~/dev/xelb/xcb-xlib hides /home/lg/.emacs.d/elpa/xelb-0.1=
8/xcb-xlib<br>~/dev/xelb/xcb-xf86dri hides /home/lg/.emacs.d/elpa/xelb-0.18=
/xcb-xf86dri<br>~/dev/xelb/xcb hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb<b=
r>~/dev/xelb/xcb-xembed hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xembed<b=
r>~/dev/xelb/xcb-present hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-present=
<br>~/dev/xelb/xcb-screensaver hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-s=
creensaver<br>~/dev/xelb/xcb-shm hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb=
-shm<br>~/dev/xelb/xcb-ge hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-ge<br>=
~/dev/xelb/xcb-xinerama hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xinerama=
<br>~/dev/xelb/xcb-xim hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xim<br>~/=
dev/xelb/xcb-damage hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-damage<br>~/=
dev/xelb/xcb-glx hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-glx<br>~/dev/xe=
lb/xcb-sync hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-sync<br>~/dev/xelb/x=
cb-res hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-res<br>~/dev/xelb/xcb-xfi=
xes hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xfixes<br>~/dev/xelb/xcb-xte=
st hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-xtest<br>~/dev/xelb/xcb-keysy=
ms hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-keysyms<br>~/dev/xelb/xcb-ewm=
h hides /home/lg/.emacs.d/elpa/xelb-0.18/xcb-ewmh<br>~/dev/xelb/el_client h=
ides /home/lg/.emacs.d/elpa/xelb-0.18/el_client<br>~/dev/xelb/xcb-record hi=
des /home/lg/.emacs.d/elpa/xelb-0.18/xcb-record<br>~/dev/xelb/xcb-xv hides =
/home/lg/.emacs.d/elpa/xelb-0.18/xcb-xv<br>~/dev/xelb/xcb-randr hides /home=
/lg/.emacs.d/elpa/xelb-0.18/xcb-randr<br>~/dev/xelb/xcb-xkb hides /home/lg/=
.emacs.d/elpa/xelb-0.18/xcb-xkb<br>~/dev/xelb/xcb-xevie hides /home/lg/.ema=
cs.d/elpa/xelb-0.18/xcb-xevie<br>~/dev/xelb/xcb-xvmc hides /home/lg/.emacs.=
d/elpa/xelb-0.18/xcb-xvmc<br>~/dev/xelb/xelb hides /home/lg/.emacs.d/elpa/x=
elb-0.18/xelb<br><br>Features:<br>(shadow sort mail-extr emacsbug sendmail =
descr-text bug-reference<br>cc-mode cc-fonts cc-guess cc-menus cc-styles cc=
-align apropos profiler<br>find-func disp-table fill-column-indicator vc vc=
-dispatcher vc-git<br>smerge-mode git log-edit pcvs-util add-log misearch m=
ulti-isearch<br>wordfreq face-remap rect mm-archive gnutls network-stream u=
rl-cache<br>multitran mule-util hl-line tracking shorten telega telega-mode=
s<br>telega-webpage telega-tme visual-fill-column telega-chat telega-i18n<b=
r>telega-company telega-user telega-sticker telega-notifications<br>notific=
ations dbus telega-msg telega-vvnote telega-media telega-root<br>telega-voi=
p telega-ffplay telega-info telega-filter telega-ins<br>telega-inline teleg=
a-tdlib telega-util color svg dom xml ewoc<br>telega-server telega-core cur=
sor-sensor telega-customize exwm-wconf<br>winner exwm-misc exwm exwm-match =
exwm-input xcb-keysyms exwm-manage<br>exwm-floating xcb-cursor xcb-render e=
xwm-layout exwm-workspace exwm-core<br>xcb-ewmh xcb-icccm xcb xcb-xproto xc=
b-types work desktop frameset<br>gnus-demon nntp gnus-group gnus-undo gnus-=
start gnus-cloud nnimap nnmail<br>mail-source utf7 netrc gnus-spec gnus-win=
 nnoo gnus-int gnus-range<br>message rfc822 mml mml-sec epa epg epg-config =
mm-decode mm-bodies<br>mm-encode mailabbrev gmm-utils mailheader gnus nnhea=
der gnus-util rmail<br>rmail-loaddefs text-property-search mail-utils autoi=
nsert cal-menu<br>calendar cal-loaddefs icomplete saveplace cython-mode com=
pany-capf<br>company pcase help-fns radix-tree elpy find-file-in-project iv=
y delsel<br>ivy-overlay ffap windmove diff-mode elpy-shell pyvenv elpy-prof=
ile<br>elpy-django elpy-refactor python tramp-sh tramp tramp-loaddefs tramp=
ver<br>tramp-integration tramp-compat parse-time iso8601 time-date ls-lisp<=
br>format-spec grep files-x etags fileloop generator xref project cus-edit<=
br>cus-start cus-load wid-edit python-mode info-look which-func imenu shell=
<br>pcomplete hippie-exp flymake-proc flymake warnings thingatpt compile<br=
>cc-cmds cc-engine cc-vars cc-defs dot-mode gist dired dired-loaddefs<br>gh=
-gist gh-oauth gh-api logito gh-cache pcache gh-auth gh-url url-http<br>url=
-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums<br>mail-prsvr u=
rl-gw nsm rmc puny timezone eieio-base server time<br>google-translate goog=
le-translate-default-ui google-translate-core-ui<br>google-translate-core g=
oogle-translate-tk url url-proxy url-privacy<br>url-expand url-methods url-=
history url-cookie url-domsuf url-util<br>mailcap whitespace undo-tree diff=
 ido comint ansi-color ring avoid<br>ibuffer-vc ibuf-ext ibuffer ibuffer-lo=
addefs edmacro kmacro<br>browse-kill-ring derived cl cl-extra help-mode use=
-package<br>use-package-ensure use-package-delight use-package-diminish<br>=
use-package-bind-key bind-key easy-mmode use-package-core tex-site<br>gh-co=
mmon gh-profile rx s marshal eieio-compat dash advice info package<br>easym=
enu browse-url url-handlers url-parse auth-source cl-seq eieio<br>eieio-cor=
e cl-macs eieio-loaddefs password-cache json subr-x map<br>url-vars seq byt=
e-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib<br>tooltip eldoc el=
ectric uniquify ediff-hook vc-hooks lisp-float-type<br>mwheel term/x-win x-=
win term/common-win x-dnd tool-bar dnd fontset image<br>regexp-opt fringe t=
abulated-list replace newcomment text-mode elisp-mode<br>lisp-mode prog-mod=
e register page tab-bar menu-bar rfn-eshadow isearch<br>timer select scroll=
-bar mouse jit-lock font-lock syntax facemenu<br>font-core term/tty-colors =
frame minibuffer cl-generic cham georgian<br>utf-8-lang misc-lang vietnames=
e tibetan thai tai-viet lao korean<br>japanese eucjp-ms cp51932 hebrew gree=
k romanian slovak czech european<br>ethiopic indian cyrillic chinese compos=
ite charscript charprop<br>case-table epa-hook jka-cmpr-hook help simple ab=
brev obarray<br>cl-preloaded nadvice loaddefs button faces cus-face macroex=
p files<br>text-properties overlay sha1 md5 base64 format env code-pages mu=
le<br>custom widget hashtable-print-readable backquote threads dbusbind<br>=
inotify lcms2 dynamic-setting system-font-setting font-render-setting<br>ca=
iro move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)<br><=
br>Memory information:<br>((conses 16 844236 204685)<br>=C2=A0(symbols 48 5=
3129 1)<br>=C2=A0(strings 32 212317 6977)<br>=C2=A0(string-bytes 1 7670144)=
<br>=C2=A0(vectors 16 104746)<br>=C2=A0(vector-slots 8 3029493 25214)<br>=
=C2=A0(floats 8 5990 341)<br>=C2=A0(intervals 56 26458 1076)<br>=C2=A0(buff=
ers 1000 53)<br>=C2=A0(heap 1024 91340 6613))<br><br>-- <br><div dir=3D"ltr=
" class=3D"gmail_signature" data-smartmail=3D"gmail_signature">lg</div></di=
v>

--0000000000008af124059c1978f3--




Acknowledgement sent to Evgeny Zajcev <lg.zevlg@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#39133; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 24 Jan 2020 15:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.