[Mono-announce-list] Mono 0.20 has been released

Miguel de Icaza miguel@ximian.com
23 Feb 2003 22:03:24 -0500

Hello everyone!

    The Mono Team introduces the best Mono release so far we have
done.  Thanks to everyone who contributed fixes, code, ideas, and bug
reports. =20

    Mono 0.20 has been released, it is available at the usual location:


    This is a truly heroic release of Mono.  Major architectural
chunks that were missing, or were miss-implemented have been fixed in
this release, and we are very proud of it.  Please see the list of
features, because there is no short way of introducing just how good
this release is.  A big thanks goes to Piers for setting up a
Tinderbox that monitors problems with the Mono CVS repository.

    We released packages for SuSE 8.0, Mandrake 8.2, and various
Red Hat releases.  It will be made available on the Red Carpet Mono
Channel tomorrow Monday.

   Source code for Mono, MCS, the Mono Debugger, XSP is available as
well from that web page.  The sources are:

     MCS package (Class Libraries, C# and VB.NET compiler and managed tools=


     Mono package (Runtime engine, JIT compiler):


     XSP package (XSP test web server for ASP.NET webforms):


    This release is brought to you by: Alvaro del Castillo, Alan Tam,
Alp Toker, Alejandro S=E1nchez, Alexandre Pigolkin, Atsushi Enomoto,
Brian Ritchie, Christopher Bockner, Daniel Lopez, Daniel Morgan,
Dennis Hayes, Dick Porter, Dietmar Maurer, Duncan Mak, Gaurav Vaish,
Gonzalo Paniagua, Jackson Harper, Jaime Anguiano, Jeff Stedfast,
Johannes Roith, John Sohn, Jonathan Pryor, "Lee Mallabone, "Lluis
Sanchez, "Marco Ridoni, Mark Crichton, Martin Baulig, Martin Willemoes
Hansen, Miguel de Icaza, Mike Kestner, Nick Drochak, Paolo Molaro,
Patrik Torstensson, Pedro Martinez, Per Arneng, Peter Williams, Petr
Danecek, Piers Haken, Radek Doulik, Rafael Teixeira, Rodrigo Moya,
Sebastien Pouliot, Tim Coleman, Ville Palo, and Zoltan Varga.

   They commited 1810 changes to CVS patches in the past 33 days.

* New in this release

      * Zoltan and IKVM

	Zoltan's patches to run Jeroen's IKVM (the Java VM that
	translates JVM bytecodes into .NET bytecodes) are in. =20

      * Remoting.

	The remoting team's patches that were held off on the previous
	release are here.  Lluis and Patrik have done a fantastic job
	in getting remoting to work.  Many low-level runtime engine
	changes, and plenty of work on the class-library stuff.
	Lluis has posted a couple of sample applications to the
	mailing list, you can try those out.

	The new release includes a working BinaryFormatter and
	BinaryFormatterSink.  It means that together with TcpChannel
	it is possible to make remote calls with any type of
	parameters and return values, including value types,
	MarshalByRefObject types (that are properly
	marshalled/unmarshalled), delegates, enums, etc.

	RemotingConfiguration is partially implemented. It cannot read
	from config files, but manual configuration using the api is
	fully working.

	Implemented full support for client activated types and for
	well known objects (both singleton and single call).

	Lease manager fully working (it manages the lifetime of server

	Implemented interception of the new operator, so it is
	possible to create a remote object using "new", if the type is
	properly registered in RemotingConfiguration.

	In Lluis' words: `Basically, 0.20 will have almost all needed
	for a distributed application with Remoting'

      * New threading semantics, IO-layer

	Dick Porter in a couple of weeks has heroically redone much of
	the threading support to match the .NET behavior (details are
	on the .NET threading book as posted on the Mono site).

	He also did a lot of bug fixes in the IO/threading space.  The
	threading implementation now contains a new and faster Monitor
	implementation, as well as a correct Pulse()/Wait()

	GC thread finalization has been re-enabled.  This means that
	finalizers will be ran on a separate thread, as done in the
	Microsoft.NET Framework.  This might expose some bugs on
	existing finalizer code.

      * Moved to NUnit2

	Nick and Gonzalo helped us move to the new NUnit2 platform for=20
	all of our tests.   A big applause goes to them.

     * Cross Appdomain invocations work now.

        ASP.NET and NUnit2 both used cross appdomain invocations, we
        have fixed a number of problems, and they are now functional.

	The AppDomain fixes and the Remoting fixes have allowed us to
	remove a number of hacks in the ASP.NET implementation that
        were previously there.

	Implemented CrossAppDomainChannel, for calls between domains.

     * C# Compiler and Debugging.

	When generating debugging information in the compiler (with
        -debug, -g or -debug+) the compiler will embed the debugging
        information into the resulting executable instead of
        generating a separate file.  Very nice.

	Generating debugging information has also improved vastly
        performance-wise, and now it is possible to always use
        debugging builds for software development.

	A number of bugs were fixed on the compiler as well and
	by using the Mono profiler we have reduced the memory
	consumption and accelerated the compiler.

	Thanks to Jackson, Martin, Paolo and for helping here.

      * VB.NET Compiler.

	Plenty of new features are included in the compiler in our
        path to conformance.  See <FIXME:get-url-for-posting> for
        details on the status of the compiler, and the pieces missing.

      * ILasm and Mono.PEToolkit.

	Work on the IL assembler has resumed, but it is not yet ready
        for production use.  The Mono IL Assembler uses the
        Mono.PEToolkit library done by Sergey and Jackson to
        manipulate CIL image files.

      * Cryptographic work.

	Sebastien has provided a cert2spc and secutil tools for
	certificate management.  This is the first release that ships
	an assembly for System.Security

	Also a new internal assembly used only on Windows allows Mono
	users to use the unmanaged crypto providers.

      * System.XML

	Atsushi has continued to improve the work on our XML
        implementation: fixing bugs and more closely matching the
        Microsoft implementation.

      * More PowerPC/Alpha support.

	Taylor Christopher has contributed more code generation macros
	for PPC and Laramie Leavitt for Alpha.

      * System.XML.Xsl

	Gonzalo continued the implementation of our XSLT transformation
        API (custom .NET functions are still missing though).  It no
        longer uses temporary files to apply transformations.  Thanks
        to an idea from Zdravko Tashev.  Xslt Web controls work as
        part of this fix.

      * ASP.NET

	Gonzalo has cleaned up a lot the code base, and now our test
	server supports a --root and --virtual command line options
	for better control.=20

	Also, now we generate a much nicer error page on errors.  We
	are looking for volunteers to improve the default look of this

	Authentication is now supported

      * Mobile Controls.

	Gaurav Vaish continues on his quest to complete the
	implementation of the Mobile controls.  These controls are
	required to run a stock IBuySpy application.

      * Class Libraries:

	New Mono.Posix class library that contains classes for working
	on a Posix systems.  Things like Unix domain sockets are here.

      * System.Windows.Forms

	Alexandre Pigolkine continues to contribute more code to our
	Windows.Forms implementation.  Currently it only runs on
	Windows (or in Linux without GC enabled, due to the
	pthread/Wine threading library mismatch.  This is being
	actively addressed as part of the Wine work due to the
	movement to the new thread implementation available in RH 8.1).

      * Database providers

	Christopher Bockner has updated his DB2 database provider (now
	with prepared statement functionality) and Tim Coleman has
	continued work on the Oracle database provider (welcome back

      * Database code.

	Dan Morgan continues to develop core components in System.Data
	(and now we welcome Alan Tam to the System.Data core hackers)

	The SQL# tool now supports MySQLNet, Npgsql, DB2Client, and
	Oracle clients.

      * Runtime

	mono --profile now performs memory allocation profiling too.

      * Runtime fixes.

	We now support multi-module with external file reference
	assemblies. =20

	The above in English means that we can now run Eiffel.NET code
	in Mono.

      * Monograph:

	More statistics supported now.

      * System.Web.Mail

	Per has contributed the code for this namespace.

* Bugs=20

	Plenty of bugs were closed. =20