Mono 1.2.3 Release, January 31st, 2007

Mono 1.2.3 is an update to Mono 1.2.2 in the Mono 1.2 series, it is a bug fix release for all the supported components, but also includes updates on the 2.0 stack.

All of the changes since 1.2 are documented in the following release notes: 1.2.1 and 1.2.2.

New in Mono 1.2.3

This release contains major improvements to ASP.NET 2.0 and Windows.Forms as well as many bug fixes to the C# compiler and runtime libraries. Developers and users are encouraged to upgrade to this release.

Stats:

  • 1,933 missing methods were implemented.
  • 164 methods with pending implementations were fixed.

This is the first release to ship the new Visual Basic compiler from Rolf Bjarne, see below for details.

This release ships an API complete ASP.NET 2.0 implementation (except for WebParts).

This release also includes a critical fixes to the runtime startup. Heavily multi-threaded applications would have crashed otherwise.

Windows.Forms has had over 115 bugs fixed.

In this release, we are now shipping the IronPython Community Edition (IPCE) from Seo Sanghyeon. IPCE includes a number of preconfigured libraries with IronPython to improve your IronPython developing experience.

Windows.Forms

TableLayout control (2.0) [Jonathan Pobst]

Significant updates to the 2.0 API (including most of the *Strip classes) [Chris Toshok, Andreia Gaita, Jackson Harper, Jonathan Pobst, Carlos Cortés, Daniel Nauck].

SendKeys (1.1) has been implemented [Andreia Gaita]

ListViewGroups, Autocompletion [Daniel Nauck]

Many performance optimizations have been implemented: reduced buffers used for double buffering, reduced memory usage by using standard event practices (use EventHandlerList instead of compiler provider events).

Visual Basic

This is the first release of Mono that includes the self-hosting Visual Basic environment. This is a preview of the Basic support, we will be releasing this officially at a later date.

The source code is available on a separate download (mono-basic package).

The environment includes Rolf Bjarne’s Visual Basic 8 compiler written in Visual Basic 8, and Mainsoft’s Visual Basic runtime for 2.0. The compiler only targets the 2.0 framework API, the runtime supports both 1.0 and 2.0 profiles.

ASP.NET

From Mainsoft: numberous bug fixes and improvements to the ASP.NET implementation. ASP.NET 2.0 is now control-complete (with the exception of WebParts).

During the development of the 2.0 support hundreds of bugs have been fixed, and a number of key applications have been ported to test the 2.0 support.

Mainsoft has ported the starter kits from www.asp.net with their Grasshopper toolchain: Personal Web Site, Club site, Small business, Classifieds and Time Tracker. These have not been tested directly with Mono yet.

From Marek Habersack:

  • Tag Mapping (the <tagMapping> in config files).
  • 2.0 Session State Model.
  • Support for 2.0 ProfileCommon custom profile class, generated from profile properties listed in Web.config
  • Correct and full implementation of the App_Local/GlobalResources folders.

From Damien Churchill:

  • Application auto-restart after changes to App_Code, App_{Local,Global}Resources are detected (code by Damien Churchill)

There is still a lot of work to do to improve the quality and performance of the ASP.NET 2.0 implementation, testers are welcomed.

The current status of ASP.NET 2.0 features is tracked here.

System.Media implementation

An implementation of the System.Media space is now available for Linux (other operating systems will need special support) [Paolo Molaro].

ASP.NET WebServices

Now it supports SOAP 1.2 as well as the WS-BasicProfile 1.1 checker [Atsushi Enomoto].

Many fixes to the XmlSerializer as well to support the new features [Atsushi Enomoto].

MkBundle

The mkbundle tool now allows the machine.config file to be embedded as well [Tor Lillqvist].

HttpListener

HttpListener now also support HTTPS, to configure the certificates use the httpcfg tool [Gonzalo Paniagua].

System.Net.Sockets

Completed the support for the 2.0 updates to the API in System.Net.Sockets [Dick Porter].

System.Drawing and GDI+

System.Drawing.SystemIcons are now implemented [Sebastien Pouliot]

Alpha values for ColorMatrix are now correctly applied and 40% faster [Sebastien Pouliot]

PNG images with alpha channel are now displayed correctly [Sebastien Pouliot]

New ICON format decoder (as transparent images); [Sebastien Pouliot]

15/16bpp bitmaps are now supported by the BMP decoder [Sebastien Pouliot].

Documentation

Monodoc now is shipping stub documentation for the 2.0 APIs [Jonathan Pryor].

Security

Authenticode: Signcode now generates valid signature on PE files with extra data (e.g. debug information, installers) and for file length that aren’t multiple of eight [Sebastien Pouliot].

SSL/TLS: Fix negotiation cache and added configurable cache timeout using the MONO_TLS_SESSION_CACHE_TIMEOUT environment variable [Roy Versteeg].

XML Signature and XML Encryption: several bug fixes, it now it support exclusive canonicalization (needed for ongoing Olive work) [Atsushi Enomoto].

X.509 Certificates

Support for inherited key parameters in DSA certificates [Sebastien Pouliot]

Support for DSA certificates in PKCS#12 files [Sebastien Pouliot].

Better support for X.509 CRL (including stores & certmgr support) [Sebastien Pouliot].

Microsoft.Build and Mono’s xbuild

xbuild (Marek Sieradzki’s implementation of `msbuild’ and the supporting runtime) is now able to build projects and it can now parse all of the msbuild project definitions (VS2005).

Work remains in two areas: improving the API support for MonoDevelop to use, and add batch support.

Details about xbuild are available here.

Sqlite Provider

2.0 API support in the Sqlite provider [Marek Habersack].

Runtime

Implemented support for generics in the remoting (2.0 APIs) [Robert Jordan].

Optimizations: Multi-array access has been hand tuned in the JIT; constant initialization and block initializations are now handled by the JIT; [Paolo Molaro].

Support for SafeHandles has been added to Mono, for full details about what is supported see the safehandles page on the Mono Web Site [Miguel].

Header files for Mono are now versioned, this is in preparation for having multiple runtime SDKs installed side-by-side [Paolo Molaro].

Optimized initialization of arrays (30% to 100% increase depending on the array size) and access to multi-dimentional arrays (4 times faster for three dimensional arrays) [Paolo Molaro].

Reduced runtime relocations and memory usage (20% less allocations in libmono and 10-20kb less writable memory used) [Paolo Molaro]

Ports

Alpha (Sergey), MIPS (Mark) and ARM (Paolo) ports have been updated.

The SPARC port is now three times as fast (Zoltan Varga).

Console

The 2.0 console is now lazily initialized, this means that the overhead of switching from the standard console to emulating a full-screen console will only happen if the new 2.0 features are used [Gonzalo Paniagua].

Contributors to this Release

Tor Lilqvist, Andy Hume, Sridhar Kulkarni, Jensen Somers, Sergey P. Kondratyev, Alp Toker, Radek Doulik, Damien Churchill, Marek Habersack, George Giolfan, Konstantin Triger, Vladimir Krasnov, Igor Zelmanovich, Adar Wesley, Ilya Kharmatsky, Tal Klar, Hagit Yidov, Yoni Klain, Merav Soudri, Noam Lampert

Installing Mono 1.2.3

./configure --prefix=/devel

Binary Packages and Source Code Downloads:

Source code and pre-compiled packages for SUSE, SLES, Fedora Core 3, 4, Solaris, RHEL, MacOS and Windows in a variety of platforms available from our web site from the download section.

Quick source code installation:

If we have no packages for your platform, installing from source code is very simple.

mono:

tar xzf mono-1.2.3.tar.gz
cd mono-1.2.3
./configure
make
make install

Then compile libgdiplus:

tar xzf libgdiplus-1.2.3.tar.gz
cd libgdiplus-1.2.3
./configure
make
make install