[M3devel] A question about the M3 licensing...

hendrik at topoi.pooq.com hendrik at topoi.pooq.com
Fri Aug 21 01:48:26 CEST 2009


On Thu, Aug 20, 2009 at 02:57:36PM -0400, Louis Chrétien wrote:
> I remember reading on this list (or was it the website...) that the way the
> licensing of Modula-3 is written, it would make it incompatible/impossible
> to merge this project with the GCC front-end from the GCC foundation, the
> way that GNU Ada was incorporated into that project.
> 
> Because M3 uses a modified GCC code generator, it would have a made sense to
> go that way.
> 
> But another, intriguing possibility exists: the LLVM project
> (http://www.llvm.org). It looks like a very high-performance, optimizing,
> multiple target infrastructure, that would make Modula-3 highly portable.

I looked into LLVM for another language, with the idea of using its 
in-memory interface and constructing the parse tree directly.  It turns 
out that it does type calculation during parse tree construction.  THe 
result is that any type I want to use has to be completely defined 
before I can use it anywhere in the parse tree I'm trying to build.  For 
compiler-synthesized records whose fields are invented while generating 
the intermediate code that uses them, this turned out to be an 
unacceptable ordering constraint.

There are ways around this by storing the entire intermediate code in 
RAM as a kind of insertable-text data structure, and then writing it all 
to a disk file, and then having the LLVM back end read that file .... 
but it got messy.

> 
> I'm sure i'm not the first to think of this, but what are the obstacle to
> porting M3 to that environment (apart from the obvious effort in programming
> required... ;-)))

I suppose there's another possibility -- writing a new M3 front end with 
a different licence, and being free of SRC forever.  Except that if 
some of our libraries are compiled from SRC source code, will we have to 
compile at installation tiem to avould distributing mixed GNU/SRC 
binaries?

-- hendrik



More information about the M3devel mailing list