[Mono-list] Re: System.CodeDom.Compiler licensing issues (was Hmmm...)

Piers Haken piersh@friskit.com
Fri, 24 May 2002 10:07:33 -0700


So does this mean that, in order to remain compatible with existing
code, the mono CLR must implement the Microsoft.Csharp namespace?

If mono does this, but I link against Microsoft's version of it, how
does that break GPL when I run the same binary on mono?

Piers.

-----Original Message-----
From: Dwivedi , Ajay Kumar [mailto:AjayKumar.Dwivedi@dresdner-bank.com] 
Sent: Friday, May 24, 2002 1:27 AM
To: 'James Michael DuPont'
Cc: Mono Hackers List (E-mail)
Subject: RE: [Mono-list] Re: System.CodeDom.Compiler licensing issues
(was Hmmm...)


I have been following the discussion and it seems there
is a lot of confusion over here.

> But there is also the parser side of the Compiler that 
> System.CodeDom.Compiler/CodeDomProvider.CreateParser

	CodeDomProvider itself is an abstract class, so 
there is no way you can instantiate it and call CreateParser (). 
CreateGenerator(string filename) and CreateGenerator(TextWriter output)
call the abstract CreateGenerator(), thus there is no way you can use
them without implementing CreateGenerator, whereas CreateParser()
returns null. You can test all this with the attached class.

	The CodeDom is implemented by the Compiler, in MS.NET
case the Microsoft.CSharp and Microsoft.VisualBasic etc..
A quick search on google results in
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q304655
	To summarise the above link, you need to instantiate
Microsoft.CSharp.CSharpCodeProvider class and then call CreateParser or
CreateCompiler.

	Now if mono includes a Mono.CSharp assembly which 
is a part of Compiler and under GPL there shouldn't be 
any problems. One needs to explicitly link the Mono.CSharp 
assembly to use the CodeDom. Well he is free to use 
any other CodeDom provider if he doesn't want to use GPL.

Happy Hacking,
Ajay