C#7に完全対応した「Mono 5.0」が公開

 マルチプラットフォーム対応の.NET Framework実装である「Mono」を開発するMono Projectが、「Mono 5.0」をリリースした。Roslyn C#によるC#7サポートなど、多数の新機能が加わった大型リリースとなる。

 Monoは米Microsoftの.NET Frameworkをオープンソースで実装したもの。これを利用することで、.NETアプリケーションをLinuxやMac OS X、iOS、各種UNIXなどさまざまなプラットフォームで動作させることができる。開発を行うXamarinは2016年にMicrosoftに買収されており、Monoは.NET Foundationの一部となっている。

 Mono 5は2015年5月に公開されたMono 4系に続くメジャーリリース。今年2月のMono 4.8のリリースから2000件以上のコミットがあったという。

 Roslyn C#コンパイラ(csc)を同梱、これによりC#7が利用できるようになった。C#7は3月に公開された最新版で、タプルやout変数のサポート、パターンマッチングなどの機能が加わっている。Monoに含まれるRoslyn C#コンパイラはWindows/Visual Studio上のものと同じで、C#7をフルでサポートする。

 また、この一年進めてきたというMSBuild(Microsoft Build Engine)との統合も実現した。MSBuildはVisual Studioなどでサポートされているアプリケーションビルドプラットフォームで、Mono 5ではWindows上の.NETと同じMSBuildがMonoインストールの一部として提供されるようになった。一方でxbuildは非推奨となり、MSBuildへの切り替えを呼びかけている。

 性能面では、SGenガベージコレクタを強化し並行SGenがデフォルトで有効となったことで大幅に性能が向上した。並列コレクション完了のために複数のWorkersを利用する並列モードも導入した。

 Mac OS X向けのディストリビューションでは、AppleTLSスタックによるSSL/TLS実装が初期導入された。TLS 1.2や複数のHTTP Webクライアントをサポートしているが、一部の環境で動作を中断してキーチェーンへのアクセスを要求するGUIダイアログを表示するなど不具合が残っていると注意している。MacOSパッケージではlibjpegもアップデートした。

 最新版ではまた、Linuxパッケージリポジトリの構造が新しくなり、各ディストリビューション毎にリポジトリを用意するようになった。Linuxユーザーはaptフィードリストなどアップデートの必要があると注意している。

Mono
http://www.mono-project.com/