[MLton-user] MLton license

Anoq of the Sun anoq@HardcoreProcessing.com
Wed, 12 Nov 2003 22:18:07 +0200


Stephen Weeks wrote:
> The current situation is that applications compiled by MLton must also
> be GPL'ed.  This follows from clause 2b of the GPL:

...

> Executables built by MLton are derivative works of MLton, and hence
> (2b) applies, because they contain the runtime system and basis
> library code.  I have confirmed this with the FSF.  There may also be
> other parts of the MLton code that infect executables.

Dooh! When the runtime is under GPL this is certainly true. However
I already have commercial and non-GPL software released which is
compiled with MLton and indeed I also had the impression that this
was OK (as you say seems to be the consensus among the MLton folks).

One solution is to make the runtime LGPL'ed (it stood for Library
GPL in the old days, but now Lesser GPL) instead of GPL'ed -
if you want to keep the 100% "free" spirit.
Another solution is to put the runtime under other non-restrictive
licenses - such as a commercial one as you are considering.
Or I guess people could write their own runtime with their own license
if they are ambitious enough :) To me it seems a real pity if the
best ML compiler on the planet cannot be used for anything but
GPL software - and it's also fair enough to have to pay for
commercial uses.
It is certianly a precioussszz piece of software y'know ;)

Regarding the license from the parts of the code from SML/NJ
that was mentioned earlier - I'm not sure if this is actually
valid when the code is mixed with GPL'ed code (in this discussion
in particular the other parts of the runtime). Or, well - you
have the restrictions of both licenses at least (rather than
any liberating _permissions_ of both licenses). For the
maths people I guess it's like the intersection of the 2 licences
rather than the union of the licenses :) So the restrictions
of GPL would still be present I believe - even for those parts
of the code from SML/NJ.

I had many good discussions with Richard Stallman (the "inventor"
of GPL) in the old days about licencing.
I don't want to be responsible for not quoting his optinions correctly,
but for what it's worth: He clearly advocates GPL (and not LGPL).
However it also seems that he believes that releasing code
under GPL and having a commercial license for other uses is
a good way of selling commercial software.

But you will need some kind of motivation for not just using
the free GPL'ed version.

In the case of MLton the obvious motivation is to
get permission to use the compiled programs without GPL'ing
the programs. Other ways for other pieces of software might
be to have the commercial version be the latest and greatest
version - and the GPL-version be an older release with less
features.

In my opinion the GPL + commercial thing is most efficient
(for making money that is!) when people want parts of the
program in their own programs - such as with the MLton runtime.

On a related note about the Win32 runtimes for GCC:

Cygwin has a GPL'ed runtime with commercially available licensing
(or at least it used to have - not sure if things are still like that?)

MinGW does not have any restrictions on it's basic runtime or the 
win32 API:
http://www.mingw.org/licensing.shtml



Cheers
-- 
http://www.HardcoreProcessing.com