The Mono team has been busy working on Mono, and we have done seven releases since our last blog post. Our latest Mono 3.0.12 contains a load of new features:
- Support for MacOS X Mavericks
- Portable Class Libraries runtime support: you can now run PCL code with Mono.
- XBuild now supports Portable Class Libraries
- mkbundle now uses IKVM.Reflection, allowing you to create bundles with any profile, without resorting to hacks
- We fixed LLVM loadable module on OSX
- New Entity Framework shipping with Mono
- csharp REPL terse bug fixes.
- Fine tuning of our internal uses of the class libraries for performance
- System.WeakReference<T>, Volatile.Read/Write<T> and Interlocked.MemoryBarrier ().
- SGen can now return memory to the OS
- WCF has cookie support
- Many performance optimizations on Marshal class
- LINQ optimizations
- Many fixes to our SGen concurrent collector
New Mono Builds, Release Notes.
We have just released Mono 3.0.4 to the world.
The release packs our SGen concurrent collector with a new strategy to deal with pinned objects called cementing (Mark discussed that last year). We are very excited about this new feature.
MacOS users will be happy to know that we no longer install a /usr/bin/pkg-config, so it will not break their homebrew installations and it only contains the new Gtk+ stack that allows the new Xamarin Studio to run on OSX with 3.0.
When Mono for iOS was launched, we designed a new lightweight API profile. This lightweight profile was designed to deliver all of the major features that developers needed and remove things that did not make sense on iOS or caused binaries to bloat too much on an environment where everything would have to be included.
This mobile profile was based on Silverlight, because Silverlight also had those requirements: small downloads and a good set of features. The major difference for a developer between the Silverlight profile and the standard desktop profile is that System.Configuration and Microsoft.Win32.Registry have been eradicated.
We took the Silverlight API and extended it to add things that Silverlight had dropped. We called this the Mobile profile.
This mobile profile is the foundation for Mono on iOS, Android and other mobile efforts.
We are currently in the process of turning this mobile profile into a general purpose solution. Instead of being based on the old Silverlight 4/Silverlight 5 profile, we are doing this based on the .NET 4.5 API, and removing the same bits we removed in the past: System.Configuration and the Registry.
We have released an update to Mono, version 3.0.3, it is mostly a bug fix release, but contains a few interesting goodies as well:
- DTrace: Mono garbage collectors now feature multiple dtrace probes for users on MacOS and Solaris.
- Many stability improvements and performance work on Mono’s Async support.
Sgen now has a concurrent GC that can significantly reduce max pauses. This is an experimental feature that is been continuously developed. Click here for more details.
#8401, #9247, #8903, #9087, #9225, #9186, #9118, #9137, #9133, #9116, #1446,#2246, #6918, #8904, #8927, #2907, #8829, #8786
Ongoing work on Mono
As a reminder, we have adopted a new development strategy for Mono. We are no longer doing multi-year development efforts that we land all at once. Instead we are doing incremental fixes and improvements in our master branch, and all experimental code is now done on branches that are only merged when the work is completed and stable
For more details see the Change in Policies post.