From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Ligature support Date: Sat, 06 Nov 2021 20:34:58 +0200 Message-ID: <83pmrd9lpp.fsf@gnu.org> References: <87cznths5j.fsf@gnus.org> <87lf2c3k0z.fsf@gnus.org> <83wnlwqocq.fsf@gnu.org> <87wnlwyox9.fsf@gnus.org> <83lf2cq7n5.fsf@gnu.org> <87wnlnkxbo.fsf@gnus.org> <83cznfdohr.fsf@gnu.org> <87zgqik9bk.fsf@gnus.org> <83v916d64z.fsf@gnu.org> <878ry2k6qz.fsf@gnus.org> <83tugqd488.fsf@gnu.org> <87zgqiiq8c.fsf@gnus.org> <83r1bud3or.fsf@gnu.org> <87r1buipf5.fsf@gnus.org> <83o86yd0ig.fsf@gnu.org> <87a6iiimay.fsf@gnus.org> <83fssact8i.fsf@gnu.org> <87k0hmgre3.fsf@gnus.org> <87fssagqub.fsf@gnus.org> <87bl2ygq8u.fsf@gnus.org> <83sfw9bs66.fsf@gnu.org> <877ddlcg2p.fsf@gnus.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9793"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Lars Ingebrigtsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Nov 06 19:35:58 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mjQXm-0002JH-3E for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Nov 2021 19:35:58 +0100 Original-Received: from localhost ([::1]:35406 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mjQXk-0007I7-CN for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Nov 2021 14:35:56 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51840) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjQX3-0006Wy-Bp for emacs-devel@gnu.org; Sat, 06 Nov 2021 14:35:13 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:50976) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjQX3-0006e3-3j; Sat, 06 Nov 2021 14:35:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=0ur/D8Ssh1zlN4pQdMNbJV0hGBWjGBYXY3daytVBfE4=; b=SRYlnLEx36VP jO69Bg/IZXJylWxNkXl8I+Oi8dFVPdDg+Vh0KqyOcS2kZMqRJETWidX4tychik7nL7jUrRhH/hDmW 2WLQOkP2cZSmKbUM8BaBbD7H0qdjiU8IW77WpoQUuMHdU48NyNSAuTeBEuZbprB/dqBq2MmSnH7mB qv31hjdCz7W0D9GOptOi3DC5RkjYdgpO+zx9yKgmcF/92OcfMSKAvdp1rV8TnV+62yYEBbr9ekSSD A277fxz9fGyN1oh5kqyHEZljXX2vj0uNhwPrplGq1KKL4zgTKsfvX/EIxuLFGu4UlbnRVH0uHCqrL rq0zx+E5h2ZhcAKINbUoWQ==; Original-Received: from [87.69.77.57] (port=2225 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjQX2-0004lU-IZ; Sat, 06 Nov 2021 14:35:13 -0400 In-Reply-To: <877ddlcg2p.fsf@gnus.org> (message from Lars Ingebrigtsen on Sat, 06 Nov 2021 19:08:30 +0100) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:278890 Archived-At: > From: Lars Ingebrigtsen > Cc: emacs-devel@gnu.org > Date: Sat, 06 Nov 2021 19:08:30 +0100 > > Eli Zaretskii writes: > > > 30% slowdown is already a bad sign. > > Oh yeah, it means that we can't just do that. If we want to send > everything through hb_shape, we'd have to change our display to optimise > for that case. (Which I'm guessing would be a lot of work.) We basically need to rethink the entire design of the display engine. It starts with the basic premise in the design that buffer text is examined one character at a time, and all the layout decisions for that character are made before we proceed to the next character. This already required quite esoteric jumps through hoops to add character composition (which needs to examine sequences of characters, and when composable characters are detected, skip them all after processing them). If we want to pass most or all of the text through the shaping engine all that needs to go away, and we need something very different.