[Mono-list] Mono 0.10 is out.
Miguel de Icaza
miguel@ximian.com
27 Mar 2002 02:24:07 -0500
Hello everyone!
Mono "Self Hosting" 0.10 is out! (Alex insisted I used the
<blink> tag for "Self Hosting", but was dissapointed when he
realized most mailers dont support this).
Too many things have happened since the the 0.9 release,
almost an entire month. The big news is that we are shipping
a the self-hosting Mono C# compiler. This has been tested on
Linux/x86 only.
Also, we delayed the release for one reason or other, but it
turns out that as a extra bonus, Paolo fixed the last
outstanding bug in the JIT engine, so the compiler now runs in
the JIT engine instead of the interpreter.
The mono-0.10 release includes the libraries required to run
the compiler as well as assorted .NET programs [1].
* What is new
There is so much stuff in this release that is hard to keep
track of it.
Jason, Kral and Duncan have done an amazing job with
System.Xml, up to the point that it is even being used by
gtk-sharp's code generator (and it all comes with great test
suites to verify that it works!). Ajay's XmlSchema code is
also shipped.
Martin worked on our debugging infrastructure (the JIT can
load dwarf files, and our class libraries now generate dwarf
debugging info; we are in the process of adding this to the
compiler, the patch did not make it to this release though).
For the first time the System.Web assembly has built without
all the excludes, so you can get your hands on Gaurav and
Lee's massive code base.
Lots of new tests to the runtime, class libraries and compiler
are included. As always, big thanks go to Nick for continued
guidance to new developers, and writing new tests.
Dan removed the System.PAL dependency, we now have moved to an
internalcall setup for all the System.IO calls, and dropped
the MonoWrapper shared library.
Porting wise: Sergey's StrongARM port is included now; Jeff's
SPARC port and Radek's PowerPC port have been updated to
reflect the new changes in the engine.
Runtime wise: Dietmar also got us asyncronous delegates
implemented. Dick continues his work on our foundation
classes, and has resumed his work on the IO layer.
Paolo is the hero behind self hosting on Linux. Send your
congrats (and wine) to him.
And without the help from Mike, Duco, David, Piers, Nick,
Sergey, Mark, Jonathan, John, Adam and Dennis this release
would have not been possible.
This release is mostly ECMA compatible. I did not expect this
to happen so soon. I am very grateful to everyone who has
made this happen
* The goods
The runtime sources and binaries to the compiler/libraries:
http://www.go-mono.com/archive/mono-0.10.tar.gz
The class and compiler sources:
http://www.go-mono.com/archive/mcs-0.10.tar.gz
* Requirements:
You still need glib-2, and pkg-config. If you plan on
compiling large applications, getting the Boehm GC is a plus
(we will integrate this in a future version, for now it is an
external requirement).
Boehm GC is available in packaged format for Debian and Red
Hat systems.
* To compile on Linux
Do your regular chores with mono-0.10.tar.gz, you know the
drill. In the end, after you reach the `make install' phase,
now you can do some cool stuff.
If you want to compile the compiler (just to try it out),
untar the sources to the compiler (mcs-0.10.tar.gz) and do
manually:
cd mcs-0.10
(cd jay; make)
(cd mcs; make monomcs)
Now you will end up with a nice mcs4.exe in the mcs/mcs
directory, that is the compiler. If you want to use that,
replace the mcs.exe we distribute with the mcs4.exe you got.
* Gadgets
Man pages for mcs, mono and mint are included for your
enjoyment.
Particularly of interest is `mint --profile' which is awesome
to profile your application, the output is very useful.
Also, if you want to impress your friends, you might want to
run the JIT with the `-d' flag, that shows you how the JITer
compiles the code (and shows the basic blocks and the forst of
trees as it goes).
* Next steps
More classes are missing. These are required so we can run
nant and nunit natively. Once we achieve that, we will be
able to ship a complete environment that compiles on Linux.
Currently our makefiles still use csc, as we still need
nunit/nant to work.
Miguel.
[1] Of course, .NET programs that try to use classes we have not yet
implemented, will be left wondering `why did this happen to me?'.