From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Question about display engine Date: Tue, 10 Sep 2019 05:27:39 +0300 Message-ID: <838sqw3mxw.fsf@gnu.org> References: <83o8zw5zh8.fsf@gnu.org> <83mufg5yn1.fsf@gnu.org> <20190908005109.s7hhcczkrcbzewdc@Ergus> <377a8380-af26-776f-de79-2e24cc14e0e4@gmx.at> <20190908125306.mhb2eg7nxjs5z5pf@Ergus> <36b5122a-96a7-b798-1fed-423ea388b772@gmx.at> <83k1ah31fj.fsf@gnu.org> <20190909170826.w3ug6iv3fnrxh4jp@Ergus> <83d0g92vgs.fsf@gnu.org> <20190909192934.7sysej7ladlefunb@Ergus> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="228006"; mail-complaints-to="usenet@blaine.gmane.org" Cc: rudalics@gmx.at, emacs-devel@gnu.org To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 10 04:27:45 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i7Vse-000xCH-QP for ged-emacs-devel@m.gmane.org; Tue, 10 Sep 2019 04:27:44 +0200 Original-Received: from localhost ([::1]:33544 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7Vsd-00048z-0B for ged-emacs-devel@m.gmane.org; Mon, 09 Sep 2019 22:27:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59527) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7VsV-00048g-Sv for emacs-devel@gnu.org; Mon, 09 Sep 2019 22:27:36 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:47178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1i7VsV-0007yb-0i; Mon, 09 Sep 2019 22:27:35 -0400 Original-Received: from [176.228.60.248] (port=2772 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1i7VsT-00050P-9P; Mon, 09 Sep 2019 22:27:34 -0400 In-reply-to: <20190909192934.7sysej7ladlefunb@Ergus> (message from Ergus on Mon, 9 Sep 2019 21:29:34 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:239970 Archived-At: > Date: Mon, 9 Sep 2019 21:29:34 +0200 > From: Ergus > Cc: rudalics@gmx.at, emacs-devel@gnu.org > > >I don't think I agree. Given the complexity of the face-related > >functionalities -- face remapping, the need to recompute all the faces > >when some basic face changes, the various sources of face-related > >information for each buffer/string position, etc. -- I find the design > >and implementation of face code quite elegant and easy to understand, > >maintain and change. > > > I am talking about efficiency. Efficiency is secondary to clean design and correct implementation. > It is just not standard. If there is no difference why are there > different methods to select with if/else? History, I guess. > To add one field to the faces it required many modifications. That isn't a problem in my eyes. > But then why when the GC fails the lagging is so intense? I > thought that the main part of the display engine related with GC was the > faces part. No, faces code cannot GC. What causes GC is the calls to Lisp, which is JIT font-lock and other Lisp hooks. > >Which interfaces would you like to unify? I don't think I understand. > > > Most of the code conditioned with: if (FRAME_WINDOW_P (f)) could be > simplified. But I understand that this could be a lot of work and I > don't know enough about this. This work is being done, and most of it has been done already. Some display features are only possible on GUI frames (multiple fonts, for example), so such conditions are necessary, at least to some extent.