mini-gmp

Rick Hodgin foxmuldrster at yahoo.com
Wed Dec 28 17:54:50 CET 2011


To be clear about this, there would be #define statements that are all enabled by default in the source code.  These can be overridden (by being already defined within the third party app's headers), which then disable those portions of the native GMP code base for compiling natively inside a third party app.

As for the installed implementation of GMP, however, such as those functions present and visible to apps which only link to the installed base, those would be defined by the ./configure script.

- Rick C. Hodgin

--- On Wed, 12/28/11, Rick Hodgin <foxmuldrster at yahoo.com> wrote:

> From: Rick Hodgin <foxmuldrster at yahoo.com>
> Subject: Re: mini-gmp
> To: gmp-devel at gmplib.org, "Niels Möller" <nisse at lysator.liu.se>
> Date: Wednesday, December 28, 2011, 11:51 AM
> I suggest making components of the
> native full-blown GMP modular.  Doing this you don't
> need a separate mini-gmp project, but rather just a single
> GMP project that can be configured through "./configure
> --disable-whatever" type flags to (by default) include
> everything, and by explicit reduction, exclude those
> portions you don't want or need.
> 
> - Rick C. Hodgin
> 
> --- On Wed, 12/28/11, Niels Möller <nisse at lysator.liu.se>
> wrote:
> 
> > From: Niels Möller <nisse at lysator.liu.se>
> > Subject: mini-gmp
> > To: gmp-devel at gmplib.org
> > Date: Wednesday, December 28, 2011, 9:13 AM
> > After discussion with Torbjörn and
> > some other GNU people (this started
> > as something like "Why does guile depend on GMP???
> I'm
> > using it as an
> > extension language for my application. I don't need
> any
> > bignums (or at
> > least not any particularly efficient ones) and I don't
> want
> > to bother my
> > users or developers with installing GMP"), I've
> started to
> > put together
> > "mini-gmp", with the below README.
> > 
> >   This is "mini-gmp", a small implementation of a
> > subset of GMP's mpn
> >   and mpz interfaces.
> >   
> >   It is intended for applications which need
> > arithmetic on numbers
> >   larger than a machine word, but which don't need
> to
> > handle very large
> >   numbers very efficiently. Those applications can
> > include a copy of
> >   mini-gmp to get a GMP-compatible interface with
> > small footprint. One
> >   can also arrange for optional linking with the
> real
> > GMP library, using
> >   mini-gmp as a fallback when for some reason GMP is
> > not available, or
> >   not desired as a dependency.
> >   
> >   The supported GMP subset is declared in
> mini-gmp.h.
> > The implementation
> >   is a single file, mini-gmp.c.
> >   
> >   The performance target for mini-gmp is to be at
> most
> > 10 times slower
> >   than the real GMP library, for numbers of size up
> to
> > a few hundred
> >   bits. No asymptotically fast algorithms are
> included
> > in mini-gmp, so
> >   it will be many orders of magnitude slower than
> GMP
> > for very large
> >   numbers.
> >   
> >   You should never "install" mini-gmp. Applications
> > can either just
> >   #include mini-gmp.c (but then, beware that it
> > defines several macros
> >   and functions outside of the advertised
> interface).
> > Or compile
> >   mini-gmp.c as a separate compilation unit, and use
> > the declarations in
> >   mini-gmp.h.
> >   
> >   The tests subdirectory contains a testsuite. To
> use
> > it, you need GMP
> >   and GNU make. Just run make check in the tests
> > directory. If the
> >   hardcoded compiler settings are not right, you
> have
> > to either edit the
> >   Makefile or pass overriding values on the make
> > command line (e.g.,
> >   make CC=cc check). Testing is not (yet) as
> thorough
> > as for the real
> >   GMP.
> >   
> >   The current version was put together by Niels
> > Möller
> >   <nisse at lysator.liu.se>,
> > with a fair amount of copy-and-paste from the
> >   GMP sources.
> > 
> > Comments appreciated. Exactly what GMP subset to
> implement
> > is not
> > entirely clear. Definitely missing are gcd, square
> root,
> > and more
> > general get_str and set_str (and then lots of variants
> of
> > the existing
> > functions, mpz_*div_q, mpz_*div_r, init_set, etc).
> > 
> > It would be nice to have gcc not depend on GMP, but
> that's
> > a bit more
> > tricky, since the dependency is via mpfr (and mpc?).
> > 
> > The repository is at http://gmplib.org:8000/mini-gmp/ (or
> > /var/hg/gmp-proj/mini-gmp on shell).
> > 
> > Regards,
> > /Niels
> > 
> > -- 
> > Niels Möller. PGP-encrypted email is preferred.
> Keyid
> > C0B98E26.
> > Internet email is subject to wholesale government
> > surveillance.
> > 
> > _______________________________________________
> > gmp-devel mailing list
> > gmp-devel at gmplib.org
> > https://gmplib.org/mailman/listinfo/gmp-devel
> >
> 


More information about the gmp-devel mailing list