emacs-devel
[Top][All Lists]
Advanced

[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: Philipp Stephani
Subject: Re: [PATCH] Change module interface to no longer use GMP objects directly.
Date: Sun, 8 Dec 2019 21:28:12 +0100

Am Do., 5. Dez. 2019 um 15:43 Uhr schrieb Eli Zaretskii <address@hidden>:
>
> > From: Philipp Stephani <address@hidden>
> > Date: Wed, 4 Dec 2019 21:31:42 +0100
> > Cc: Philipp Stephani <address@hidden>, Andreas Schwab <address@hidden>,
> >  Stefan Monnier <address@hidden>,
> >  Emacs developers <address@hidden>
> >
> > Since there were no more comments or objections, and all other points
> > of discussion have been resolved, I've pushed a slightly modified
> > version of the patch as 096be9c454. Except for extremely exotic
> > architectures or custom GMP builds, the chosen limb should be the same
> > as the default GMP limb.
>
> Thanks.
>
> However, this:
>
>   #if ULONG_MAX == 0xFFFFFFFF
>   typedef unsigned long long emacs_limb_t;
>   # define EMACS_LIMB_MAX ULLONG_MAX
>   #else
>   typedef unsigned long emacs_limb_t;
>   # define EMACS_LIMB_MAX ULONG_MAX
>   #endif
>
> seems to punish every 32-bit build of Emacs (and on MS-Windows even
> the 64-bit builds, AFAIU).  Is there a reason for doing this?  Testing
> for the native size of an 'unsigned long' data type is not
> significantly more complicated than the above, and GMP goes with that
> when it determines the type of mp_limb_t, AFAIK.

Not quite sure I understand. In what way does this selection punish
32-bit builds? Also the code already effectively tests the native size
of unsigned long, so I'm not sure what you'd like to change here.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]