bignums, gmp, bytestring, .. ?
Peter Tanski
p.tanski at gmail.com
Sun Nov 19 11:05:36 EST 2006
Hi Neil,
On Nov 17, 2006, at 7:44 PM, Neil Mitchell wrote:
>> - do all those who want to distribute binaries, but not dynamically
>> linked, need bignums?
>> - it would be nice to know just how far off a good haskell version
>> would be performance-wise..
>> - what would be a killer for numerical programming, might still be
>> quite acceptable for a substantial part of haskell uses?
>
> One advantage you probably haven't thought of is the size of the
> binary. Currently GMP adds about 50Kb on to the Yhc runtime, for what
> in the most cases is probably an occasional addition. If the bytecode
> for a bignum library was less than this then there could be a
> substantial size saving.
The entire static GMP library is 1.090976 MB on my machine (Mac OS
X), so 50KB is not much for the static linker to include. A
replacement library should be smaller (written in Haskell it would be
much larger but only included as necessary): maybe 30-40KB.
Depending on the compiler used for the replacement library, the code
could be even smaller (for Intel it might be larger, for Microsoft
CL, IBM XL or Sun CC it should be smaller). GCC has historically
produced relatively large binaries; though v4.2 might be a little
better I can't count on that as MinGW still distributes 3.5. The
replacement library would still add a bit to every binary if it was
included in the runtime. Fortunately for Yhc, bytecode programs may
be much smaller. For other Haskell compilers dynamic libraries are
only alternative to a library (as opposed to primitive)
implementation of Integer.
> (Of course, Yhc has absolutely no license issues with libgmp, and
> would have substantially worse performance than GHC at bignum
> optimisation)
That is always subject to change :)
Cheers,
Pete
More information about the Glasgow-haskell-users
mailing list