
On Tue, Jan 12, 2010 at 10:24:22AM +0100, minh thu wrote:
2010/1/12 Duncan Coutts
: Any user can then perform the last step themselves and if they're really lucky they might get that to work with a slightly modified version of the LGPL'ed package. In practise of course this isn't that easy for the user because GHC does not make it easy to make ABI compatible packages. However it is my understanding that this procedure will comply with the LGPL.
In short, if I understand you correctly, you would just have to provide your code in unlinked form regardless of the existence of some tool to create another ABI-compatible version of the LGPL library.
This alongside of the last discussion (which also roughly said you can license the code as you want when it is the client responsability to link the final binary) makes the (L)GPL quite useless (as a "freedom" keeper) whenever the code is made for specific clients...
I don't really follow. GHC inlines aggressively between modules. IMHO you would need to disable cross-module inlining. This means GHC would miss a lot of optimization oportunities. Oh, well. For example, if you use an LGPL concrete monad package and I want to CPS transform it, then all primitive operations would have to be changed. That means *any* inlined code from this module would change. Are you saying that this kind of change would count as "ABI incompatible change"? And so LGPL would say nothing about it? Am I missing something? :o) Cheers, -- Felipe.