Subject: Re: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong

From: Dmitry Gutov <[email-masked]>
Date: Tue, 27 Dec 2022 04:04:21 +0200

On 26/12/2022 18:19, Gregory Heytings wrote:
> 
>>> By the way, I did not realize that the docstring of 
>>> 'set-face-attribute' says nothing about the evaluation order of its 
>>> arguments.  I suggest the attached patch.
>>
>> Are we sure that having order-dependent behavior is a good idea?
>>
> 
> I did not design that function, that's how it works.  But given how 
> intricate the face machinery is, I'm not sure it's possible to do much 
> better.

It does feel a little odd, though. Could you explain why :family does 
get evaluated first, but :font does not? And yet, it's better 
recommended to use :font?

I'm not saying these are regressions to be fixed now (Emacs 29 is too 
near), but maybe a better design is possible and not too difficult to 
transition to later.

>> Since all args are available at the time of evaluation, wouldn't it be 
>> better to handle :font and/or :family before all the others?
>>
> 
> You may have seen in the attached patch that :family is indeed handled 
> before all other attributes, but not :font.
> 
> Can you please confirm that the recipes you sent are working as expected 
> when you place the :font attribute before all other attributes?

They seem to, thank you.

Except for the frame-height-shrinking one, but that's a separate story.