all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Diego Nicola Barbato <dnbarbato@posteo.de>
To: 39412@debbugs.gnu.org
Cc: Diego Nicola Barbato <dnbarbato@posteo.de>
Subject: [bug#39412] [PATCH 0/2] gnu: emacs-telega: Build with emacs-wide-int on 32-bit systems.
Date: Tue,  4 Feb 2020 10:43:51 +0100	[thread overview]
Message-ID: <20200204094351.18671-1-dnbarbato@posteo.de> (raw)

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(-)

-- 
2.25.0

             reply	other threads:[~2020-02-04  9:45 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-04  9:43 Diego Nicola Barbato [this message]
2020-02-04  9:49 ` [bug#39412] [PATCH 1/2] gnu: Add emacs-wide-int Diego Nicola Barbato
2020-02-04  9:49 ` [bug#39412] [PATCH 2/2] gnu: emacs-telega: Build with emacs-wide-int on 32-bit systems Diego Nicola Barbato
2020-02-04 11:14 ` [bug#39412] [PATCH 0/2] " Efraim Flashner
2020-03-26 13:15   ` Diego Nicola Barbato
2020-03-26 13:17     ` [bug#39412] [PATCH v2 1/3] gnu: Add emacs-wide-int Diego Nicola Barbato
2020-03-26 13:17     ` [bug#39412] [PATCH v2 2/3] gnu: emacs-telega: Build with emacs-wide-int on 32-bit systems Diego Nicola Barbato
2020-03-26 13:18     ` [bug#39412] [PATCH v2 3/3] gnu: emacs-telega: Test Emacs environment on startup Diego Nicola Barbato
2020-04-28 14:04     ` [bug#39412] [PATCH 0/2] gnu: emacs-telega: Build with emacs-wide-int on 32-bit systems Diego Nicola Barbato
2020-04-28 17:46       ` bug#39412: " Efraim Flashner
2020-04-28 20:27         ` [bug#39412] " Diego Nicola Barbato

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200204094351.18671-1-dnbarbato@posteo.de \
    --to=dnbarbato@posteo.de \
    --cc=39412@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.