Mono 1.1.8 Development Release

Mono 1.1.8 is the eighth release on the development series of Mono. The Mono 1.1.x series will eventually lead to the next stable milestone: Mono 1.2.

We consider Mono 1.1.8 stable enough to recommend it for all users. Those upgrading from the 1.0.x series should note that these notes only contain the differences between 1.1.7 and 1.1.8. All of the changes since 1.0 are documented in the following release notes: 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6 and 1.1.7.

Building with Visual Studio

Visual Studio solution to build Mono runtime natively on Windows. This is useful if you are embedding the Mono runtime into your application and want to debug and single step inside Mono.

Debugger

The Mono Debugger is being released in sync for the first time with the Mono runtime. We need testers to try it out (the command line debugger is called `mdb').

Windows.Forms

Here a toplevel list of all things new for 1.1.8 MWF:

Scaling, Performance

Harinath has been fine tuning our Regular Expressions class library to reduce allocations which translate into an increase in performance (about 10% on the output match). Regexp.Replace will now be O(number of $s in the replacement string) instead of O(length of replacement string). The

The 1024 limit on Socket.Select is gone, Mono will now use poll when available.

System.Web will consume less memory as well (Gonzalo).

Code Access Security

Sebastien's progress in this release:

The new features allows NRobot 0.20 (http://home.gna.org/nrobot/) to "work" (as much as the permissions are currently present in the class libraries) on Mono 1.1.8 with a single modification (change the imperative assert in NRobot/Engine/GameArena.cs to a declarative assert).

ASP.NET 2.x controls

Lluis completed various new controls for ASP.NET 2.x: ImageMap, Wizard, SiteMapDataSource and SiteMapPath.

Reflection

Lluis added support for producing debugging information from Reflection.Emit. This means that all the Reflection-based compilers and VMs will be able to produce debugging information and have the Mono debugger step through the code.

Packaging

mono-ikvm has been merged into mono-core. Should make it easier for people to get ikvm

mono-nunit is back with the nunit stuff. Needed for mono-tools

Mono-shlib-cop

Jonathan Pryor has contributed this tool to assist developers that use P/Invoke.

mono-shlib-cop is a tool that inspects a managed assembly looking for erroneous or suspecious behavior of shared libraries.

The tool takes one or more assembly filenames, and inspects each assembly specified.

The errors checked for include:

VB.NET

New on this release: late binding, decimal, named arguments, optiona byrefs,

Mono.Unix

The Mono.Unix namespace will be replacing the old Mono.Posix in Mono 1.2 and is still under development. In this release cleanups continued and a few new features are present.

Changes since the last release: Removed types: MapAttribute, IncludeAttribute, ErrorMarshal, ErrorMarshal.ErrorTranslator

  • Removed UnixMarshal.IsErrorDescriptionThreadSafe property
  • Renamed LockFlags enum to LockfCommand
  • Removed StdioFileStream.FilePosition property and replaced with RestoreFilePosition() and SaveFilePosition() methods
  • Renamed UnixConvert.ToFilePermissions(string) to UnixConvert.FromOctalPermissionString(string)

    Additions

    Lots of documentation added

    JScript

    Cesar implemented access to local variables in nested functions in JScript.

    Bug fixes, scalability

    There are plenty of bug fixes, performance and scalability improvements that are too detailed to list on the release notes.

    Installing Mono 1.1.8

    Important: Mono 1.1.8 can not be installed in parallel with Mono 1.0.x series on the same prefix. To work around this issue, you must use a different prefix at configure time, for example:

    Fedora Core 4 users: packages will work out of the box, but the source code will be misscompiled by gcc4.

    	
    	$ ./configure --prefix=/devel
    	

    You can then setup your PATH to include /devel/bin to access the Mono 1.1. Alternatively you can replace your Mono installation with 1.1.8

    Binary Packages:

    Pre-compiled packages for SUSE, SLES, Fedora Core, RHEL are available from our web site from the download section.

    MacOS and Windows packages will be uploaded soon.

    Source code:

    Quick source code installation:

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

    mono:

    	
        $ tar xzf mono-1.1.8.tar.gz
        $ cd mono-1.1.8
        $ ./configure
        $ make
        $ make install
    	
    

    Contributors

    The following list is a partial list of contributors to this release:

    Jakub Bogusz, Mart Roosmaa, Alexander Olk, Jonathan Chambers, Matthias Felgner, Jonathan Gilbert, Geoff Norton, Kornél Pál, Jackson Harper, Jordi Mas, Peter Bartok, Ankit Jain, Michael Meeks, Gert Driesen, David Waite, Michal Moskal, Bill Middleton, Nigel Benns, Paolo Molaro, Peter Johanson, Peter Williams, Rafael Teixeira, Raja R Harinath, Ritvik Mayank, Sebastien Pouliot, Sudha, S Umadevi, suresh, Todd Berman, Vladimir Vukicevic, Wade Berrier, Zoltan Varga, Lluis Sanchez, Manjula, Marek Safar, Mark Crichton, Martin Baulig, Martin Willemoes Hansen, Massimiliano Mantione, Miguel de Icaza, Mike Kestner, Konstantin Triger, Kazuki Oikawa, Juraj Skripsky, Joergr Rosenkranz, Joshua Tauberer, Joseph Hill, Jonathan S. Chambers, Jonathan Pryor, John Luke, John BouAntoun, Jeroen Zwartepoorte, Jb Evain, James Wilcox, Jacob Ils, Gonzalo Paniagua, Gert Driesen, Geoff Norton, Francisco Figueiredo Jr., Eyal Alaluf, Duncan Mak, Dick Porter, David Hudson, Dan Winship, Chris Toshok, Christian Hergert, Cesar Octavio Lopez Nataren, Carlos Alberto Cortes¸ Boris Kirzner, Ben Maurer, Atsushi Enomoto, Andrew Skiba, Alp Toker, Alexandre Gomes and Adhamh Findlay.