
Wolfgang Jeltsch wrote:
Am Mittwoch, 25. Februar 2009 23:38 schrieb Peter Hercek:
So my opinion (IAMNAL): 1) source code under very limiting commercial license (just to allow recompile with a newer LGPL lib and nothing else) is OK 2) it is probable that only the *.o, *.hi files and a linking script are OK too
I think, it’s technically not possible to let your Haskell application use another library version when you just have the .o and .hi files of the new library version. The .hi files typically contain code which is inlined by the application, so you have to be able to recompile the application. Or am I misunderstanding you?
You may be right. I do not know. Compiler authors would know. But if the *only* problem is the inlined functions then it may not be that bad. Depends whether the depth of inlining has some limit and whether a change of code which is not inlined any more results in failure to link correctly too. The point is that inlining itself is not a problem simply the code which is inlined represents the interface and you need to provide an option to upgrade to a newer library with the same interface only. The same problem is with shared objects in C. The header files may contains macros (which are inlined) and you are not forced to provide source code of your app despite the fact that compilation inlines some code from the LGPL library used. Simply that code is part of the interface and changing it changes the interface. The acceptable size of inlined fuctions for a C code is about 10 lines. I did not read any info how it would be for Haskell. Peter.