emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Supporting stylistic sets


From: Nicolas Ouellet-payeur
Subject: Re: Supporting stylistic sets
Date: Mon, 26 Sep 2022 12:35:34 -0400

> To measure the slowdown, run the benchmark of scrolling through a
> large file, like xdisp.c, one line at a time, and compare with the
> current code.

It's not as bad as I feared, but it's still pretty bad. Scrolling 2000
lines through xdisp.c is ~2.3x slower in the patched version. The jank
is noticeable though, especially because scrolling *should* be limited
by the keyboard repeat rate.

A lot of the time is spent doing GC. If I can do this with *non*-Lispy
gstrings it should be a bit better.

> But what do you do if the user wants to disable ligation, or control
> which ligatures should and shouldn't happen?

To disable ligation, one can turn off font features selectively. For
instance disabling 'rlig' in Fira Code disables the code ligatures. We
could disable it by default on the mode-line, for instance. Or just a
section of the default mode-line.

This is less granular than "control which ligatures should and shouldn't
happen", but it gives *some* control at least. It's not ideal. The
alternatives are:

- Ignore the shaping engine. Read the GSUB table from the font file
  ourselves, and populate `composition-function-table' with that.
  Supporting *everything* is really hard, but basic use-cases might work
  fine out-of-the-box.

- Give up on OOTB ligature support (status quo).

Attachment: analysis-old.txt
Description: Text document

Attachment: analysis-new.txt
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]