Mono 0.26

Release date: 14 Aug 2003

Hello everyone,

A new release of the Mono runtime and SDK is available for UNIX and Windows. Packages for various distributions are also available from our download page.

Since the last release, 1,591 individual commits were done to our runtime and class libraries (out of 2,700 commits to the repository).

189 bugzilla bugs were closed.

I know that the following summary is incomplete, I apologize for missing major features

We continue our SourceGear contract, so you will see a lot more stability and bug fixes in the area of networking, web services and the core of Mono.

Availability

Binaries for various platforms are available from our web site from the download section:

http://www.mono-project.com/download/

Source code for Mono, MCS, XSP and mod_mono are also available from our web site

New Features in this release

Peter Williams authored our new unified build system (before we had two build paths: one for Unix and one for Windows), and Gonzalo helped with the roll-out. Thanks to the two of them for assisting us in the migration.

The new build system supports profiles; Currently we support .NET 1.0, .NET 1.1 and the experimental Generics profile (for the Generics extensions).

Andreas Nahr continued his quest to fix the signatures, attributes and visibility in all of our class libraries. Also he has been adding the proper AssemblyInfo files to all of our assemblies as well as adding Locale support.

Runtime

Thread pool management has been fixed to have the same semantics as .NET; Lots of bugs have been fixed there.

Portability fixes, and progress on the Power PC port. Chris and Mark have initiated a SPARC port of the JIT engine and Malte contributed fixes to the ARM port.

C# Compiler

Martin, Ravi and Miguel fixed the top 88 most wanted bugs in the C# compiler, needless to say, we are very proud of the reliability and conformance of our compiler.

It was a fantastic compiler, now it is even better. Thanks to everyone who contributed bug reports for MCS, keep them coming.

Also MCS has gone through a memory usage diet, and we have increased the performance on this release mostly by reducing the memory usage. We did this by using Mono’s integrated profiler.

Big outstanding bugs have been dealt with, and we are on a final pass to close the existing known problems before we jump into the anonymous methods and generics support.

Tools

Lluis contributed a new XSD tool based on the new XmlSerialization code. This version is more complete than our old XSD. It is now possible to create C# classes from a Xml Schema file and also create an XML schema out of a C# class

IL Assembler

Jackson got our IL assembler passing all of the Rotor tests, and also has added support for Generics.

We used our assembler to test our runtime engine generics support.

System.Net

Gonzalo added support for proxies as well as fixing plenty of bugs in NetworkStream, Socket and HttpWebRequest.

Jerome contributed the IPV6 support to Mono, which is only available if you build with the .NET 1.1 profile mode.

Web Services world

Lluis worked on adding support for server side ASP.NET web services, including complex parameters, in/out parameters, async calls, Soap headers and Soap extensions.

We also ship some nice examples in the XSP server that make use of the Web Services extension features (Dump, Encrypt and Trace samples included).

Gonzalo and Daniel made the mod_mono Apache module work with both 1.3 and 2.0 editions of Apache. This version also uses a separate process to host Mono, so we get the right caching semantics.

Work on the various pieces of WSDL continues.

Web Forms

Plenty of updates to the ASP.NET to conform to the new features in .NET 1.1, as well as many controls from Gaurav to support the Mobile class libraries.

Gonzalo and Lluis got the Web Services .asmx and .ashx files supported in our web hosting facilities (both XSP and Apache).

Xml Serialization

Lluis improved the XmlSerializer. It now supports all attributes for customizing xml output.

Lluis implemented the XmlSchemaImporter and XmlCodeExporter. They also improved primitive type support in xml schema.

Atsushi and Lluis improved XmlSchema compilation support. It now supports more precise schema object information.

Windows.Forms and System.Drawing

Alexandre Pigolkine and Aleksey Ryabchuk did most of the work on System.Windows.Forms and System.Drawing. Duncan and myself did janitorial work on the code base.

Bmp, Jpeg codecs improved, PngCodec added.

Xr implementation: It is possible to load an image, paint on it and save modified image to a file: Currently 24bpp and 32bpp formats are supported.

Duncan and Larry Ewing (yes, that Larry Ewing) improved our Xr-based rendering engine, which continues to move along

Wine implementation improved to support image visualization.

MDI Forms work on Linux.

FileDialog is compatible with Wine, ColorDialog implemented. The dialogs were not tested with WineLib package (looks like it does not support common dialogs).

Implementation of some controls (Button,Label,RadioButton,CheckBox) changed to be compatible with documentation and to work with WineLib package.

Some bugs, revealed by samples at http://www.nullenvoid.com/mono/wiki/index.php/WineSamples, are fixed.

Switched to WineLib by default.

XML support

The work to implement a fully managed version of Xslt (System.Xml.Xsl) is making enourmous progress. The effort is being coordinated by Ben who has done an amazing job in implementing Xslt in record time. Both Atsushi and Piers made very big contributions to the effort.

Monodoc is now capable of running completely with our managed implementation of Xslt. This is good, because we will now be able to implement properly the XPathNavigator-based interfaces without having to resort to temporary files, and we also get the proper threading semantics.

Piers did an great job at fixing XPath as the work on Xstl progressed. He also fixed the various bugs reported by the Dashboard hackers (Variable handling, improved namespace support, sorting support and so on).

Atsushi also got XPathDocument and its XPathNavigator implemented. XmlDocument’s XPathNavigator has been also improved and is a lot faster thanks to the new architecture. They are now almost finised.

On the DTD support: XmlValidatingReader validatation, entity handling, ID and default attribute support in XmlDocument and XPathNavigator.

Improved well-formedness check in XmlTextReader and XmlNodeWriter was implemented, in relation to managed XSLT (Atsushi).

Security

C14N support has finally been added to System.Security assembly thanks to Aleksey Sanin!

Added missing classes/methods to System.Security, System.Security.Permissions, System.Security.Policies and System.Security.Principal. We now have a much better signature compatibility with the framework. [Duncan, Sebastien]

New unit tests in System.Security.Permissions, System.Security.Policies and System.Security.Principal. (Sebastien)

All (known) bugs are fixed in CryptoStream. (Sebastien)

MonoTODO attributes under System.Security.* have been updated and should reflect reality. (Sebastien)

Remoting

Improvements in Remoting infrastucture. Now it can run Remoting.Corba out of the box. Both client and server channels work.

Implemented HttpChannel, thanks to the work of Hussein Mehanna, Ahmad Tantawy and Ahmad Kadry.

JScript

Progress from Cesar:

Parser: Support for classes, enumerations, interfaces, packages.

Code Generation: “Hello mono::” is back. (first jscript .net program compiled by mjs).

Public API: The stubs for the classes of the Microsoft.JScript namespace public API are complete now.

CodeGeneration and Semantic Analysis were supposed to be implemented as Visitor classed, that will change. The methods Resolve () and Emit () will be at each AST class.

System.Design and CodeDom

Andreas contributed a VB CodeDom provider and also implemented plenty of functionality System.Design and also fixed roughly a thousand API entry points in the API.

Mono Cairo debuts

Duncan has done Cairo bindings for Mono.

In the next release we will drop our support for the old Xr bindings, and move everything to the new Cairo API.

The people behind this release

The following developers contributed to this release:

Ahmad Kadry, Ahmad Tantawy, Aleksey Demakov, Aleksey Ryabchuk, Alexandre Pigolkine, Alex Graveley, Andreas Nahr, Atsushi Enomoto, Ben Maurer, Bernie Solomon, Carlos Alberto Cortes, Carlos Barcenilla, Cesar Octavio Lopez Nataren, Daniel Lopez, Dennis Hayes, Dick Porter, Dietmar Maurer, Duncan Mak, Ed Thomson, Ettore Perazzoli, Francisco Figueiredo Jr., Gallery-a, Gaurav Vaish, Gonzalo Paniagua, Hussein Mehanna, Jackson Harper, Jaroslaw Kowalski, Jean-Marc André, Jerome Laban, Joel Basson, Johannes Roith, John Luke, Jonathan Pryor, Joshua Tauberer, Juli Mallett, Larry Ewing, Lluis Sanchez, Malte Hildingson, Mark Crichton, Martin Baulig, Martin Willemoes Hansen, Miguel de Icaza, Mike Kestner, Mr. Mandar, Nick Drochak, Paolo Molaro, Pedro Martinez, Pelle Johnsen, Peter Williams, Philip Van Hoof, Piers Haken, Prajakt, Rachel Hestilow, Rafael Teixeira, Ravi Pratap, Rodrigo Moya, Sebastien Pouliot, Thong Nguyen, Timothy Parez, Zoltan Varga.

This list is not complete, it is missing contributions that were sent to the list, as it was very hard to track the two million incremental line patch since the last release (lots of documentation, thats why ;-).