From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.devel Subject: Re: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY) Date: Sun, 17 May 2020 16:28:30 +0000 Message-ID: References: <20200517124125.000013a4@web.de> <97C7EAB7-10AB-4702-ABC8-EB6C1C50ABDB@gnu.org> <20200517165953.000044d2@web.de> <83lflqblp0.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="77524"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org, Julius Pfrommer To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 17 18:29:51 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 1jaMAh-000K4o-Gi for ged-emacs-devel@m.gmane-mx.org; Sun, 17 May 2020 18:29:51 +0200 Original-Received: from localhost ([::1]:45686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaMAg-00070i-Ih for ged-emacs-devel@m.gmane-mx.org; Sun, 17 May 2020 12:29:50 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54564) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaMA1-0006Oh-Gl for emacs-devel@gnu.org; Sun, 17 May 2020 12:29:09 -0400 Original-Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]:44531) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaMA0-0000NC-Mh; Sun, 17 May 2020 12:29:09 -0400 Original-Received: by mail-oi1-x230.google.com with SMTP id y85so2159743oie.11; Sun, 17 May 2020 09:29:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S3kN7KtU0sM8L4swO9DYlOAj7sbhonCUaFTOF60dKlg=; b=HKKl+J3HQr+/t49Ggvgs52/0TyLDmijpF5ajP7QF/6cdDX2HcsUcgw7b4jIslwkfSJ IkIZbIvcs78N8sWtnjhBJDGU9vtfABmX2iWGx3dqwDX2DYbNMYq20IP0rsIyVEQ/+614 MFj4EQ95qRJsT0CG1JVQO51M0bRX1EaTO8aB9P5FUKhaO37cKeG3TVBY7wiv+gyWyLOr y8AbSBfy6D2HXuSX9D28jAXAEdap4tvKu3/9bnzX0MigKiMvjWzNnvy/svwrImOJUAg3 bLrfFQG10/S5ZNt9F4/SG1YcnG6sREFxLw0R3kScamZkcwoUzeROhCCTLxIANwBCWbM2 UF9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S3kN7KtU0sM8L4swO9DYlOAj7sbhonCUaFTOF60dKlg=; b=Dz0LDt/HcMUu7a38vWlD5+r0W88yGYr7GLJeszFlnolZEkKQJJIFwUxsJVnBbWMJvi slhN5yGF64ZKR6BJDbzHglJookvepjnvpzsHn4JYRFpcWifIpWLVJPEDF2GUq8uZi897 V4UWwR2NTGyH/FVXITBHrfP0O4mRm/WkfIpuVLQsxPuQGSzwPPseD+dhvSPmIVZ7gtNX ry2Vg7snt7yhwGBf3zdpyzEhaA4+q1jP2h4/2flff7cCoFnJy2wb/K1jtEoxu5L7NOT7 3yWNwM6KPSQ7onxb+r14A2xLpi86VHgK3J1mPf+jeZZjvbNIxxRBvqcEqHpUL4FgdFug xO7g== X-Gm-Message-State: AOAM531jyNNb3qbbk73LRjXmtMhMgHNoi5EnRkCWk3LMUcQdi+RdPaYo XuS7YZpJRyPcQkCq7EFCGkzG81P5/wFKwC2/prMbK7hm X-Google-Smtp-Source: ABdhPJyRt+J7z6nMwgiVN+N9cCO4tv0oBPjXm2PPrsUz/63oPahZSdTnkJcPHkacbQ9M95s4Gdof0S0hNX/rkc61OAc= X-Received: by 2002:aca:ea05:: with SMTP id i5mr8718756oih.44.1589732947200; Sun, 17 May 2020 09:29:07 -0700 (PDT) In-Reply-To: <83lflqblp0.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=pipcet@gmail.com; helo=mail-oi1-x230.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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:250618 Archived-At: On Sun, May 17, 2020 at 3:56 PM Eli Zaretskii wrote: > > Date: Sun, 17 May 2020 16:59:53 +0200 > > From: Julius Pfrommer > > Cc: emacs-devel@gnu.org > Next, please be aware that we already made the decision to use > HarfBuzz as our main text-shaping engine. That's a decision that, having just played with HarfBuzz, I find puzzling. It appears to have no practical support for treating ligatures as anything but monolithic glyphs: is there a documented way of getting HarfBuzz to tell you which part of the "ffi" ligature is the middle "f"? I suspect the answer is "there are some languages whose scripts don't allow for the equivalent operation, so we won't support it at all, as a matter of principle". I'm not sure PangoCairo does better, but whatever Libreoffice uses appears to get the job done, so at least one display engine out there solves this problem. (This is assuming we want kerning, ligatures, and subpixel rendering for English text. "Real" text shaping, composition, reordrant glyphs, and bidi concerns are something that I can't really comment on, beyond admitting that, of course, supporting the world's major languages at all is more important than supporting English with the typographic finesse we currently lack). Years ago, I ran a WebAssembly version of Emacs in a web browser. (Back then, I used a terminal emulator written in JavaScript.) I'd certainly like to do that again some day, and I think a hard dependency on Cairo and FreeType would make that even harder.