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.bugs Subject: bug#51658: [PATCH] Haiku port (again) Date: Wed, 10 Nov 2021 14:38:18 +0200 Message-ID: <83czn8424l.fsf@gnu.org> References: <87ee7surtv.fsf.ref@yahoo.com> <87ee7surtv.fsf@yahoo.com> <83mtmd43fa.fsf@gnu.org> <87ilx0yj52.fsf@yahoo.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24067"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51658@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 10 13:39:32 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1mkmt1-000642-QI for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 10 Nov 2021 13:39:31 +0100 Original-Received: from localhost ([::1]:36362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkmt0-00053C-Cn for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 10 Nov 2021 07:39:30 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:44234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkmsY-00052l-4S for bug-gnu-emacs@gnu.org; Wed, 10 Nov 2021 07:39:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53908) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkmsX-0001OK-NE for bug-gnu-emacs@gnu.org; Wed, 10 Nov 2021 07:39:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mkmsX-0002WI-Ia for bug-gnu-emacs@gnu.org; Wed, 10 Nov 2021 07:39:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 Nov 2021 12:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51658 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51658-submit@debbugs.gnu.org id=B51658.16365479219633 (code B ref 51658); Wed, 10 Nov 2021 12:39:01 +0000 Original-Received: (at 51658) by debbugs.gnu.org; 10 Nov 2021 12:38:41 +0000 Original-Received: from localhost ([127.0.0.1]:37214 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkmsD-0002VH-AM for submit@debbugs.gnu.org; Wed, 10 Nov 2021 07:38:41 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:43358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkmsB-0002Uy-L3 for 51658@debbugs.gnu.org; Wed, 10 Nov 2021 07:38:40 -0500 Original-Received: from [2001:470:142:3::e] (port=55998 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkms6-0001Kd-CC; Wed, 10 Nov 2021 07:38:34 -0500 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=BwRTyZQlqSN3WdL6J5GS9wlKDlF8UsKBsG45iFbdPiM=; b=cEq1iJ5727uS 3F2DJDHzkZZ60cvlzX1VuhNsFIYUOtFS0pPDmK3cY/rZHJNqdCEqxA8++JEiRowMlJDekpAnDsRe/ 07UmPueu+amCrewwJTSHzrsRZoskqck0EQror+NOspmOnUkAbDrPY56fqdCBgfk/85ApoE8ECieGO x/b9AygeJypznLsIP30Q478Y74Kuf/zoew2QBfYZmUjeXAZXdq5RN1f84wlxnLVioDHLc+TzWv6l5 7pYEn20jKcHuyeeTiyyR2Me2umfHv9MHuhQjPX4uuMHQgA5r7atEJDFks4/+Ch66tR6d86QXGxN5F TpQdyjwU3T7MHrf8vWY4nw==; Original-Received: from [87.69.77.57] (port=3846 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 1mkmrv-0005U2-E8; Wed, 10 Nov 2021 07:38:29 -0500 In-Reply-To: <87ilx0yj52.fsf@yahoo.com> (message from Po Lu on Wed, 10 Nov 2021 08:00:25 +0800) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:219531 Archived-At: > From: Po Lu > Cc: 51658@debbugs.gnu.org > Date: Wed, 10 Nov 2021 08:00:25 +0800 > > Eli Zaretskii writes: > > > Thanks. > > > > It's a large patch, so let's start with the general, a.k.a. "big" > > aspects. > > > > First, do we really need to use *.cc files and compile with a C++ > > compiler? Is that a necessity? AFAICT, the code in those *.cc files > > is plain C, so why not use a C compiler, as we do on every other > > platform? > > That isn't C code. The code in the .cc code is written in C++, in order > to use the Haiku GUI libraries which require C++. Too bad. IMNSHO, that's a ticking time bomb, and it will certainly bite us at some point, since mixing C and C++ is tricky and requires a lot of diligence. It also means that you will probably be unable to use any compiler but GCC (or whatever is currently supported by Haiku), since different C++ compilers are generally binary-incompatible. > > Next, the font backend stuff: do we really need 5 (five) backends? > > How about having just one: HarfBuzz+Cairo? That's the direction we go > > on other platforms, so how about making the Haiku code smaller and > > simpler and support just that single backend, and drop all the older > > ones? I'd definitely won't want to drag the unmaintained libm17n-flt > > into this port. > > I'm fine with removing the ftbe backend, but I would prefer to keep the > haikufont backend working. The reason is that Haiku users might not > have Cairo installed, and it likes to break every now and then, as it's > not considered important for that platform. Since you later say Cairo is unreliable, why not drop Cairo? And that still leaves us with 3 backends, IIUC. Why not just one? Let me clarify why I insist on those issues: this port's usability will depend crucially on its support by the developers who are interested in Haiku, and that's for now just you. Any decrease in the level of support will most probably mean the port will bitrot and die, given the fast pace of Emacs development. So every feature that doesn't absolutely have to be there is better removed, because having too many supported configurations makes the code difficult to understand and test, and thus fewer people will be able to support it. Please keep this in mind when you insist on optional non-essential features. From experience, a port or a feature that is not supported well enough bitrots very quickly around here. So my suggestion is to choose wisely which features you really need to keep.