Subject: Re: bug#73752: 29.4; Ligatures are randomly rendered with extra spaces

From: Yixuan Chen <[email-masked]>
Date: Sun, 27 Oct 2024 15:47:57 -0400

On 10/27/24 15:44, Eli Zaretskii wrote:
>> Date: Sun, 27 Oct 2024 15:36:06 -0400
>> Cc: [email-masked], [email-masked], [email-masked]
>> From: Yixuan Chen <[email-masked]>
>>
>> On 10/27/24 15:14, Eli Zaretskii wrote:
>>>> Date: Sun, 27 Oct 2024 13:46:55 -0400
>>>> Cc: [email-masked], [email-masked], [email-masked]
>>>> From: Yixuan Chen <[email-masked]>
>>>>
>>>>> Sorry, I still don't understand.  Your code does
>>>>>
>>>>>      (highlight-lines-matching-regexp (cdr face) (car face))
>>>>>
>>>>> This potentially shows each line in a different face, and thus can
>>>>> affect the metrics of the SPC character glyph which is what the
>>>>> indentation is made of.  So why is this a problem, let alone a bug?
>>>>
>>>> The problem is executing that line at 10PM today may render the font one
>>>> way, while executing that line at 6AM tomorrow (with exactly the same
>>>> "face" variable) may render the font a different way, even if all the
>>>> other variables remains the same.
>>>
>>> But you modify the faces in a random fashion, so why is this a
>>> surprise that it is not deterministic?
>>
>> I said,
>>
>>   > ... (with exactly the same "face" variable) ... even if all the
>>   > other variables remains the same.
>>
>> Yes, this script is modifying the scripts in a random fashion, but let's
>> imagine this:
>>
>> 1. the first time I open emacs, start the script and it randomizes the
>> first line to a combination of face attributes (let's say (16, bold,
>> regular)) in 5 seconds after going through 50 different combinations, it
>> looks one way.
>>
>> 2. I restart emacs, start the script and it randomizes the first line to
>> the same combination of face attributes (16, bold, regular) in 5 minutes
>> after going through 3000 combinations, it looks differently from the
>> first time,
>>
>> Do you agree that in both cases that single line should look the same?
>> And they should always look the same as long as the randomization hits
>> (16, bold, regular) on that line regardless of time and previous history?
> 
> That depends when redisplay kicks in, between your face
> randomizations.  Among other factors.
> 
> And I still fail to understand why this largely artificial program is
> important to investigate.  Are there any real-life cases where you see
> the same face displayed differently when ligatures are involved?  If
> not, what useful stuff will we learn by digging into this, especially
> since reproducing the problem is so hard?

Maybe you missed one of my previous email, let me copy paste what I said 
again,

> It's not about frequency, but probably total number of font face 
> attribute changes. The lisp code I submitted was changing the attributes 
> rapidly just to recreate the problem faster. In real-life, this problem 
> happens with normal emacs configuration, usually within half an hour.
> 
> For reference, here 
> (https://github.com/LukeXuan/dot-files/tree/e6067ec232ea34e01fb9a1f1a358d1c328d47c50/.config/doom) 
> is my emacs configuration on top of doom. I primarily write LaTeX and 
> Coq and this problem occurs every 30 minutes or so. The solution is to 
> either restart emacs (what I used to do) or disable ligature altogether 
> (what I do now).
>