Mono 3.0 Adds Async, Improves SGen GC and More
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.
- 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.