[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?'.