unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
@ 2024-11-13 12:13 Duncan Bayne
  2024-11-13 15:10 ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Duncan Bayne @ 2024-11-13 12:13 UTC (permalink / raw)
  To: 74337

It takes ~ 1.5 minutes to visit even a small file containing Unicode
emojis, and CPU utilization goes to 100% (of a single core) while it is
loading.

Reproduction steps:

1. Open Emacs with `emacs -Q`.
2. Visit the attached file (known-hosts).
3. Observe that it takes > 1 minute to visit the file.

In GNU Emacs 29.4 (build 1, amd64-portbld-freebsd14.1, GTK+ Version
3.24.43, cairo version 1.17.4)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101013
System Description: 14.1-RELEASE

Configured using:
 'configure --disable-build-details --localstatedir=/var --without-gconf
 --without-libsystemd --without-selinux --with-x --enable-acl
 --with-cairo --with-dbus --with-gif --with-gnutls --with-gsettings
 --with-x-toolkit=gtk3 --with-harfbuzz --with-jpeg --with-json
 --with-file-notification=kqueue --with-lcms2 --without-m17n-flt
 --without-imagemagick --with-mailutils --with-modules
 --without-native-compilation --with-sound=oss --without-libotf
 --without-pgtk --with-png --with-toolkit-scroll-bars --with-sqlite3
 --with-rsvg --with-threads --with-tiff --with-tree-sitter --with-webp
 --without-xft --with-xim --with-xml2 --with-xpm --without-xwidgets
 --x-libraries=/usr/local/lib --x-includes=/usr/local/include
 --prefix=/usr/local --mandir=/usr/local/share/man
 --disable-silent-rules --infodir=/usr/local/share/emacs/info/
 --build=amd64-portbld-freebsd14.1 'CFLAGS=-O2 -pipe
 -fstack-protector-strong -isystem /usr/local/include
 -fno-strict-aliasing ' 'CPPFLAGS=-isystem /usr/local/include' 'LDFLAGS=
 -fstack-protector-strong -L/usr/local/lib ''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBXML2 MODULES NOTIFY KQUEUE PDUMPER PNG RSVG SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2
XPM GTK3 ZLIB

Important settings:
  value of $LC_ALL: en_AU.UTF-8
  value of $LANG: C.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode 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 lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 37686 5905)
 (symbols 48 5447 3)
 (strings 32 13482 2173)
 (string-bytes 1 385060)
 (vectors 16 9591)
 (vector-slots 8 160240 11894)
 (floats 8 21 23)
 (intervals 56 273 0)
 (buffers 984 11))

--
Duncan Bayne
+61 420 817 082 | gemini://duncan.bayne.id.au/

I usually check my mail every 24 - 48 hours.  If there's something
urgent going on, please send me an SMS or call me.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-13 12:13 bug#74337: 29.4; Visiting a file with Unicode emojis is very slow Duncan Bayne
@ 2024-11-13 15:10 ` Eli Zaretskii
       [not found]   ` <861pzeevpy.fsf@bayne.id.au>
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-11-13 15:10 UTC (permalink / raw)
  To: Duncan Bayne; +Cc: 74337

> From: Duncan Bayne <duncan@bayne.id.au>
> Date: Wed, 13 Nov 2024 23:13:26 +1100
> 
> It takes ~ 1.5 minutes to visit even a small file containing Unicode
> emojis, and CPU utilization goes to 100% (of a single core) while it is
> loading.
> 
> Reproduction steps:
> 
> 1. Open Emacs with `emacs -Q`.
> 2. Visit the attached file (known-hosts).
> 3. Observe that it takes > 1 minute to visit the file.

You haven't attached the file, please post it.

Thanks.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
       [not found]   ` <861pzeevpy.fsf@bayne.id.au>
@ 2024-11-13 20:33     ` Eli Zaretskii
  2024-11-13 20:47       ` Duncan Bayne
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-11-13 20:33 UTC (permalink / raw)
  To: Duncan Bayne; +Cc: 74337

[-- Attachment #1: Type: text/plain, Size: 1153 bytes --]

[Please use Reply All to reply, to keep the bug tracker CC'ed.]

> From: Duncan Bayne <duncan@bayne.id.au>
> Date: Thu, 14 Nov 2024 07:15:09 +1100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Duncan Bayne <duncan@bayne.id.au>
> >> Date: Wed, 13 Nov 2024 23:13:26 +1100
> >>
> >> It takes ~ 1.5 minutes to visit even a small file containing Unicode
> >> emojis, and CPU utilization goes to 100% (of a single core) while it is
> >> loading.
> >>
> >> Reproduction steps:
> >>
> >> 1. Open Emacs with `emacs -Q`.
> >> 2. Visit the attached file (known-hosts).
> >> 3. Observe that it takes > 1 minute to visit the file.
> >
> > You haven't attached the file, please post it.
> >
> > Thanks.
> 
> Argh, sorry :/  Attached this time.

I'm attaching it also, to let the bug tracker and others to see it.

I cannot reproduce the problem on my system (which is not
amd64-portbld-freebsd): the file displays almost immediately for me.

Do emoji display as "tofu" (i.e. rectangular boxes with hex codepoint
value) on your system, after those 1.5 minutes, or do they display as
emoticons?  IOW, do you have on your system fonts that can display
emoji?


[-- Attachment #2: known-hosts --]
[-- Type: application/octet-stream, Size: 1013 bytes --]

# 🔭 Kennedy: Search Gemini Space
=> /search 🔍 Search
=> /image-search 🖼 Image Search

## 🏎 Delorean Time Machine
It's like the Wayback Machine, but for Gemini
=> /archive/ 🏎 View Archived Content

## Capsule Tools
=> /reports/site-health 🩺 Capsule Health Report
=> /certs/validator/ 🔏 Certificate and Key Validator
=> /site-search/ 🎯 Site Search (Add Search to your Capsule!)
=> /reports/domain-backlinks ↩️ Backlinks to Capsule
=> /page-info ℹ️ URL Metadata Lookup

## Metadata about Gemini Space
=> /stats 📏 Kennedy Statistics
=> /observatory/known-hosts All known Gemini Capsules
=> /observatory/security.txt Capsules using security.txt

## About Kennedy
=> /docs/features.gmi Features
=> /docs/search.gmi Search examples and options
=> /docs/crawling.gmi What is crawled, from where, and how its indexed
=> /.well-known/security.txt Report security issues
=> /changelog.gmi Changelog (in TinyLog format)

=> /kennedy.gmi "But Because They Are Hard"
=> /colophon.gmi Colophon

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-13 20:33     ` Eli Zaretskii
@ 2024-11-13 20:47       ` Duncan Bayne
  2024-11-14  6:41         ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Duncan Bayne @ 2024-11-13 20:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 74337


Eli Zaretskii <eliz@gnu.org> writes:

> [Please use Reply All to reply, to keep the bug tracker CC'ed.]
>
>> From: Duncan Bayne <duncan@bayne.id.au>
>> Date: Thu, 14 Nov 2024 07:15:09 +1100
>>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> >> From: Duncan Bayne <duncan@bayne.id.au>
>> >> Date: Wed, 13 Nov 2024 23:13:26 +1100
>> >>
>> >> It takes ~ 1.5 minutes to visit even a small file containing Unicode
>> >> emojis, and CPU utilization goes to 100% (of a single core) while it is
>> >> loading.
>> >>
>> >> Reproduction steps:
>> >>
>> >> 1. Open Emacs with `emacs -Q`.
>> >> 2. Visit the attached file (known-hosts).
>> >> 3. Observe that it takes > 1 minute to visit the file.
>> >
>> > You haven't attached the file, please post it.
>> >
>> > Thanks.
>>
>> Argh, sorry :/  Attached this time.
>
> I'm attaching it also, to let the bug tracker and others to see it.
>
> I cannot reproduce the problem on my system (which is not
> amd64-portbld-freebsd): the file displays almost immediately for me.
>
> Do emoji display as "tofu" (i.e. rectangular boxes with hex codepoint
> value) on your system, after those 1.5 minutes, or do they display as
> emoticons?  IOW, do you have on your system fonts that can display
> emoji?
>
> [2. application/octet-stream; known-hosts]...

Ah, that could be the problem.  My system fonts can't display any of
those emoji - they display as "tofu" after the 1.5 minutes.

What font are you using?  I'll install it and try to reproduce the issue
again.

--
Duncan Bayne
+61 420 817 082 | gemini://duncan.bayne.id.au/

I usually check my mail every 24 - 48 hours.  If there's something
urgent going on, please send me an SMS or call me.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-13 20:47       ` Duncan Bayne
@ 2024-11-14  6:41         ` Eli Zaretskii
  2024-11-14 11:42           ` Duncan Bayne
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-11-14  6:41 UTC (permalink / raw)
  To: Duncan Bayne; +Cc: 74337

> From: Duncan Bayne <duncan@bayne.id.au>
> Cc: 74337@debbugs.gnu.org
> Date: Thu, 14 Nov 2024 07:47:08 +1100
> 
> > I cannot reproduce the problem on my system (which is not
> > amd64-portbld-freebsd): the file displays almost immediately for me.
> >
> > Do emoji display as "tofu" (i.e. rectangular boxes with hex codepoint
> > value) on your system, after those 1.5 minutes, or do they display as
> > emoticons?  IOW, do you have on your system fonts that can display
> > emoji?
> >
> Ah, that could be the problem.  My system fonts can't display any of
> those emoji - they display as "tofu" after the 1.5 minutes.

OK, so how many fonts do you have installed overall on that system?
What do the following expressions yield when evaluated with "M-:"?

  (length (font-family-list))
  (length (x-list-fonts "*" 'default))

> What font are you using?  I'll install it and try to reproduce the issue
> again.

If you install Noto Color Emoji, Emacs should use that font by default
for displaying emoji.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-14  6:41         ` Eli Zaretskii
@ 2024-11-14 11:42           ` Duncan Bayne
  2024-11-14 14:31             ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Duncan Bayne @ 2024-11-14 11:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 74337

[-- Attachment #1: Type: text/plain, Size: 1726 bytes --]


Eli Zaretskii <eliz@gnu.org> writes:

>> From: Duncan Bayne <duncan@bayne.id.au>
>> Cc: 74337@debbugs.gnu.org
>> Date: Thu, 14 Nov 2024 07:47:08 +1100
>>
>> > I cannot reproduce the problem on my system (which is not
>> > amd64-portbld-freebsd): the file displays almost immediately for me.
>> >
>> > Do emoji display as "tofu" (i.e. rectangular boxes with hex codepoint
>> > value) on your system, after those 1.5 minutes, or do they display as
>> > emoticons?  IOW, do you have on your system fonts that can display
>> > emoji?
>> >
>> Ah, that could be the problem.  My system fonts can't display any of
>> those emoji - they display as "tofu" after the 1.5 minutes.
>
> OK, so how many fonts do you have installed overall on that system?
> What do the following expressions yield when evaluated with "M-:"?
>
>   (length (font-family-list))
>   (length (x-list-fonts "*" 'default))

(length (font-family-list)) returns 10775.
(length (x-list-fonts "*" 'default)) returns 7333.

>> What font are you using?  I'll install it and try to reproduce the
>> issue again.
>
> If you install Noto Color Emoji, Emacs should use that font by default
> for displaying emoji.

I have installed Noto from packages with:

pkg install -y \
    noto \
    noto-emoji \

... and refreshed my font cache with:

fc-cache -fv

I've attached the log from fc-cache.

With this all done, most of the emoji in the file are rendered properly,
but a few still appear as tofu, and it still takes minutes to open.

I've attached a screenshot of the resultant buffer.

--
Duncan Bayne
+61 420 817 082 | gemini://duncan.bayne.id.au/

I usually check my mail every 24 - 48 hours.  If there's something
urgent going on, please send me an SMS or call me.

[-- Attachment #2: fc-cache.log --]
[-- Type: application/octet-stream, Size: 9589 bytes --]

Font directories:
	/home/duncan/.local/share/fonts
	/usr/local/share/fonts
	/usr/share/fonts
	/home/duncan/.fonts
	/usr/local/share/fonts/100dpi
	/usr/local/share/fonts/3270
	/usr/local/share/fonts/75dpi
	/usr/local/share/fonts/Alef
	/usr/local/share/fonts/Andika
	/usr/local/share/fonts/Caladea
	/usr/local/share/fonts/Carlito
	/usr/local/share/fonts/ChromeOS
	/usr/local/share/fonts/Comfortaa
	/usr/local/share/fonts/GentiumBasic
	/usr/local/share/fonts/Liberation
	/usr/local/share/fonts/LinLibertineG
	/usr/local/share/fonts/OTF
	/usr/local/share/fonts/SourceCodePro
	/usr/local/share/fonts/SourceSans
	/usr/local/share/fonts/SourceSerif
	/usr/local/share/fonts/TTF
	/usr/local/share/fonts/Type1
	/usr/local/share/fonts/alegreya-sans
	/usr/local/share/fonts/anonymous-pro
	/usr/local/share/fonts/b612
	/usr/local/share/fonts/cantarell
	/usr/local/share/fonts/cascadia-code
	/usr/local/share/fonts/comic-neue
	/usr/local/share/fonts/courier-prime
	/usr/local/share/fonts/cyrillic
	/usr/local/share/fonts/dejavu
	/usr/local/share/fonts/encodings
	/usr/local/share/fonts/exo
	/usr/local/share/fonts/fira
	/usr/local/share/fonts/firacode
	/usr/local/share/fonts/gofont-ttf
	/usr/local/share/fonts/google-fonts
	/usr/local/share/fonts/jetbrains-mono
	/usr/local/share/fonts/lato
	/usr/local/share/fonts/misc
	/usr/local/share/fonts/montserrat
	/usr/local/share/fonts/noto
	/usr/local/share/fonts/oldschool-pc-fonts
	/usr/local/share/fonts/open-sans
	/usr/local/share/fonts/profont
	/usr/local/share/fonts/roboto-fonts-ttf
	/usr/local/share/fonts/twemoji-color-font-ttf
	/usr/local/share/fonts/ubuntu-font
	/usr/local/share/fonts/urw-base35-fonts
	/usr/local/share/fonts/vollkorn-ttf
	/usr/local/share/fonts/webfonts
	/usr/local/share/fonts/xscreensaver
	/usr/local/share/fonts/encodings/large
/home/duncan/.local/share/fonts: skipping, no such directory
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 48 dirs
/usr/local/share/fonts/100dpi: caching, new cache contents: 398 fonts, 0 dirs
/usr/local/share/fonts/3270: caching, new cache contents: 9 fonts, 0 dirs
/usr/local/share/fonts/75dpi: caching, new cache contents: 398 fonts, 0 dirs
/usr/local/share/fonts/Alef: caching, new cache contents: 2 fonts, 0 dirs
/usr/local/share/fonts/Andika: caching, new cache contents: 4 fonts, 0 dirs
/usr/local/share/fonts/Caladea: caching, new cache contents: 4 fonts, 0 dirs
/usr/local/share/fonts/Carlito: caching, new cache contents: 4 fonts, 0 dirs
/usr/local/share/fonts/ChromeOS: caching, new cache contents: 12 fonts, 0 dirs
/usr/local/share/fonts/Comfortaa: caching, new cache contents: 3 fonts, 0 dirs
/usr/local/share/fonts/GentiumBasic: caching, new cache contents: 8 fonts, 0 dirs
/usr/local/share/fonts/Liberation: caching, new cache contents: 12 fonts, 0 dirs
/usr/local/share/fonts/LinLibertineG: caching, new cache contents: 10 fonts, 0 dirs
/usr/local/share/fonts/OTF: caching, new cache contents: 23 fonts, 0 dirs
/usr/local/share/fonts/SourceCodePro: caching, new cache contents: 14 fonts, 0 dirs
/usr/local/share/fonts/SourceSans: caching, new cache contents: 14 fonts, 0 dirs
/usr/local/share/fonts/SourceSerif: caching, new cache contents: 60 fonts, 0 dirs
/usr/local/share/fonts/TTF: caching, new cache contents: 13 fonts, 0 dirs
/usr/local/share/fonts/Type1: caching, new cache contents: 29 fonts, 0 dirs
/usr/local/share/fonts/alegreya-sans: caching, new cache contents: 28 fonts, 0 dirs
/usr/local/share/fonts/anonymous-pro: caching, new cache contents: 4 fonts, 0 dirs
/usr/local/share/fonts/b612: caching, new cache contents: 8 fonts, 0 dirs
/usr/local/share/fonts/cantarell: caching, new cache contents: 11 fonts, 0 dirs
/usr/local/share/fonts/cascadia-code: caching, new cache contents: 72 fonts, 0 dirs
/usr/local/share/fonts/comic-neue: caching, new cache contents: 12 fonts, 0 dirs
/usr/local/share/fonts/courier-prime: caching, new cache contents: 4 fonts, 0 dirs
/usr/local/share/fonts/cyrillic: caching, new cache contents: 0 fonts, 0 dirs
/usr/local/share/fonts/dejavu: caching, new cache contents: 22 fonts, 0 dirs
/usr/local/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs
/usr/local/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
/usr/local/share/fonts/exo: caching, new cache contents: 18 fonts, 0 dirs
/usr/local/share/fonts/fira: caching, new cache contents: 98 fonts, 0 dirs
/usr/local/share/fonts/firacode: caching, new cache contents: 6 fonts, 0 dirs
/usr/local/share/fonts/gofont-ttf: caching, new cache contents: 12 fonts, 0 dirs
/usr/local/share/fonts/google-fonts: caching, new cache contents: 3709 fonts, 0 dirs
/usr/local/share/fonts/jetbrains-mono: caching, new cache contents: 32 fonts, 0 dirs
/usr/local/share/fonts/lato: caching, new cache contents: 18 fonts, 0 dirs
/usr/local/share/fonts/misc: caching, new cache contents: 89 fonts, 0 dirs
/usr/local/share/fonts/montserrat: caching, new cache contents: 36 fonts, 0 dirs
/usr/local/share/fonts/noto: caching, new cache contents: 1646 fonts, 0 dirs
/usr/local/share/fonts/oldschool-pc-fonts: caching, new cache contents: 1366 fonts, 0 dirs
/usr/local/share/fonts/open-sans: caching, new cache contents: 13 fonts, 0 dirs
/usr/local/share/fonts/profont: caching, new cache contents: 7 fonts, 0 dirs
/usr/local/share/fonts/roboto-fonts-ttf: caching, new cache contents: 18 fonts, 0 dirs
/usr/local/share/fonts/twemoji-color-font-ttf: caching, new cache contents: 1 fonts, 0 dirs
/usr/local/share/fonts/ubuntu-font: caching, new cache contents: 14 fonts, 0 dirs
/usr/local/share/fonts/urw-base35-fonts: caching, new cache contents: 105 fonts, 0 dirs
/usr/local/share/fonts/vollkorn-ttf: caching, new cache contents: 12 fonts, 0 dirs
/usr/local/share/fonts/webfonts: caching, new cache contents: 30 fonts, 0 dirs
/usr/local/share/fonts/xscreensaver: caching, new cache contents: 5 fonts, 0 dirs
/usr/share/fonts: skipping, no such directory
/home/duncan/.fonts: skipping, no such directory
/usr/local/share/fonts/100dpi: skipping, looped directory detected
/usr/local/share/fonts/3270: skipping, looped directory detected
/usr/local/share/fonts/75dpi: skipping, looped directory detected
/usr/local/share/fonts/Alef: skipping, looped directory detected
/usr/local/share/fonts/Andika: skipping, looped directory detected
/usr/local/share/fonts/Caladea: skipping, looped directory detected
/usr/local/share/fonts/Carlito: skipping, looped directory detected
/usr/local/share/fonts/ChromeOS: skipping, looped directory detected
/usr/local/share/fonts/Comfortaa: skipping, looped directory detected
/usr/local/share/fonts/GentiumBasic: skipping, looped directory detected
/usr/local/share/fonts/Liberation: skipping, looped directory detected
/usr/local/share/fonts/LinLibertineG: skipping, looped directory detected
/usr/local/share/fonts/OTF: skipping, looped directory detected
/usr/local/share/fonts/SourceCodePro: skipping, looped directory detected
/usr/local/share/fonts/SourceSans: skipping, looped directory detected
/usr/local/share/fonts/SourceSerif: skipping, looped directory detected
/usr/local/share/fonts/TTF: skipping, looped directory detected
/usr/local/share/fonts/Type1: skipping, looped directory detected
/usr/local/share/fonts/alegreya-sans: skipping, looped directory detected
/usr/local/share/fonts/anonymous-pro: skipping, looped directory detected
/usr/local/share/fonts/b612: skipping, looped directory detected
/usr/local/share/fonts/cantarell: skipping, looped directory detected
/usr/local/share/fonts/cascadia-code: skipping, looped directory detected
/usr/local/share/fonts/comic-neue: skipping, looped directory detected
/usr/local/share/fonts/courier-prime: skipping, looped directory detected
/usr/local/share/fonts/cyrillic: skipping, looped directory detected
/usr/local/share/fonts/dejavu: skipping, looped directory detected
/usr/local/share/fonts/encodings: skipping, looped directory detected
/usr/local/share/fonts/exo: skipping, looped directory detected
/usr/local/share/fonts/fira: skipping, looped directory detected
/usr/local/share/fonts/firacode: skipping, looped directory detected
/usr/local/share/fonts/gofont-ttf: skipping, looped directory detected
/usr/local/share/fonts/google-fonts: skipping, looped directory detected
/usr/local/share/fonts/jetbrains-mono: skipping, looped directory detected
/usr/local/share/fonts/lato: skipping, looped directory detected
/usr/local/share/fonts/misc: skipping, looped directory detected
/usr/local/share/fonts/montserrat: skipping, looped directory detected
/usr/local/share/fonts/noto: skipping, looped directory detected
/usr/local/share/fonts/oldschool-pc-fonts: skipping, looped directory detected
/usr/local/share/fonts/open-sans: skipping, looped directory detected
/usr/local/share/fonts/profont: skipping, looped directory detected
/usr/local/share/fonts/roboto-fonts-ttf: skipping, looped directory detected
/usr/local/share/fonts/twemoji-color-font-ttf: skipping, looped directory detected
/usr/local/share/fonts/ubuntu-font: skipping, looped directory detected
/usr/local/share/fonts/urw-base35-fonts: skipping, looped directory detected
/usr/local/share/fonts/vollkorn-ttf: skipping, looped directory detected
/usr/local/share/fonts/webfonts: skipping, looped directory detected
/usr/local/share/fonts/xscreensaver: skipping, looped directory detected
/usr/local/share/fonts/encodings/large: skipping, looped directory detected
/var/db/fontconfig: not cleaning unwritable cache directory
/home/duncan/.cache/fontconfig: cleaning cache directory
/home/duncan/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded

[-- Attachment #3: emoji.png --]
[-- Type: image/png, Size: 82436 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-14 11:42           ` Duncan Bayne
@ 2024-11-14 14:31             ` Eli Zaretskii
  2024-11-14 14:49               ` Robert Pluim
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2024-11-14 14:31 UTC (permalink / raw)
  To: Duncan Bayne; +Cc: 74337

> From: Duncan Bayne <duncan@bayne.id.au>
> Cc: 74337@debbugs.gnu.org
> Date: Thu, 14 Nov 2024 22:42:29 +1100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > OK, so how many fonts do you have installed overall on that system?
> > What do the following expressions yield when evaluated with "M-:"?
> >
> >   (length (font-family-list))
> >   (length (x-list-fonts "*" 'default))
> 
> (length (font-family-list)) returns 10775.
> (length (x-list-fonts "*" 'default)) returns 7333.

Whoa! it's a small surprise you need to wait for so long when some
character has no font.  Why do you have so many fonts installed? do
you really need them?

> > If you install Noto Color Emoji, Emacs should use that font by default
> > for displaying emoji.
> 
> I have installed Noto from packages with:
> 
> pkg install -y \
>     noto \
>     noto-emoji \
> 
> ... and refreshed my font cache with:
> 
> fc-cache -fv
> 
> I've attached the log from fc-cache.
> 
> With this all done, most of the emoji in the file are rendered properly,
> but a few still appear as tofu, and it still takes minutes to open.

Those characters that show as tofu are not emoji.  I suggest to
install Symbola, it should have them displayed correctly.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-14 14:31             ` Eli Zaretskii
@ 2024-11-14 14:49               ` Robert Pluim
  2024-11-16 11:29                 ` Duncan Bayne
  0 siblings, 1 reply; 10+ messages in thread
From: Robert Pluim @ 2024-11-14 14:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 74337, Duncan Bayne

>>>>> On Thu, 14 Nov 2024 16:31:43 +0200, Eli Zaretskii <eliz@gnu.org> said:

    Eli> Those characters that show as tofu are not emoji.  I suggest to
    Eli> install Symbola, it should have them displayed correctly.

Either that or use set-fontset-font to use Noto Color Emoji for those
2 codepoints (that looks a lot better than the Symbola glyphs here).

Robert
-- 





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-14 14:49               ` Robert Pluim
@ 2024-11-16 11:29                 ` Duncan Bayne
  2024-11-16 13:22                   ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Duncan Bayne @ 2024-11-16 11:29 UTC (permalink / raw)
  To: Robert Pluim; +Cc: 74337, Eli Zaretskii


Robert Pluim <rpluim@gmail.com> writes:

>>>>>> On Thu, 14 Nov 2024 16:31:43 +0200, Eli Zaretskii <eliz@gnu.org> said:
>
>     Eli> Those characters that show as tofu are not emoji.  I suggest to
>     Eli> install Symbola, it should have them displayed correctly.
>
> Either that or use set-fontset-font to use Noto Color Emoji for those
> 2 codepoints (that looks a lot better than the Symbola glyphs here).

Installing Symbola "fixed" the issue - visiting the file is now almost
instantaneous.

So it looks like the *actual* issue might be: visiting a file with a
codepoint that doesn't match any installed fonts takes minutes?

I'd love to try debugging this myself, although it'll likely take a
while as I've not debugged Emacs itself before :)  Will start with
edbug-tracing and go from there.

--
Duncan Bayne
+61 420 817 082 | gemini://duncan.bayne.id.au/

I usually check my mail every 24 - 48 hours.  If there's something
urgent going on, please send me an SMS or call me.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
  2024-11-16 11:29                 ` Duncan Bayne
@ 2024-11-16 13:22                   ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2024-11-16 13:22 UTC (permalink / raw)
  To: Duncan Bayne; +Cc: 74337, rpluim

> From: Duncan Bayne <duncan@bayne.id.au>
> Cc: Eli Zaretskii <eliz@gnu.org>, 74337@debbugs.gnu.org
> Date: Sat, 16 Nov 2024 22:29:46 +1100
> 
> Installing Symbola "fixed" the issue - visiting the file is now almost
> instantaneous.
> 
> So it looks like the *actual* issue might be: visiting a file with a
> codepoint that doesn't match any installed fonts takes minutes?

Yes, but only if you have a very large number of fonts installed, none
of which supports that codepoint.  Because Emacs will try all of the
fonts that could potentially have a glyph for the codepoint.





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-11-16 13:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-13 12:13 bug#74337: 29.4; Visiting a file with Unicode emojis is very slow Duncan Bayne
2024-11-13 15:10 ` Eli Zaretskii
     [not found]   ` <861pzeevpy.fsf@bayne.id.au>
2024-11-13 20:33     ` Eli Zaretskii
2024-11-13 20:47       ` Duncan Bayne
2024-11-14  6:41         ` Eli Zaretskii
2024-11-14 11:42           ` Duncan Bayne
2024-11-14 14:31             ` Eli Zaretskii
2024-11-14 14:49               ` Robert Pluim
2024-11-16 11:29                 ` Duncan Bayne
2024-11-16 13:22                   ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).