unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Duncan Bayne <duncan@bayne.id.au>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 74337@debbugs.gnu.org
Subject: bug#74337: 29.4; Visiting a file with Unicode emojis is very slow
Date: Thu, 14 Nov 2024 22:42:29 +1100	[thread overview]
Message-ID: <86msi2115c.fsf@bayne.id.au> (raw)
In-Reply-To: <86jzd6l3k8.fsf@gnu.org>

[-- 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 --]

  reply	other threads:[~2024-11-14 11:42 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86msi2115c.fsf@bayne.id.au \
    --to=duncan@bayne.id.au \
    --cc=74337@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).