Mono 1.9 is our last release before Mono turns 2.0, it is a stable release and an update to Mono 1.2.6 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 and 3.5 stacks.
All of the changes since 1.2 are documented in the following release notes: 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5 and 1.2.6.
This is the last release before the 2.0 release of Mono, it is a stable release and at this point the generics and the VM are supported feature complete.
Between the release of 1.2.6 and 1.9 more than 400 bugs were fixed. 1.9 was branched on January 28th of 2008 and there were 6 Preview releases. More than 100 of those 400 bugs were fixed during the 1.9 preview cycle.
This version fixes a bug in reflection that affects existing Gtk# deployments; To install this release you should install the new version of Gtk# (released at the same time as Mono).
C# compiler now defaults to the C# 3.0 mode.
Silverlight support is now enabled by default.
Optimization: Generics code sharing [Mark].
AOT support for ARM processors [Zoltan].
Runtime
bugs fixed/closed in this release
Continued the work on the Mono verifier and making the
runtime more robust when coping with broken assemblies.
Core LINQ (Linq to Objects) library support has been
updated to the .NET 3.5 API [JB, MarekS]
System.Xml.Linq is now part of the standard distribution
[Atsushi]
A new tool gui-compare can be used to compare API
changes between different assemblies or descriptions of
APIs. You can use this to track API changes in your libraries
to ensure no regressions have occurred accidentally.
gui-compare comes with various presets that allow
developers to explore the APIs that Mono ship against the
Microsoft published APIs and profiles
For the first time Gendarme
is available inside a Mono release. Gendarme is a tool to find
problems in software. Gendarme inspects programs and libraries
that contain code in ECMA CIL format (Mono and .NET) and looks
for common problems with the code, problems that compiler do not
typically check or have not historically checked.
Contributors: Sebastien Pouliot, Aaron Tomb, Russell Morris,
Christian Birkl, Néstor Salceda, Nidhi Rawal, Lukasz Knop,
JB Evain, Daniel Abramov, Andreas Noever, Adrian Tsai
C# 3.0 is now the default mode of operation for the C#
compiler. It is no longer necessary to specify the
-langversion:linq command line option.
Due to this new default, the System.Core.dll assembly is
now referenced and this might cause some type ambiguities, in
particular with the "Action" type (System.Action from
System.Core vs Gtk.Action for example). The fix is to
either use fully qualified names for Gtk.Action, or to use
namespace aliases.
There are a couple of known limitations: very complicated
LINQ statements still fail to compile, and Expression trees
are not completely supported in this release.
The mcs/gmcs parsers have also been unified, which will
help reduce the maintenance burden on the compiler.
New mapping feature. This feature makes it easier to make your cross-platform
applications work on many platforms without changing the configuration settings.
More information can be found on this page. [Marek]
Batch compilation of sites. Unlike previously, the 2.0 applications
are now by default compiled in the batch mode. That means, the first
time a request is made to a location, files from the location are compiled
together into one assembly (separate assemblies are used for .aspx and .as[hmc]x
files). It makes the requests to other files at the same location much faster
and reduces clutter in the temporary directory. [Marek]
The XSP test suite has been given a facelift. Both 1.1 and 2.0 sets of tests now
share the design and navigation. Many samples were fixed or completed. [Marek]
Speed optimization in the System.Web assembly [Mainsoft, Marek]
The OSX native backend has been vastly improved and is now
the default for Windows.Forms applications on OSX. The X11
driver is still available, to use it you must set the
MONO_MWF_MAC_FORCE_X11 environment variable [Geoff].
More support for WebBrowser events/DOM [Andreia].
Many fixes for RichTextBox and AutoScaling [Luke Page and James Purcell respectively].
Major improvements to the PropertyGrid control some of which are listed below [Ivan N. Zlatev].
Over 100 reported bugs fixed for this release.
[Winforms team and contributors].
Implementation of the .NET 1.1 and 2.0 Design-Time framework [Ivan N. Zlatev].
Out of the box support for serializing and deserializing Components, WinForms Controls,
Properties, Events, Primitives, Enums, Collections, etc is provided.
The implementation should be sufficient to implement at least a Windows Forms designer.
An example can be found in the mwf-designer
module in our Subversion repository. One major missing bit is the BehaviorService to aid the designer interaction.
Many fixes to support the Dynamic Language Runtime are
available as part of this release. It is now possible to
build and use the DLR with Mono.
System.Core: A HashSet implementation is now available on
System.Core and we have updated the TimeZoneInfo class.
Stdlib.signal() has been deprecated, as its use was inherently usafe.
Stdlib.signal()'s functionality has been replaced with a pair of
members: [Jonathan Pryor] The mono-service and mono-service2 programs no longer
poll every 500ms to pause, continue, or stop a service. They will instead
sleep until the signal is generated. [Jonathan Pryor] More support in the IO classes for Visual Basic [Rolf]
New support for controlling the number of requests that are
passed to the mod-mono-server process. If you have not
changed the number of threads in the Mono thread pool, this
can help you prevent deadlocks caused to the Mono ThreadPool
getting exhausted by incoming HTTP connections ([Joshua]).
This is controlled with two new Apache directives:
"MonoMaxActiveRequests" and "MonoMaxWaitingRequests".
SSL/TLS now support X.509 server certificate using
wildcards (e.g. *.novell.com) [Sebastien]
Binary Packages and Source Code Downloads:
Source code and pre-compiled packages for Linux, Solaris,
MacOS X and Windows is 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: Then compile libgdiplus:
Runtime Engine
LINQ
Tools
Gui-Compare
Gendarme
C# Compiler
ASP.NET
Windows.Forms
System.Design
Class Libraries
Mono.Posix Improvements
mono-service
Visual Basic Runtime
mod_mono, xsp
Security
Installing Mono 1.9
$ ./configure --prefix=/devel
$ tar xzf mono-1.9.tar.gz
$ cd mono-1.9
$ ./configure
$ make
$ make install
$ tar xzf libgdiplus-1.9.tar.gz
$ cd libgdiplus-1.9
$ ./configure
$ make
$ make install