From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:51186) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iyulU-00025g-Gq for guix-patches@gnu.org; Tue, 04 Feb 2020 04:45:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iyulS-0006Xx-RJ for guix-patches@gnu.org; Tue, 04 Feb 2020 04:45:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:36632) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iyulS-0006Wv-HL for guix-patches@gnu.org; Tue, 04 Feb 2020 04:45:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iyulS-0008WJ-DR for guix-patches@gnu.org; Tue, 04 Feb 2020 04:45:02 -0500 Subject: [bug#39412] [PATCH 0/2] gnu: emacs-telega: Build with emacs-wide-int on 32-bit systems. Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:50786) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iyukr-00022P-DM for guix-patches@gnu.org; Tue, 04 Feb 2020 04:44:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iyukn-0003F1-PK for guix-patches@gnu.org; Tue, 04 Feb 2020 04:44:25 -0500 Received: from mout02.posteo.de ([185.67.36.66]:49231) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iyukn-0002vx-9Y for guix-patches@gnu.org; Tue, 04 Feb 2020 04:44:21 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id AA382240102 for ; Tue, 4 Feb 2020 10:44:18 +0100 (CET) From: Diego Nicola Barbato Date: Tue, 4 Feb 2020 10:43:51 +0100 Message-Id: <20200204094351.18671-1-dnbarbato@posteo.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 39412@debbugs.gnu.org Cc: Diego Nicola Barbato Hi Guix, Telega requires wide Emacs integers (62-bit), so it checks whether `most-positive-fixnum' is equal to 2305843009213693951. Due to a performance penalty [0] wide Emacs integers have to be explicitly enabled on 32-bit architectures. Because of this `emacs-telega' currently fails to build on armhf-linux and i686-linux. The following two patches fix this by first adding a variant of `emacs' with wide ints enabled and then using this `emacs-wide-int' instead of `emacs' to build `emacs-telega' on 32-bit systems. I am not completely happy with this solution, because wide ints are not required to build Telega but to run it: A user installing `emacs-telega' alongside "vanilla" `emacs' on a 32-bit machine will be greeted with cryptic parse errors when trying to run Telega. Would it be enough to mention that `emacs-telega' has to be installed alongside `emacs-wide-int' on 32-bit systems in the description? I have chosen this approach over building the regular Emacs package with the "--with-wide-ints" flag because I do not think the performance penalty is justified. What do others think? In the long run it should be possible to drop this workaround once Emacs 27, which introduces bignums, is released. With those Telega should work on 32-bit Emacs without wide ints. Regards, Diego [0]: Emacs' configure.ac file talks about a 10% to 30% slowdown of the Lisp interpreter and a larger memory footprint. Diego Nicola Barbato (2): gnu: Add emacs-wide-int. gnu: emacs-telega: Build with emacs-wide-int on 32-bit systems. gnu/packages/emacs-xyz.scm | 7 ++++++- gnu/packages/emacs.scm | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) --=20 2.25.0