Hi, ni...@lysator.liu.se (Niels Möller) skribis:
> l...@gnu.org (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’.