Read Digital Edition


ADS BY GOOGLE
Top Three Links You Must Click On


Third Mono Beta Released
Mono added to projects scanned by Coverity

Mono 1.1.16, the third beta of version 1.2, has been released. The time span between the release of versions 1.1.15 and 1.1.16 is one of the longest in several years and the number of changes included reflects that, again System.Windows.Forms (SWF) and System.Drawing got the most attention.

The biggest difference is that SWF now supports threading; multiple threads can now create their own forms and controls, and have their own message processing loops. Repaint logic has also been changed to improve performance and match the Microsoft implementation. In the past, Mono sent paint messages through the event queue. Now, these are generated by the GetMessage function when the queue is empty, and at that point any windows that have invalid regions are sent a paint message.

Support for DataGrid and MDIs has been greatly improved and the tree control has gotten a number of performance enhancements.

System.Drawing, GraphisPath, LinearGradiant, BeginContain, and GraphicsRegion all made big advances.

ASP.NET 2.0 has advanced enough to run the ASP.NET Personal Web Starter Kit, which required a lot of bug fixes in theme and skin support code. Mainsoft has also added a sophisticated ASP.NET 2.0 test suite to the Mono project, with a Web testing framework that includes hosting for testing of all System.Web functions, a package that converts HTML into XML and then compares the XML. Mainsoft also contributed new test fixtures for testing 23 of the System.Web.UI.WebControls classes.

The debugger got many bug fixes and can now debug xsp and WinForms applications. XBuild can now build VisualStudio projects that don't use resources or contain assemblies that aren't in the GAC, and it now supports simple conditions in the build project. Monodis and ilasm now support the 2.0 declarative attributes, custom modifiers and attributes, and it handles dependencies better. System.Drawing and SWF have been updated to use the latest version of Cairo, the graphics library they're based on. For testing, the NUnit Mocks framework has been integrated into the standard Mono distribution.

Coverity, a company that provides defect-scanning services and tools for verifying source code, has a contract with the U.S. Department of Homeland Security to scan key Open Source projects for defects, and they have just included Mono in the list of projects they scan. You can see how some popular Open Source projects, including Mono, fare at http://scan.coverity.com/. Mono has 123 open bugs listed in 316,875 lines of code for an error rate of 0.391 bugs per thousand lines of code. Respectable but not great. Compare it to Linux 2.6 (0.160), Free BSD (0.386), NetBSD (0.493), and WINE (0.298). The number generally accepted as average for commercially developed software is 0.500.

Mono Runtime
The Mono runtime has also seen some major updates. Version 1.1.16 includes an optional new, not yet supported, generational, compacting, garbage collector (GC) written by Paolo Molaro. When it's complete, this will be a major enhancement for Mono, improving reliability and performance in long-running programs. It's a compacting GC because when blocks of memory are released, memory above those blocks are moved down to fill in the space, so the memory is compacted. It's generational because when new blocks of memory are allocated, they're allocated in a block of memory called the nursery. They are then moved to one of several older "generation" memory blocks.

Paolo has written an excellent explanation of how compacting generational GCs work, along with details of how he implemented Mono's GC. It includes optimizations for large objects and pinned objects, and tricks for minimizing the amount of memory that must be scanned on each pass. This is a well-written piece that anyone can understand, and everyone can learn from. It can be found at www.mono-project.com/Compacting_GC.

The ability to unload assemblies and shut down are critical to many Web hosting applications and are much improved in this release. This was again driven by the needs of a commercial application using Mono. In this case it was scripting for the Unity game engine (http://unity3d.com/) made by OTEE for inclusion in its Unity Web plug-in.

In response to another commercial user, SecondLife (see DNDJ, vol. 3, issue 11), Mono has resumed work on code verification, and support for .NET 2.0 declarative security has been added to the runtime. The handling of missing and broken assembly references has also improved, with previous "crash" bugs now throwing a TypeLoadExecption. In response to a third commercial user, Imeem, a maker of social interaction software (www.imeem.com), some port leaks on the Mac were detected and fixed.

Mono's limited support for COM now includes marshaling of BSTR and VARIANT types on Windows platforms.

The IronPython beta 8 now works on Mono out-of-the-box. IronPython continues to add .NET 2.0 features, pushing Mono to add support for these features.

There were also some optimizations and improvements in the runtime and the C# compiler, along with the inclusion of more version 2.0 features.

About Dennis Hayes
Dennis Hayes is a programmer at Georgia Tech in Atlanta Georgia where he writes software for the Adult Cognition Lab in the Psychology Department. He has been involved with the Mono project for over six years, and has been writing the Monkey Business column for over five years.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Mono 1.1.16, the third beta of version 1.2, has been released. The time span between the release of versions 1.1.15 and 1.1.16 is one of the longest in several years and the number of changes included reflects that, again System.Windows.Forms (SWF) and System.Drawing got the most attention.


  Subscribe to our RSS feeds now and receive the next article instantly!
In It? Reprint It! Contact advertising(at)sys-con.com to order your reprints!
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE
There's a lot of talk about how we need to focus on our buyers' issues and provide them educational ...
SugarCRM, the world’s leading provider of open source customer relationship management (CRM) softwa...
This past weekend I set out explore some of the extension capabilities of Google Wave. One of the we...
More good news for cloud computing! Google last week released its once mysterious Chrome Operating S...
In CloudBerry Lab we are striving to make our customer service better. In this competitive market wi...
We talk a lot about social media on Marketing Trenches. And for good reason – Social media seems to...
Intel has put out its promised beta SDK for Windows (C and C++) and Moblin (C) developers working on...
InformationWeek stumbled on a Microsoft patent application dating back to 2006 deceptively titled “M...
Berlin-based ThinPrint AG, the printer virtualization house, thinks it’s got a cloud solution for th...
Behaving like it’s got a future, Sun Monday put out what it calls a significant new version of Virtu...
IBM has acquired Guardium, a seven-year-old subsidiary of Israel’s Log-On Software transplanted to M...
But on the web, access to services is implicit in the fact that the business is offering the service...
Oracle has offered to cordon off MySQL inside a combined Oracle-Sun to get the European Commission t...
The second set of charges filed last week against Indian outsourcer Satyam Computer Services founder...
Gartner told Reuters that it overestimated how many PCs Acer shipped in the last seven quarters by a...
Office Web Apps, Microsoft’s answer to Google Apps, are supposed to be out sometime in June along wi...
Gartner thinks the server business has stopped sliding into the abyss. Third-quarter sales weren’t a...
Gartner is buying ~$40 million-a-year AMR Research Inc for close to $64 million in cash. AMD special...
Singed by user reaction to its plans to up the price of its support contracts, SAP Tuesday postponed...
Apparently Google Gears ain’t gonna stick around that long. Google Apps will eventually get their of...