Subject: Re: bug#37774: 27.0.50; new :extend attribute broke visuals of all themes and other packages

From: Dmitry Gutov <[email-masked]>
Date: Sun, 8 Dec 2019 02:42:42 +0200

On 07.12.2019 21:14, Eli Zaretskii wrote:

> Our goal is to allow themes "inherit" the :extend attribute without
> having to specify it in their face specs, unlike with other
> attributes.  That's the only goal;

But that's exactly what it does. This question is simply different from 
"does it only affect the function custom-theme-set-faces", as I have 
explained profusely.

> we don't want :extend to behave
> differently from other face attributes in any other context.

What other contexts do you have in mind? What *shouldn't* it do?

> If you are saying that we cannot make this change apply only to face
> definitions by themes,

What other face definitions are there? There's defface, of course, which 
we treat differently. And there are theme definitions (both third-party 
and "user theme").

set-face-attribute is not affected, in case you were worried about that.

> then it means we don't really understand what
> we could break here, and then I don't think I want this change in
> Emacs 27.  Sorry, it's too risky.

What about the existing risk of breaking every theme out there by doing 
nothing?

> (I thought cus-face.el stores information in symbol properties that
> enables it to apply the face attributes in a special way.

It does.

> But I don't
> consider myself an expert on these matters, so if you say we cannot
> differentiate between general face definition and what themes do, so
> be it.)

What's a "general face definition"?