[MonoDevelop] an example of compiler addin please

Michael Hutchinson m.j.hutchinson at gmail.com
Fri Jan 8 02:13:39 EST 2010

On Fri, Jan 8, 2010 at 12:16 AM, Vasili I. Galchin <vigalchin at gmail.com> wrote:
> Hello,
>     I am reading the FSharpBinding. It seems to be based on an
> existing compiler addin. I want to read a compiler addin that works in
> order to write a workable F# addin. Please point at an existing and
> working compiler addin!

All of the languages supported by MD are addins. The addins included
with MD can be found in main/src/addins: CSharpBinding, CBinding,
Several other addins are maintained in MD SVN but distributed/packaged
separately from the main tarball. These are in the "extras" directory:
JavaBinding, ValaBinding, PythonBinding, BooBinding

The FSharpBinding was based on the old CSharpBinding *before* we
finished removing GPL code from MD, so it unfortunately is
GPL-derived. We no longer accept GPL code into MD SVN because of the
limitations and complications it causes. Removing GPL code means that
it's now possible to use code with GPL-incompatible licenses such as
Apache v1 and MS-PL, and also to write closed-source commercial
addins. Some addins are LGPL, which is better - these addins can't use
LGPL-incompatible libraries/code, but at least they don't place
restrictions on code that references them. Most of the MD code is
MIT/X11, which is a very liberal license.

Anyway, the upshot is that in order for the F# addin to be included in
MD SVN, it needs to be rewritten using a more liberal license, ideally
MIT/X11. Also, Don Syme (MS) has stated intention to release F# under
MS-PL license eventually, so it would be very useful for the MD F#
addin to be able to use that code, e.g. for parsers.

Beware that there is still some GPL code in some of the addins in
extras (e.g. the Boo binding) and some LGPL code in  some files in
main - so check the headers on any source files you base the F#
binding code on.

Michael Hutchinson

More information about the Monodevelop-list mailing list