Replacement for GMP as Bignum: ARPREC? Haskell?; OS-X and OpenSSL

Esa Ilari Vuokko eivuokko at gmail.com
Sun Jul 30 07:18:30 EDT 2006


On 7/30/06, Brian Hulley <brianh at metamilk.com> wrote:
> p.tanski at gmail.com wrote:
> > GHC Task Ticket # 601 suggests replacing GMP with OpenSSL's Bignum
> > library, BN. I have two questions concerning this:
>
> >From the ticket, this looks very scary:
>
>           but its LGPL license is problematic for users of GHC
>          (it prohibits static linking of GHC-compiled programs, for
> example).
>
> Does this mean I can't distribute my Haskell app as a commercial
> application? I certainly don't want to distribute source code and I've got

I am not a lawyer, and you should consult lawyer if you want real
advice about licensing issues.

Strict answer to first question: No.  You can distribute statically compiled
binaries.

> no idea how to compile a Haskell app other than using ghc --make, which
> creates a single exe ie with static linkage.

But in this case, yes, you can't.  You need to provide way to
relink gmp in you program.  As far as I know, this is simply possible
by taking all the objs --make generates, other objs and libs and giving
them on - users need to have ghc distro+their own gmp set in.

> If I only use Int's (not Integer's) in my code, is there a way to get rid of
> GMP so that I won't have an impossible licencing problem when trying to

I am fairly certain you cannot force or rely GMP getting dropped by
linker.

> distribute my application binary? If not, then it would seem absolutely
> vital to get rid of GMP as soon as possible or else try to persuade the
> authors to add the usual static linking exception to their LGPL licence for
> it.

GMP being rather GNU ;-) replacing is probably the only option.

There's other reason for dropping GMP as well: The ghc rts steals GMP
memory allocation (sort of integrating it with garbage collector) which
makes it impossible for other parts of program use GMP (in practice).

HTH,
--Esa


More information about the Glasgow-haskell-users mailing list