From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Ligatures Date: Sat, 23 May 2020 08:47:57 -0400 Message-ID: References: <20200517165953.000044d2@web.de> <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> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="61781"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: cpitclaudel@gmail.com, alan@idiocy.org, Pip Cet , emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat May 23 14:48:32 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 1jcTZo-000FyP-AB for ged-emacs-devel@m.gmane-mx.org; Sat, 23 May 2020 14:48:32 +0200 Original-Received: from localhost ([::1]:33216 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jcTZn-0001C7-Cs for ged-emacs-devel@m.gmane-mx.org; Sat, 23 May 2020 08:48:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54086) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jcTZL-0000lI-OL for emacs-devel@gnu.org; Sat, 23 May 2020 08:48:03 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42207) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jcTZJ-0008IR-VU; Sat, 23 May 2020 08:48:02 -0400 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 53DB11008D8; Sat, 23 May 2020 08:47:59 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id C27811007E5; Sat, 23 May 2020 08:47:58 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1590238078; bh=SLCpI/T0gcEUThQRu2sV82YgkVX7fIHrMECAL5wAMhY=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=XF3iZO7PIx8h1UUmOAVlDm3cDUp0ODFWMHImJq9e8umt4X/nSunc0RE5hPDvK0Qwi 8SZ+8CXi0FbAj+I+W3MsPQDmqmCYhcBGQdo40xexTYGhp5OS+BFr+yu85RuhZDgeEB wth2fCB7dz2a3cXxFqPXf1mgputeh0k0mlBqDJJBLvNOFJjpwhz7lPpxkta2Ity9wT UQuFZ/3+aBStPkFrhZs0G7FMz+Y1rjv0/hUY2BrmPoGyBg+sKwYovI+KFvLNeA8Z8Q B6EVUDCoRfpyV1XbDWLIVT5Y8AuQTaSe/thkt7HX2NTFOhrKNndWzopeS/vAWbP2W2 dDii5MiQdih5Q== Original-Received: from alfajor (unknown [216.154.27.250]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 5908112047F; Sat, 23 May 2020 08:47:58 -0400 (EDT) In-Reply-To: <831rnb0zld.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 23 May 2020 12:28:46 +0300") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/23 08:47:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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:251268 Archived-At: > The crucial problem is that we currently perform layout decisions one > grapheme cluster at a time, whereas what HarfBuzz people say is that > we should basically do that one screen line at a time. I wonder how it is supposed to work and it works in other applications: Disregarding the theoretical question of whether a font can use ligatures that involve the LF character (and hence affect the definition of what is a line), I still see a chicken-and-egg problems: How do you know where the current "screen line" ends if you don't know how narrow/wide the font and its ligatures will render the text? Do current applications use a heuristic like "ligatures won't reduce the size by more than a factor 2, so estimate the lower bound on the final size to be at most half of what the font metrics say", so they will send up to twice as much text to be shaped as needed, and then they throw away the left overs? Stefan