From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Ligatures (was: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY)) Date: Sun, 24 May 2020 18:19:18 +0300 Message-ID: <83367pxsw9.fsf@gnu.org> References: <20200517165953.000044d2@web.de> <83lflqblp0.fsf@gnu.org> <83ftbybio3.fsf@gnu.org> <83zha69xs2.fsf@gnu.org> <83367x9qeq.fsf@gnu.org> <0ccae2a4-533b-d15c-2884-c2f00b067776@gmail.com> <83wo5987mk.fsf@gnu.org> <99d4beed-88ae-b5cd-3ecb-a44325c8a1dc@gmail.com> <20200518215908.GA57594@breton.holly.idiocy.org> <83mu6481v3.fsf@gnu.org> <75a90563-51b4-d3b8-4832-fc0e2542af0d@gmail.com> <83blmi7hys.fsf@gnu.org> <837dx55qff.fsf@gnu.org> <834ks95cmz.fsf@gnu.org> <4faa291f-f2df-36d1-73d5-332b93a9b6d8@gmail.com> <83wo544hx5.fsf@gnu.org> <831rnc43ih.fsf@gnu.org> <83ftbs2jr5.fsf@gnu.org> <83lflj16jn.fsf@gnu.org> <83eerb145r.fsf@gnu.org> <831rnb0zld.fsf@gnu.org> <83mu5yzquj.fsf@gnu.org> <831rnazheg.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="69020"; mail-complaints-to="usenet@ciao.gmane.io" Cc: cpitclaudel@gmail.com, alan@idiocy.org, emacs-devel@gnu.org To: Pip Cet Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 24 17:19:38 2020 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 1jcsPa-000Hrc-Rk for ged-emacs-devel@m.gmane-mx.org; Sun, 24 May 2020 17:19:38 +0200 Original-Received: from localhost ([::1]:54138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jcsPZ-0001in-Up for ged-emacs-devel@m.gmane-mx.org; Sun, 24 May 2020 11:19:37 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48116) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jcsP8-0001Hm-AR for emacs-devel@gnu.org; Sun, 24 May 2020 11:19:10 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:33296) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jcsP7-0000DF-8A; Sun, 24 May 2020 11:19:09 -0400 Original-Received: from [176.228.60.248] (port=3573 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jcsP6-00018E-Sm; Sun, 24 May 2020 11:19:09 -0400 In-Reply-To: (message from Pip Cet on Sat, 23 May 2020 21:29:32 +0000) 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:251321 Archived-At: > From: Pip Cet > Date: Sat, 23 May 2020 21:29:32 +0000 > Cc: cpitclaudel@gmail.com, alan@idiocy.org, emacs-devel@gnu.org > > > If we are going > > to send large chunks of text to the shaping engine, then none of the > > insane complexity of bidi.c makes sense; we should simply throw all of > > it away and use a very different, batch-style reordering code, of the > > kind you can find in the freebidi library. The sole reason for > > bidi.c's existence is to produce character positions in the _visual_ > > order, one position at a time, something that no other bidi-aware > > editor does. > > Yes, except we're not talking about "large chunks of text" here: > somehow you went from "we need only a bunch of regexps to catch > ligatures" to "we need to send entire paragraphs to the shaping > engine, nothing less will do". The former is what we do now. If you want to treat fonts as software, then the HarfBuzz guys tell us we need to pass all the text through the shaper. > My opinion is that we need a reasonable amount of context, often > just a single character, and I see no reason to throw out the entire > display engine because we want some look-ahead. The problem is to determine how much of surrounding text is needed. The answer I was given was "all of it". So if we want to do it right, that is what we should do. What you propose stops short of that goal, so it's yet another partial solution. Doing that to avoid the need of specifying a fixed set of ligatures in advance sounds like a lot of pain for minimal gain to me. > Remember that this discussion started when I mentioned that I was > unhappy with HarfBuzz, and I still am, precisely because of its > "first, send me your entire document" approach. I'm familiar with 3 shaping engines, and they all behave like that. So this is not an idiosyncrasy of HarfBuzz, it's how text-shaping works in general.