Mono 1.2.5 is an update to Mono 1.2.4 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,
1.2.3 and
1.2.4.
Some statistics:
This release fixes various issues that were exposed by
IronPython 2.0 preview release and the Dynamic Language
Runtime from Microsoft. They are both functional on this
release.
Scott Petterson and Marek Safar implemented the following
C# 3.0 features:
Marek Safar continued work on the LINQ grammar support and
the underlying System.Core assembly support for it.
The C# 3.0 support is enabled by passing the
-langversion:linq option to the compiler. In addition to the
above the C# 3.0 compiler also supports: extension methods,
lambdas and anonymous method generic type inference.
AOT now provides some support for 2.0 assemblies (although generic
calls are still not pre-compiled) [Zoltan].
Devirtualization optimization for sealed classes and
methods, improving IronPython 2.0 pystone performance by 4%.
Other programs can expect similar improvement [Rodrigo].
Invocation
speed of non-multicast delegate methods has been increased by
calling directly into the delegate, this improves IronPython
2.0 (pystone) performance by 25% [Zoltan Varga].
Math.Min and Math.Max are now inlined for signed integers
and String.OrdinalCompare has been tuned to use these, which
results in a 2-3% performance increase in running PyStone with
IronPython.
Massi and Paolo implemented a mechanism that reduces
virtual table sizes for interface method invocations.
The most visible change is in significant memory reduction
for applications loading many interfaces (this happens for many 2.0
apps because of the many additional interfaces arrays implement).
Optimized double to int conversions using SSE2 on x86 [Paolo Molaro].
Implemented proper caching of generic methods (provides a very large
speedup for virtual generic method invocations) [Paolo Molaro].
It is now possible to force Mono to use a single CPU by
using the MONO_NO_SMP flag.
Rodrigo Kumpera has added an IL verifier to Mono.
IL verifiers are not very useful for applications that run
at full-trust level (their only use is to help in compiler
development and sanity checking). But we are now working
towards supporting
Silverlight in Mono which needs to provide limitations on
what code can do, and cope with malicious code.
HttpWebRequest can now be used with X.509 client certificates
(only possible in the 2.0 profile) [Sebastien]
Added support X.509 Client Certificate Chains for SSL/TLS
[Roy Versteeg]
Fixed SSL/TLS not to require exportable private keys for client
certificates [Roy Versteeg]
Implemented import and export of DSA keys CryptoAPI-compatible
BLOB (2.0) [Randolph Chung]
Added SafeBag handling to Mono.Security's PKCS#12 [Jay Miller]
Completed support for RegionInfo.
Dictionary: Optimize and add implementation notes. Use a
"mini-heap" to store the linked lists instead of the regular
heap. Split arrays of structs into separate arrays to make the GC's
life simpler (see bug 81879 for details). Make class serialization
compatible with MS.NET.
Environment.GetFolderPath: Now checks for the existance of
the XDG_DESKTOP_DIR, XDG_MUSIC_DIR and XDG_PICTURES_DIR environment
variables when trying to find the requested path.
LocalFileSettingsProvider implementation is contributed
[Noriaki Okimoto]. With this code, ApplicationSettingsBase now works
like .NET (per-user settings are created in the user's (local)
application data directory.
Fresh implementation of TimeZoneInfo [Stephane Delcroix].
System.Data.SqlClient: 99% of API's is now compatible with
MS.NET 2.0 profile [Nagappan]
Implemented SqlBulkCopy in SqlClient. With this the data
can be imported in bulk from client to MS-SQL server
[Nagappan].
New 2.0 controls:
AutoSize is now supported [Jonathan]
ToolStripPainter, ToolStripSystemRenderer [Jonathan Pobst]
Roughly 150 submitted bugs were resolved.
Libgdiplus has been updated to use Cairo 1.4.6 [Sebastien]
Libgdiplus header, types and enums names are now much closer to
MS GDI+. This should make it easier to use from C/C++ even if this
was not the primary goal. [Sebastien, Yves Bastide]
Added support for 2bpp PNG and fixes for 4bpp PNG image palettes
[Sebastien]
Added support for interlaced GIF bitmaps [Sebastien]
Added support for ColorMatrixFlag and Gray ColorMatrix in
ImageAttributes [Sebastien]
Implemented GdipDrawImagePointsRect[I] functions [Sebastien]
Multiple printing fixes (e.g. text size/position)
[Vladimir Dimitrov, Sebastien]
The Mono Cairo API has been updated (Alp Toker), it will
now expose Cairo 1.2 API entry points. Application code
should call CairoAPI.Version to obtain the version and
determine if the needed features are available.
Added support for late binding in vbnc (Option Strict Off and
Option Explicit Off) [Rolf Bjarne].
Several bug fixes in vbnc and vbruntime [Rolf Bjarne].
Better error reporting (it's now possible to get line numbers
in stack traces) [Rolf Bjarne].
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.5
Dynamic Language Runtime
C# Compiler
Runtime
Security
Corlib
System
System.Core
System.Data
System.Windows.Forms
System.Drawing / Libgdiplus
Cairo
Visual Basic.NET
Contributors
New contributors to this release: Mike Morano, Stephen A. Jazdzewski, Sanghyeon Seo, Juraj
Skripsky, Jason Madden,
Installing Mono 1.2.5
$ ./configure --prefix=/devel
$ tar xzf mono-1.2.5.tar.gz
$ cd mono-1.2.5
$ ./configure
$ make
$ make install
$ tar xzf libgdiplus-1.2.5.tar.gz
$ cd libgdiplus-1.2.5
$ ./configure
$ make
$ make install