Re: Bug#132885: ITP: mcs -- C# compiler
On 02/08/02 Eric Molitor wrote:
> Mono itself is...
> Classes (MIT X11)
> Mint - MSIL/CIL Interpreter (LGPL)
> Mono - MSIL/CIL JIT Compiler (LGPL)
> Meta Data
There is a disassembler, too, and a compiler tool that may be useful
also for other projects (monoburg). Both are GPL.
> (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)
In the end I think we'll have a single package (note that the class
libraries are in mcs as well).
> 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.)
My suggestion is something like:
mono-lib-corlib: core class library
mono-lib-system: System.dll
mono-lib-*: other libraries
libmono and libmono-dev: runtime C libraries
mono-utils: mondis, pedump
mono-mint: interpreter
mono-compiler: mcs
mono: JIT
> 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.
Note that the jit and mint depend on the classes and the classes, too are
built with non-free sw. Actually, while I'm confident mcs will be
compiled on linux pretty soon, the classes are a harder problem and will
take longer.
> 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.
Well, mcs depend on free sw, but that free sw still has bugs :-)
The current free classes are capable enough that you can compile simple
programs with mcs on linux.
Anyway, I think it's not a big problem if the packages go into contrib
until mcs and the classes can be compiled with a bootstrapped mcs
on the target system:
csc compiles mcs to mcs1
mcs1 compiles mcs to mcs2
mcs2 compiles mcs to mcs3
mcs3 compiles corlib to corlib1
mcs3 compiles corlib to corlib2 (using corlib1)
mcs3 compiles mcs to mcs4 (using corlib2)
mcs4 and corlib2 ship as mcs and corlib in the tarball
At this point on linux you'll just use the included mcs and corlib
to compile them again.
We have a few steps more than gcc because we have to compile corlib,
too.
lupus
--
-----------------------------------------------------------------
lupus@debian.org debian/rules
lupus@ximian.com Monkeys do it better
Reply to: