Browse thread
[Caml-list] Announce: Schoca-0.2.3 released
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | skaller <skaller@u...> |
| Subject: | Re: [Caml-list] Re: Announce: Schoca-0.2.3 released |
On Tue, 2004-10-26 at 00:35, Stefan Monnier wrote: > Following the GMP precedent (GMP was a GPL library and someone wanted to use > it in a non-GPL product), the FSF managed to require the company to write > the crappy implementation "fgmp" but was then satisfied. Sounds like a con job. I can write code that requires a GMP compatible library and FSF can't do anything about how I licence my code -- provided I don't actually derive any of my code from GPL'd code. > I.e. there's a clear precedent that shows you *can* indeed use the trick of > writing a crappy compatible library. The real problem is that to make your code work properly with GMP or other library you need to provide an interface. It isn't so easy to do that without 'deriving' from a published specification -- either the actual headers or the documentation. You have to use the same function names and equivalent types, and to get that right you pretty much have to derive from the spec. I have no idea how to do that without coming under the control of the licence for the spec .. but if you do manage to do so, the ability to link to the implementation can't possibly be relevant .. unless perhaps you test your code against it, and make bug fixes, in which case those fixed codes just might be deemed derived works. As it happens, Felix has a wrapper for the C++ wrapper for GMP, and it is FFAU and not GPL because the interface is 'the usual math operators'. I also ship a wrapper generator that can wrap code like GMP to make it available under Felix. Those wrappers are derived, and so they're GPL .. but I don't ship them, only the tool that creates them. It's not clear including such wrappers in a Felix program requires it to be GPL either. That's because Felix has an advanced source code linker that only instantiates used code .. so you can have the capability there, and perhaps your whole source is infected .. but if you don't actually call GMP the resultant program is no longer GPL :) Umm . what .. lol! Which all comes back to the stupidity of trying to define what using/linking/combining/distributing/ etc etc actually mean. The answer is -- nothing at all, outside of existing practice used for C programs. Interscript/Felix/Flxcc (the latter is the wrapper generator) approach the problem in such a novel way that the terms of the GPL are meaningless. For example .. the wrapper generator creates a derived work .. but it fails to include the licence of the original work in the generated wrappers. Is it breaching GPL? Of course not -- its the *client* who uses it that is at risk. Well, perhaps your /usr/include contains some code licenced with a license incompatible with GPL .. but flxcc wraps the *whole* of /usr/include in one go. The resultant product is derived from all of it simultaneously. So is it actually legal to run the tool at all?? -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net