[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10519: guile and (mini-)gmp
From: |
Ludovic Courtès |
Subject: |
bug#10519: guile and (mini-)gmp |
Date: |
Sat, 11 Aug 2012 21:46:10 +0200 |
User-agent: |
Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.1 (gnu/linux) |
Hi,
address@hidden (Niels Möller) skribis:
> address@hidden (Ludovic Courtès) writes:
>
>> Yes, thanks. I just tried it, and here’s the status:
>>
>> - numbers.c uses ‘GMP_NUMB_BITS’, which is lacking;
>
> If that's really needed, it can be substituted with something like
>
> #ifndef GMP_NUMB_BITS
> #include <limits.h>
> #define GMP_NUMB_BITS (CHAR_BIT*sizeof(mp_limb_t))
> #endif
OK.
[...]
>> - random.c uses ‘mpz_realloc2’, also lacking.
>
> That call could be conditional on HAVE_LIBGMP, I think.
Right.
>> Currently including <libguile.h> pulls <gmp.h>. When mini-GMP is used
>> instead, then <libguile/mini-gmp.h> would be pulled instead,
>> transparently.
>
> Might work. You'd need to document that a guile application which wants
> to work with mini-gmp should never include gmp.h directly.
Yes.
>>> Users may also need some way of figuring out if they need to link with
>>> -lgmp or not.
>>
>> libguile-2.0.la and guile-2.0.pc would provide that info.
>
> And on ELF-systems, you should record the dependency (or lack thereof)
> directly in libguile.so.
Of course.
>> I’m slightly concerned about mini-gmp, though. It’s almost 5000 lines,
>> mostly copied from GMP AIUI, but with no way to synchronize. How do you
>> consider the maintenance cost of this?
>
> My view is that you should copy mini-gmp from some gmp release or from
> the main gmp repo. When you have a version which works for you, you
> shouldn't need to modify it or update it very often (maybe once for each
> gmp release or so).
For me/us, the best workflow would be to have a Gnulib module. That
way, whenever GMP developers fix a bug in mini-gmp, we automatically get
the fix when running “gnulib-tool --update”.
> And if you need to make any modifications, you ought to bug-report the
> corresponding problem. Hopefully, problems can be fixed in the gmp repo,
> so that guile can simply upgrade to the latest version from the gmp
> repo, rather than maintaining your own changes.
Sure.
What about the maintenance overhead for GMP developers? I mean, of
those 5000 lines, most are copied from GMP, right? So, bugs found in
GMP may have to be fixed in mini-GMP too, for instance.
Thanks,
Ludo’.