Subject: Re: bug#15876: 24.3.50; Highly degraded performance between rev 114715 and 115006

From: Jan Djärv <[email-masked]>
Date: Sat, 14 Dec 2013 09:47:11 +0100

Hello.

13 dec 2013 kl. 16:22 skrev Eli Zaretskii <[email-masked]>:

>> From: Jan Djärv <[email-masked]>
>> Date: Wed, 11 Dec 2013 20:50:12 +0100
>> Cc: Dmitry Antipov <[email-masked]>,
>> Kenichi Handa <[email-masked]>,
>> [email-masked],
>> [email-masked]
>> 
>>> Jan, Ken'ichi, would you please comment on this?  Are we losing
>>> something by reusing already loaded fonts that support a given
>>> character, as opposed to looking for the "best-match" font?
>> 
>> See discussion starting here http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15138#29:
>> 
>> Kenichi Handa wrote:
>> 
>> I agree that this change improves font selection for
>> symbols, but it's not good for many scripts for which just
>> having a glyph is not enough.  For instance, if the default
>> font has Hindi glyphs but doesn't have the OTF features for
>> Hindi script, we must find another proper font for Hindi.
>> 
>> How about modifying the current fontset mechanism as this?
>> 
>> (1) Allow t for FONT-SPEC of set-fontset-font to tell that
>>    the default font should be tried.
>> (2) Modiyf the default fontset to include `t' as the
>>    font-spec for scripts/characters for which the default
>>    font is ok.
> 
> I see.  But then why does the NS build still use a variant of that
> approach?  How is it exempt from what Handa-san wrote above?

When this was done, NS only had nsfont.m where OTF features are ignored (i.e. not implemented)
except for script.  Since then we have macfont.m but it does the same.

There might be a case where the fontset contains two fonts that contains the same glyph and that we by this code selects the non-preferred one.  But this is highly theoretical, I would like to see a real example where this choice actually matter. 

BTW it was said that the font backend should reject fonts that request OTF features the backend does not support, but if the backend does that it would end up with no font at all in many cases.  There is not first a font with OTF-features and then one fallback without OTF-feature in the fontests.  There is just the one with OTF-features.  So Emacs has made a second bad choice w.r.t. fonts.  The first was using the X11 specific logical font description as its internal format (still does even if X11 says it is deprecated).  Now we are tied to features specified by Open Type.

	Jan D.