Connect(); // 2015がありましたね。

昨日、Connect() 初日の基調講演に合わせて、日本では深夜ニコ生放送「深夜に盛り上がれ MS開発者イベント『Connect(); // 2015』生放送」をやってたわけですが。

「どのくらい出番あるかわからないけどいて」とか言われて待機してたはずが、結局丸ごと画面に映っていたような…

まあ、全体の様子は亀淵さんのとこでも見ていただいて。

.NET Core RC

C#/.NET的に影響があるのは、.NET CoreのRC提供開始。

RC(バグ修正とかのぞいてもう変更しない)でGo Live(製品に使っても構わない状態)になりました。オープンソースでソースコードがMITライセンスだからって、自前でソースコードとってきて、問題出たら自分で直すなんてそうそうやれないわけで、「ビルド済みバイナリをマイクロソフトがサポートします」的な意味で、RCをもってGo Live。

--native オプション

Connect() キーノートのデモの中で、

dotnet compile -o output --native

とかコマンドを打ってました。--nativeオプション。

事前コンパイル(AOT)する機能も提供するみたいですね。

ちなみに、まあそもそもJIT自体の説明してなかったなぁと思って記事追加:

Windows デスクトップだとそれなりにJITのメリット高くてずっとJITだけ提供してきたわけですが、Linux上とかだとAOTの需要があるだろうってことでしょうか。

ちなみに、.NET Nativeとは別系統。

  • .NET Native
    • 単にAOTだけじゃなくて、いろいろUniversal Windows Apps向けにガチガチに最適化
    • シリアライズとかP/Invokeのコードをビルド時に生成(通常は動的にやる)
    • XAML中の動的な処理を自動的に判別して必要な型情報を残す
    • アセンブリをまたいだ最適化までする
    • Visual C++コンパイラー(要するに、マイクロソフトが長年Windows向けに最適化しまくってる高性能コンパイラー)技術を使ってネイティブ コード生成
  • .NET Coreの --native オプション
    • RyuJITLLILCが持ってるネイティブ コード生成を事前に掛けるだけ

みたいな感じのはず。たぶん。