Mono Roundup: iOS, Mobile Profile, and Concurrent GC
First up in the news is the release of Mono 3.0.3. Besides the normal bug fixes you would expect in a minor release, this introduces a new experimental garbage collector. Building on top of SGen, this garbage collector uses a process similar to Sun JVM’s concurrent mark-and-sweep (CMS) collector. Mark Probst continues,
A major garbage collection starts with an initial marking pause, during which all roots are scanned. Then it restarts the world and in the background a worker thread performs the marking and scanning of major heap objects, in the usual manner. When the concurrent marking phase is done, the collector stops the world again to finish up the collection in the final marking pause.
Another feature in Mono 3.0.3 better support for DTrace. The Mono garbage collectors “now feature multiple dtrace probes for users on MacOS and Solaris.”
Miguel de Icaza has revealed plans to alter the Mono Mobile profile. When it was originally created, the profile included the subset of APIs exposed to Silverlight developers. Now the Mono team wants to broaden the API by quite a bit. In the future it will be “based on the .NET 4.5 API, and removing the same bits we removed in the past: System.Configuration and the Registry.”
Finally, there has been a minor update to MonoTouch to support iOS 6.1.
Why not study existing high performance VM's?
I really hope Mono developers take time to study existing implementations in detail and learn from the past. I know the Mono philosophy is "don't look at other systems" to avoid accidentally copying code, but that's a stupid policy. If a developer takes time (2-3 years) to study existing implementations and learn what to avoid, Mono could get a huge jump in performance. Needlessly re-inventing a square wheel makes Mono look like a follower, not an innovator.