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