Mono 1.2.4 is an update to Mono 1.2.3 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,
1.2.2 and
1.2.3.
Some statistics:
Before Mono 1.2.4, runtime support for HandleRef did not
exist.
People used to get the expected results probably as a side
effect of the code generated, but their unmanaged code could
have received junk. People depending on HandleRef should
depend on version 1.2.4 at least, if people are targetting
versions prior to 1.2.4, they should rewrite their code to
drop HandleRef.
Support for disabling Mono's requirement to use shared
memory is back.
Set the MONO_DISABLE_SHM environment variable at runtime,
or you can disable it completely at configure time by passing
the --disable-shared-handles argument to configure [Dick
Porter]
Notice that disabling the support for shared memory
disables some features in Mono, in particular cross-process
IPC systems.
Many improvements for Mono's ASP.NET 2.0 implementation, it
is mostly complete at this point, we are only missing support
for WebParts on the framework side of things.
Support for the "Bin" directory [Marek Habersack]
Performance was trippled while serving ASP.NET 2.0 pages,
a number of things were done:
A bottleneck in browser detection has been removed [Marek
Habersack]
Server variables are now also loaded lazily and
internal string comparisons always use the invariant culture
[Vladimir Krasnov].
Support for 2.0 WebService/WebMethods on interfaces as well
as support for 2.0 validation [Konstantin Triger].
Work to support C# 3.0 has started, this release includes:
C# 3.0 Extension methods implemented by Marek Safar.
Anonymous Method generic type inferencing by Marek Safar.
Lambda Expressions, implemented by Miguel de Icaza. It is
currently missing generic method type inferencing (similar in
spirit to anonymous method generic type inferencing).
Martin Baulig and Marek Safar fixed many of the compiler
bugs reported so far.
We are shipping a new class: Mono.DataConvert
that can be used for doing data conversion from native types
into byte arrays and back, as well as providing little and big
endian conversions in the process.
This class resolves the ambiguities and mistakes that the
.NET Framework System.BitConverter has and we advocate that
people use this over the System.BitConverter.
In addition to a variety of static methods, this API comes
with a Pack() and Unpack methods that can do encoding and
decoding using a list of instructions (inspired by Perl's pack
and unpack statements).
Documentation and examples are available here
[Miguel de Icaza].
Over 150 reported bugs fixed.
Delay control handle creation and do fewer layouts,
boosting performance.
2.0 support: ToolStrip overflow, merging, shortcut keys,
tooltips, new layouts.
2.0 support: Balloon tips in NotifyIcons [Everaldo Canuto]
2.0 support: Hundreds of new 2.0 methods implemented in
various controls.
Metafiles (WMF and EMF) are now supported by GDI+ and
System.Drawing. Mono is now able to render images stored in
metafile formats and play them back on a graphics context.
Not all the metadata records types are supported, so you still
need to test your software [Sebastien Pouliot].
libgdiplus has been updated to use Cairo 1.4.2 which offers
improved performance [Sebastien Pouliot].
Libgdiplus symbols exports have been cleaned. This removes
the possible mixup between gtk+/cairo and libgdiplus/cairo
seen in recent distros [Sebastien Pouliot].
System.Drawing performance improvements where made for Pen
(bad caching) and Color (lock removal) [Sebastien Pouliot].
Bitmap.[L|Unl]ockBits now works for all supported pixel
formats [Sebastien Pouliot].
Unit tests do not expose architecture-specific issues
anymore (e.g. endian issues on PPC and SPARC) [Sebastien Pouliot]
Many printing issues have been fixed in this release
[Andreia Gaita].
2.0 API updates (get full list from Nagappan).
Support for output parameters in stored procedures [Andreia Gaita].
Solaris/amd64 is now supported in Mono.
Fixes to enable VB.NET-based application to work with
ASP.NET [Rolf Bjarne].
VBNC now supports the My namespace [Rolf Bjarne].
Path.GetTempFileName will now return a file with 600
permissions, this is similar to new implementations of
mkstemp.
Fixed HMACSHA384 and HMACSHA512 to use a 128 bits block
size. The workaround is similar to MS one at http://blogs.msdn.com/shawnfa/archive/2007/01/31/please-do-not-use-the-net-2-0-hmacsha512-and-hmacsha384-classes.aspx
[Sebastien Pouliot]
Signcode tool now support password-protected PVK files
[Sebastien Pouliot]
CryptoStream.Write is now closer to MS behaviour and
requires less memory allocations [Sebastien Pouliot]
Fixed endian issue in RIPEMD160 [Sebastien Pouliot]
installvst is a tool that you can use to install
VisualStudio source packages (e.g. starter kits) that use the
.vstemplate files to define their installation layout.
You can use this to install the Starter Kits from
http://asp.net.
Many updates to the System.Linq, System.Linq.Expressions
APIs from the 3.5 preview [Antonello Provenzano, Marek Safar].
In addition to the old Mono.Data.SqliteClient, we are now
also shipping a new Sqlite binding Mono.Data.Sqlite.
Mono.Data.Sqlite is Robert Simpson's
Sqlite binding for .NET adapted to ship with the Mono
framework.
This binding is better maintained than our old version.
Developers are encouraged to migrate to this new API but keep
in mind that this provider will only work with Sqlite3, it
will not work with Sqlite2.
If you had your databases running with Sqlite2, and wanted
to upgrade to the new API (which requires Sqlite3), you would
have to dump and reload the databases.
The new assembly entirely separates the 1.x and 2.0
codebases which affects the users of the 2.0 profile because
of API changes required to match the ADO.NET 2.0 standard. The
1.x profile is untouched (except for removing 2.0 fragments
from it).
In order to allow the developers to adjust their
applications to the new 2.0 API, the new assembly is named
Mono.Data.Sqlite. The old assembly is being provided under its
original name with no changes to the code. Developers using the 2.0
Mono profile are encouraged to switch their applications to the new
module.
COM Interop now supports COM Callable Wrappers (CCWs),
meaning that managed objects can be marshalled to unmanaged
code as COM objects. [Jonathan Chambers]
Many of the new 2.0 socket methods are now available in
Mono [Dick Porter].
Contributors to this release include, but are not limited
to:
Alois Blaka, Antonello Provenzano, Cedric Vivier, Daniel
Nauck, dban@dako.ro, David Mitchell, Dick Porter, Duncan Mak,
Everaldo Canuto, Eyal Alaluf, Frederik Carlier, Geoff Norton,
George Giolfan, Gert Driesen, Gonzalo Paniagua Javier, Horst
Reiterer, Igor Zelmanovich, Ivan N. Zlatev, Jackson Harper, Jb
Evain, Jeffrey Stedfast, Jensen Somers, Joel Reed, Jonathan
Chambers, Jonathan Pobst, Joshua Tauberer, Juan Cristóbal
Olivares, Juraj Skripsky, Kevin Reay, Konstantin Triger,
Leszek Ciesielski, Lluis Sanchez Gual, Marek Habersack, Marek
Safar, Marek Sieradzki, Mark Mason, Martin Baulig,
Massimiliano Mantione, Miguel de Icaza, Mike Kestner, Mike
Morano, Nagappan A, Neale Ferguson, Nidhi Rawal, Olivier
Dufour, Paolo Molaro, Pedro Martínez Juliá, Pekka J Enberg,
Peter Dettman, Priit Laes, Radek Doulik, Raja R Harinath,
Robert Jordan, Roei Erez, Rolf Bjarne Kvinge, Sebastien
Pouliot, Stefan Noack, Thomas Wiest, Tor Lillqvist, Vladimir
Krasnov, Wade Berrier, Yonik Kalin and Zoltan Varga.
If your name is missing from the list (the list is
generated with a bunch of imperfect shell scripts over the svn
logs), please contact miguel@ximian.com.
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: Then compile libgdiplus:
New in Mono 1.2.4
Runtime: HandleRef
Shared Memory
ASP.NET, in the 2.0 road
ASP.NET Performance
ASP.NET WebServices
C#
Beta: Mono.DataConvert
Windows.Forms
System.Drawing
ADO.NET
New Platform Configuration
Visual Basic.NET
Security and Cryptography
New Tool
System.Core
Sqlite bindings
COM
Sockets
Contributors
Installing Mono 1.2.4
$ ./configure --prefix=/devel
$ tar xzf mono-1.2.4.tar.gz
$ cd mono-1.2.4
$ ./configure
$ make
$ make install
$ tar xzf libgdiplus-1.2.4.tar.gz
$ cd libgdiplus-1.2.4
$ ./configure
$ make
$ make install