Mono 2.12パブリックベータの公開を控え、Miguel de Icaza氏は.NET 4.5 APIの多くやC# 5のAsyncサポートを含む計画されている機能一覧を公開した。改善されたガベージコレクタやUnicodeサロゲート文字のフルテーブルのサポート、C#コンパイラの新しいバックエンドもある。
それぞれの機能に深く入る前に、バージョンに関して述べる。以前のバージョンでは実験的なコードはバージョン2.11から始まったが、2.12になってからはMonoチームは安定版になったと感じている。
C#
MonoのC#コンパイラーは現在ではasync/awaitキーワードの完全な実装である。
過去においてMonoには複数のC#コンパイラがあり、それぞれが異なるプロファイルをターゲットしていた。バックエンドがIKVM.Reflectionに代わる事により、MonoはCLR2、CLR4、Silverlight、MonoTouch、Mono for Androidに対する単一のコンパイラを現在提供している。
TypedReferenceとC#キーワードの__makeref, __reftype, and __refvalueが現在サポートされている。Microsoft同様にMonoチームはこの機能の真の目的を説明してはいない。
C#インタラクティブ・シェルと「compiler as a service」機能は引き続き改善されている。以前はステートメントと式だけが許されていたが、Evaluator.Eval関数がすべてのクラスと構造体を現在扱えるようになった。
コード分析
MicrosoftのCode ContractsがMSR(マイクロソフトリサーチ)に留まっている事を考えると、Alexander Chebatukin氏による静的なコード契約アナライザーのアナウンスは歓迎されるニュースである。
.NET 4.5
.NET 4.5プロファイルはデフォルトでは使用不可になっているが、新しいTPL Dataflowライブラリを含んでいる。これらはメッセージ交換スタイルのデザインパターンに従って開発を行いたいバックエンド開発者にとっては大きなパフォーマンス的優位を提供すると期待される。
Monoチームはクロスプラットフォーム開発に応用可能なWinRT機能を実装しようとしている。これらはスレッド、暗号、ネットワークAPIを含んでいる。Miguel de Icaza氏はWinRTからのGUIライブラリのサポートは予定しておらず、プラットフォーム固有のユーザーインターフェースを好んでいると述べた。
ガベージコレクション
SGenガベージコレクタへの作業は続いている。以前はこのガベージコレクタはオブジェクトを並列にマークする事しかできず、ナーサリの実際の収集がシングルスレッドに対して行われていた。新しいバージョンでは並列に収集する事も可能になった。
Miguel氏はガベージコレクタの「Mac OS/iOSネイティブサポート」に関しても述べた。 これが実際には何を引き起こすかわかり次第、我々はフォローアップレポートを公開する予定である。