[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#132885: ITP: mcs -- C# compiler



On Thursday 07 February 2002 09:53 pm, christophe barbé wrote:
> So you want to package the compiler, the JIT.
> What's about the classes ?

I only filed it as two itp, Mono (The classes, JIT compiler, and Interpreter) 
and C# (MCS, the C# compiler).

Mono itself is...
   Classes (MIT X11)
   Mint - MSIL/CIL Interpreter (LGPL)
   Mono - MSIL/CIL JIT Compiler (LGPL)
   Meta Data

(all of which come in one mono package from upstream [cvs module mono])

The c# compiler is a separate module from upstream [cvs module mcs]
MCS - C# Compiler (GPL)

Per consultation with Doogie (AKA Adam Heath) since there were two upstream 
packages I sent two ITP's. (There will probably actually be several debs to 
handle all of this... mcs, mono, mono-classes, mono-mint, mono-meta, etc. I 
hesitate to speculate at this time how everything will be packaged.)

BTW: I'm ignoring gtk-sharp for the time being.

> And can we do something with that in the today state?
>

Mint and some of the other mono components are semi-functional now. As its 
still a young and rapidly developing implementation I imagine much will 
change. But thats true with any software package. The functionality is such 
now though that packaging of some components is possible. Initially you will 
probably see packages for Mint, the Classes, and the Meta Data. The JIT 
should follow shortly after then mcs when its ready. Since this is a 
volunteer effort I wont speculate on any schedules for the availability of 
packages, all I can say is that they will be packaged.

> Last time I've had a look, the compiler written in C# was able to
> compile itself using the classes provided by someone else (whose name is
> subject to debate).
> Would it be possible to compile it from source ?
>

Ahh yes, here comes the DFS ramifications. Its true that the compiler can 
compile itself but that it currently requires the unmentionables classes. 
That will change pretty rapidly. More of my concern is that the initial build 
of mcs must be completed on another c# compiler. Currently there is only one 
other c# compiler and thats the unmentionables. Its a chicken and egg 
situation. Since there is only one implementation of the compiler right now 
that is Free Software the initial build [genesis perhaps] must be 
boot-strapped from a non-free compiler. This is exactly the same situation 
that GCC had a loooooong time ago. This will be rectified over time, but for 
now its a hairy situation.

Not wanting to delve too far into the legal issue here is what I propose.

Mono (mint, the jit compiler, classes, and metadata) would go into main.
mcs   (the compiler which depends on a c# compiler) would go into contrib.

My interpretation is that mcs is free software that depends on non-free 
software. Eventually I hope this will change but for now thats my 
interpretation.

IANAL which should preface most of this. mcs currently is in a hairy 
situation. It is Free Software, but doesn't necessarily meet the DFSG. On 
one hand you dont want to discourage the development of a Free Software 
alternative to a proprietary application, and yet in the same stroke you must 
deal with the situation at hand.

Right now it is possible to compile from source using standard components on 
other non-Unix platforms.

Of course figuring where it should go might need to wait until the deb's 
actually exist.

Cheers,
   Eric



Reply to: