From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: Android port of Emacs Date: Sat, 17 Jun 2023 14:57:40 +0800 Message-ID: <874jn6fue3.fsf@yahoo.com> References: <83v8fnslfz.fsf@gnu.org> <83edmask4z.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2633"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: chad , emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Jun 17 08:58:51 2023 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 1qAPtZ-0000Nx-LL for ged-emacs-devel@m.gmane-mx.org; Sat, 17 Jun 2023 08:58:49 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qAPsn-0000y8-EX; Sat, 17 Jun 2023 02:58:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qAPsl-0000xD-Ts for emacs-devel@gnu.org; Sat, 17 Jun 2023 02:57:59 -0400 Original-Received: from sonic311-25.consmr.mail.ne1.yahoo.com ([66.163.188.206]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qAPsi-0002cY-IV for emacs-devel@gnu.org; Sat, 17 Jun 2023 02:57:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1686985074; bh=LACm7zbA5jYnBfTOcB+PTvYPHLbXj+lcS5Er/1lQWCA=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=engTv5OI+1v3j8Lf1e4Ut6s0HbmGUtHVVbEyKpxexETLBfPg6R3DLCVOobtjy4m7AH5vupNi16duR0oddSfNeU5rbKzlZSaw16mBEGAPY3yu1lMJnWmRokq+VXW8RcS7aaFiwVybn4xrUjx0jPwtFn26XGSKwoMqPOXWM/L+j/4idN0XodGIZ+SVKWviiXLu88etoxFmuBf3DyVrgf0zn6Ear58H+pyTkPCG2fa7moe3ehDe4KT8+R39k5A5c4YwgVV46/2SYRyRKR5ajCbkwJsJ0pKJja6qA9KuEq3KPeywnEIv5Ug0dq85XtCssVYW1EHtCqg1cMht0gKutU65Xw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1686985074; bh=mZlGP8F9oSr7mevHtcDagdcUZpt9eOMkGA30fWYCay7=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=QrkaJZ2SwekpoG4LP9Bofk2QuFbPgvfXon9t/OFts35YpmpHm7nNM7mrawhgUezYVV7+jN9QAfI5r84fPY//ySxSDJfQmPOPOgb163jRwcMI53dPW5V9As4TbgMMkpuel95TfLwTqCHAqK8tc0lO3fLKzkyjNy8VhwRlCdqxV8FYVChZ9SFsVSCtfuvFHkzCaigMu5zg05ppvmSLDQWxVxuZoX5qSmHN44yo8cIC9RGKmTeGrfQ52KtVYSXP+cS12JHKjp5byH9pziFLa841HVWsf3iYUcfKzO8FGKySmITVDAhByZgjiwdUof6IjuHqIysHb7ptkz8UW4og1zvA4Q== X-YMail-OSG: oChBTqUVM1mGTzLG9gcq3JdxxHaMMWic4SJ5fXMmcZyrdhnfANtOrp1CGvf6K7N ECtuikk2aBarwh_41N.sCO1iGg9THw6c6dIya1SN1mxEXxxcwayuu3cvAkcFSMLCada4FFNQmzlc iAOPRC_vLiGupvfrdkzS46_bqN9aCjuG.KiTy5SGZPgIzjZkL2wavDH6Sk84U2BwEjnQJcj2Ds88 LdzvSCUtjD_53CxuOi3PhHk2Ot_8o86twVyvfRCL5g7Xj7IPYUpGDalh5.POvLJiZJnEDot95Z.c 3AXgF4pgovFejybXTuyEsiMrU7vohF.oagLQn8NMUg7bb.xJt0ZQZF28dQpxci7U8rCizMDF1OxO siTR6356bB3B3zTXHEabIOgOWIKW7n_gtR2k4pobJIPlECWhT_RTGJhlY7OCdnczmGEKea9Pf7MH wQjyRbblz7Sad5KYiYGZZeeL9SH_dOc_QNJ_UISbHFCt7g8aqhHTht3bcN87vJOs.ZO4VIskAnr_ 40ZHZaVD7qQW2vspAxqEauhE2QWUVXQ91Lpit1sTPxe3FM1XCA_cDGw9yOjo9Tdd8vuWoTJAhc9l icrk9dtKqCubYzjUgZ3BmoileqI0f8N49qZ4KEiZXKkOdq1w8N.735QOZVBGiXpFUTLi1SRmw_c6 ma8kJEPlVGc4O6TSUD4BNSG_cowLxmTknd.bpDRMltAKceOX_rotaPBun2oT4vZQeFS2Y3_KNdSC m2Xxt0DirufYrfC9qI9k283qrA5uYBpP.xDrD40rcB2aScZX1sHy9Es.u_ITKkLAzWL.rEOykTGs 9RFGQGAehteaE67zmhFdC.s1jjgyUIndwepx481qy4 X-Sonic-MF: X-Sonic-ID: e6755501-bd07-47ca-9d72-fdb7d082e063 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ne1.yahoo.com with HTTP; Sat, 17 Jun 2023 06:57:54 +0000 Original-Received: by hermes--production-sg3-748897c457-fqxqz (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e81ccf22506a6ea520d3f35890c78f2d; Sat, 17 Jun 2023 06:57:47 +0000 (UTC) In-Reply-To: <83edmask4z.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 17 Jun 2023 09:00:44 +0300") X-Mailer: WebService/1.1.21557 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.188.206; envelope-from=luangruo@yahoo.com; helo=sonic311-25.consmr.mail.ne1.yahoo.com 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, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:306858 Archived-At: Eli Zaretskii writes: > The macOS/NS code is already written, and likewise the w32 code. It > took us many years to come up with that, but, incrementally, we did. > So arguing that those platforms nowadays have lots of LOC doesn't > help. Moreover, the code specific to these two ports, by and large, > closely resembles the corresponding parts of X code (xfns.c, xterm.c), Just as androidterm.c is almost a direct translation of xterm.c, just as androidfns.c is to xfns.c. While OTOH, the NS port does not even try. However, W32 requires extensive changes to file IO and subprocess creation. Android does not require as many. Both platforms require C constructs that are foreign to GNU and Unix programmers: count the number of function pointers in w32xfns.c, and the amount of set-up code involving W32-specific C APIs. The NS port also shares a distinction with the Android port: a large quantity of its code is written in a language other than C. However, NS was deliberately written to maximize the use of Objective-C features within parts that are normally implemented in C, such as RIF functions and event handling logic. This mistake is what makes it decidedly non trivial to move changes from X to NS, and is why (until the intervention of yours truly) it was incapable of displaying glyph overhangs, image reliefs, or the tab bar. > with rather minimal deviations in the w32 case and more significant > deviations in the case of NS. And even so, the w32 and NS ports are > already problematic: the former has basically a single > maintainer/developer (yours truly), the latter doesn't have even that. Then, perhaps, the NS port should be developed by ``other people'', in another project? Besides, X, PGTK, and Haiku, seem to have basically a single developer at present; we both know who that is. > The results are clear, if not for everyone: the w32 port falls behind > in features, and the NS port is basically already badly broken, having > unacceptable display problems on at least some modern systems. The NS port is ``basically already badly broken'' due to bad choices taken by the NS port developers, as I've explained above. > So what bothers me is whether we as the project should take another > such port upon ourselves, instead of leaving it to others to develop > and maintain it outside of the upstream project. Because if we take > it upon ourselves, I don't see any way of making sure the Android port > will not go the way of w32 and NS soon enough, maybe the moment we > land it. The same is much less likely to happen with the Android port, because it is essentially built on top of a replica of the X APIs. Anyway, having intentionally designed the Android port to minimize the requirements placed on the part of Emacs developers, I cannot help but believe that your concerns are undue. thanks.