unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: nisse@lysator.liu.se (Niels Möller)
To: ludo@gnu.org (Ludovic Courtès)
Cc: 10519@debbugs.gnu.org, Torbjorn Granlund <tg@gmplib.org>
Subject: bug#10519: guile and (mini-)gmp
Date: Sat, 11 Aug 2012 11:37:35 +0200	[thread overview]
Message-ID: <nnpq6xg468.fsf@stalhein.lysator.liu.se> (raw)
In-Reply-To: <874noawh4r.fsf@gnu.org> ("Ludovic Courtès"'s message of "Fri, 10 Aug 2012 23:51:00 +0200")

ludo@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

I hesitate to add it to mini-gmp.h, unless I can find a way to define it
without relying on limits.h or autoconf.

>   - it also still uses mpq’s, as Mark noted;

This is being addressed, I hope.

>   - random.c uses ‘mpz_realloc2’, also lacking.

That call could be conditional on HAVE_LIBGMP, I think.

> 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.

>> 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.

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

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.

The GMP developers have also considered adding #ifdef:ery in mini-gmp.c,
to let the application specify precisely which features are wanted.

(And I'm not sure what you mean with "GMP AIUI").

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.





  reply	other threads:[~2012-08-11  9:37 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-15 21:22 bug#10519: guile and (mini-)gmp Niels Möller
2012-01-16 10:19 ` Mark H Weaver
2012-01-16 14:06   ` Niels Möller
2012-01-16 19:21     ` Mark H Weaver
2012-01-28  9:49   ` Niels Möller
2012-01-28 10:10     ` Mark H Weaver
2012-07-22  9:04   ` Ludovic Courtès
2012-02-03 13:40 ` Andy Wingo
2012-02-03 19:56   ` Niels Möller
2012-02-03 20:01     ` Torbjorn Granlund
2012-02-04 22:46       ` Ludovic Courtès
2012-07-22  9:00 ` Ludovic Courtès
2012-07-22 23:17   ` Niels Möller
2012-08-10 21:51     ` Ludovic Courtès
2012-08-11  9:37       ` Niels Möller [this message]
2012-08-11 19:46         ` Ludovic Courtès
2012-08-11 21:50           ` Niels Möller
2012-08-11 22:48             ` Ludovic Courtès
2013-03-02 20:04               ` Andy Wingo
2013-03-02 20:58                 ` Mark H Weaver
2013-03-05 19:09                   ` Mark H Weaver
2013-03-18  0:01                     ` Mark H Weaver
2013-03-18  9:19                       ` Ludovic Courtès
2013-03-26  8:17                       ` Niels Möller
2013-03-27 17:00                         ` Mark H Weaver
2016-10-27 12:29                       ` Niels Möller
2016-11-10 19:56                         ` Andy Wingo
2013-03-02 21:45                 ` Niels Möller

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

  List information: https://www.gnu.org/software/guile/

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

  git send-email \
    --in-reply-to=nnpq6xg468.fsf@stalhein.lysator.liu.se \
    --to=nisse@lysator.liu.se \
    --cc=10519@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    --cc=tg@gmplib.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).