[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Change module interface to no longer use GMP objects directl
From: |
Paul Eggert |
Subject: |
Re: [PATCH] Change module interface to no longer use GMP objects directly. |
Date: |
Mon, 25 Nov 2019 13:03:02 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 |
On 11/24/19 1:28 AM, Andreas Schwab wrote:
It's like compiling for a completely different architecture.
Yes, and that's the point.
We agree that choice of 'configure' options can change the platform, and
that one cannot assume that modules built for one platform are
compatible with an Emacs built for another.
The disagreement is whether we should consider GMP to be "part of Emacs"
(so GMP should not affect the module ABI) or "part of the platform" (so
GMP can affect it). Both approaches are plausible; the former lets
modules be more portable, and the latter gives modules better
performance. Although I'm a fan of portability, here the portability
advantage seems small and the performance advantage significant, so it's
not clear that saying "GMP is part of Emacs" would be a win.
Since an Emacs 27 release is imminent, perhaps the best thing to do
would be to remove the extract_big_integer and make_big_integer methods
from src/emacs-module.h.in. These methods are not good in master because
they depend on gmp.h, and the proposed replacements are not good because
they're slow and awkward. Surely we can do better than either, but we
can't do that in a rush.
Plus, quite possibly it will turn out that module authors don't much
need a specialized API for bignums. After all, we've gotten along so far
without a specialized API for bool-vectors, and to some extent bignums
are just bool-vectors in disguise.
I can propose a simple patch along these lines, if there's interest.
- Re: [PATCH] Change module interface to no longer use GMP objects directly., (continued)
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Paul Eggert, 2019/11/20
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Philipp Stephani, 2019/11/20
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Paul Eggert, 2019/11/20
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Philipp Stephani, 2019/11/21
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Paul Eggert, 2019/11/22
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Philipp Stephani, 2019/11/23
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Paul Eggert, 2019/11/23
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Stefan Monnier, 2019/11/23
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Paul Eggert, 2019/11/23
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Andreas Schwab, 2019/11/24
- Re: [PATCH] Change module interface to no longer use GMP objects directly.,
Paul Eggert <=
- Re: [PATCH] Change module interface to no longer use GMP objects directly., Philipp Stephani, 2019/11/25