Mono 3.0 Adds Async, Improves SGen GC and More

by Roopesh Shenoy on Oct 23, 2012 |

Miguel De Icaza has announced the release of Mono 3.0, which comes with several improvements such as Async, better SGen GC, improved Eval API and .NET 4.5 compatibility.  

Mono 3.0 is an update to 2.10, which was the last stable release. Some of the new features had been included in 2.11.x preview releases earlier in the year. Notable changes are as follows -

  • C# Async compiler
  • Integrates several Open Source bits from Microsoft stack – ASP.NET MVC 4, ASP.NET WebPages, Entity Framework, Razor, System.Json
  • SGen Garbage Collector is now the default GC and gets several performance and scaling improvements to better leverage multi-processor hardware. SGen has been ported to Windows and MIPS as well
  • Eval() API can now compile entire types instead of just expressions. The compiler-as-a-service is also no longer a global compiler and can be instantiated in multiple scopes
  • Several run-time optimizations for types such as ThreadLocal<T> and List<T>
  • New attributes that can force compiler in-lining for performance tuning
  • Can be compiled as a 64-bit binary on MacOS (although ships only as 32-bit)
  • Soft Debugger improvements for better performance with USB connected devices
  • F# 3.0 will be bundled with Mono on OS X
  • Mono’s implementation of the SQLite database now supports iOS’s cryptographic APIs. It also allows changing the threading model as a configuration.

You can have see more details on the changes in the release notes.

Miguel indicates that all of these improvements should make it to MonoTouch and Mono For Android in due time. He also suggests that the Mono development will now aim for faster releases, so major development will happen in separate branches and then merged into the master branch, keeping the master as stable as possible at all times.

One of the general issues raised by developers with Mono is the continuing lack of a Cross-platform UI story – mono team currently recommends building a native interface for each platform on top of a common set of core functionality. A suggestion by Miguel was to use either GTK#, Qt with Qyoto bindings for C# or a new toolkit called Xwt .

Note that as of this writing, only the OS X binaries have been published and binaries for other platforms are yet to be published by the community. You can however build from updated sources

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

General Feedback
Marketing and all content copyright © 2006-2016 C4Media Inc. hosted at Contegix, the best ISP we've ever worked with.
Privacy policy

We notice you're using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.