ANNOUNCE: GHC version 6.8.2
Manuel M T Chakravarty
chak at cse.unsw.edu.au
Tue Dec 18 23:54:20 EST 2007
Judah Jacobson:
> On Dec 17, 2007 5:58 PM, Manuel M T Chakravarty
> <chak at cse.unsw.edu.au> wrote:
>> Ian Lynagh:
>>> On Mon, Dec 17, 2007 at 12:53:32PM +1100, Manuel M T Chakravarty
>>> wrote:
>>>
>>>> Actually, I think, we should use the gmp/ in the ghc repo by
>>>> default
>>>
>>> If you want to use it when building a bindist that might be used on
>>> other computers you shold be able to set
>>> HaveLibGmp = NO
>>> HaveFrameworkGMP = NO
>>> in mk/build.mk, although I'm not sure I've ever tried it.
>>>
>>> The disadvantages of using it are it might be out of date (we had
>>> some
>>> Windows segfaults a while ago that were fixed by updating the in-
>>> tree
>>> gmp) and wasted space.
>>
>> Sure we waste some space, but the alternative is worse. Programs
>> compiled with GHC will essentially not run on any computer, but the
>> one where they were compiled. For example, the number of Macs with
>> gmp installed is minuscule. The default should be to build programs
>> that run everywhere with minimal hassle (not programs that save some
>> space, but are unusable on most computers).
>
> My understanding was that one major reason to dynamically link against
> GMP is to satisfy the LGPL, not just to save disk space. I found a
> couple old but relevant posts by Wolfgang Thaller, who originally
> created HaskellSupport.framework (now GMP.framework):
>
> http://www.haskell.org/pipermail/glasgow-haskell-users/2002-June/003494.html
> http://www.haskell.org/pipermail/cvs-ghc/2005-March/023769.html
>
> The gist of those posts is the following:
> - Statically linking against GMP puts extra license requirements on
> any ghc-compiled program; thus, dynamic linking is preferable.
Dynamic linking is preferable, because it is the simplest way to
comply with the LGLP (specifically, Section 4(d)) in a closed-source
program. However, it is incorrect to say that static linking leads to
extra license requirements. All that is required is to enable users
to use the program with a modified version of the GMP. There are two
simple ways of doing that: (a) provide access to the .o files of your
program so that they can statically link with a different version of
the GMP or (b) to provide a version of the program linking GMP
dynamically alongside the statically linked version.
In any case, no change of the closed-source program's licence is
required.
Besides, it is far from clear whether the distinction between static
and dynamic linking is legally sound: http://www.oslawblog.com/2005/01/static-linking-gpl-and-lgpl.html
>
> - On OS X, installing new frameworks is very easy (just drag-and-drop
> the framework into ~/Library/Frameworks or /Library/Frameworks; the
> former doesn't even need admin privileges). This doesn't seem like
> much to ask of users.
I think it is. It means, Haskell programs are more hassle to install
than, say, C programs.
Manuel
More information about the Glasgow-haskell-users
mailing list