The next step

Simon Marlow simonmar@microsoft.com
Sun, 3 Jun 2001 11:45:42 +0100


> > I agree with what you're saying, but with cross-module optimisation
> > turned on in GHC, virtually any non-trivial change to the=20
> implementation
> > of a module causes a change in the .hi file.   So *unless*=20
> you turn off
> > cross-module optimisation between the application and the=20
> library, you
> > have vitually no hope of ever successfully re-linking the=20
> application
> > with a modified version of the library.  That would be in=20
> violation of
> > the license, no?
>=20
> If I am not mistaken (anything else wouldn't make much
> sense), what the license says is that only if the definition
> files (=3D .hi) are not changed, can you reasonably expect
> that re-linking works.  This means, in Haskell, you can make
> very little change to the library.  That's bad for the user
> and good for the vendor of the proprietary code if you like.

This is indeed what the license says if taken literally(*).  But it
clearly goes against the stated intention of the license, which is to
allow re-linking of the application to a modified library.  If this
interpretation is correct, then with GHC you can conform to the license
while still not providing adequate means by which someone can re-link
the program to a modified library.  This smells like a loophole, and one
I expect the FSF would like to clarify.

(*) if we take "definitions files" to equate to interface files in
Haskell, which is still an interpretation because they are quite
different beasts.

> I am quite sure that's that the interpretation, because
> otherwise it would mean that I can change a #define in a
> header of a lib and expect to relink successfully, which
> clearly can't be.
>=20
> This is something, I would also be happy to ask the FSF
> about if it helps.

please do, and feel free to forward this discussion to them.

Cheers,
	Simon