++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

ピックアップRoslyn 4/12

leave a comment »

C# Design Meeting Notes for Mar 24, 2015

https://github.com/dotnet/roslyn/issues/1898

今回は、これまで C# 7.0 に向けて提案されてきた内容について、issue ページでの議論の結果、今後どう取り組んでいくかを「色分け」(信号の青(green)、黄、赤の3色に)しています。

  • : 興味あり、引き続き検討
  • : 何か取り組むべきものはあるけども、既存提案の方式ではやらない
  • : たぶんやらない

何がどう色分けされたかというと:

  1. ref returns and locals <> (#118)
  2. readonly locals and parameters <> (#115)
  3. Method contracts <> (#119)
  4. Does not return <> (#1226)
  5. Slicing <> (#120)
  6. Lambda capture lists < – ラムダ式に属性を付けれるようにするだけでたぶん解決> (#117)
  7. Immutable types < – 今の形ではやらない。けど何かしらの保証方法は考えたい> (#159)
  8. Destructible types < – 決定論的な破棄処理自体には興味あり> (#161)
  9. Move <> (#160)
  10. Exception contracts <>
  11. Static delegates <>
  12. Safe fixed-size buffers in structs <> (#126)

6番くらいまではもうちょっと詳細な現状説明あり。

ここでは、気になったところだけ:

2. に関して、「readonly var」の短縮形は、今のところ val が有力らしい… 僕は v だけ打って後は IntelliSense 補完で var を書いてるんで、個人的には val はやめてほしい… 英語的には val が一番自然に見えるらしいんですけども。

4. に関して、never 型(絶対に例外を投げて終わるか、永久ループで終わるメソッドの戻り値に指定する型)を導入する方向で進んでいます。この型が指定できるようになると、「throw ステートメント」を「throw 式」に変えれるというメリットもあります。つまり、() => throw new Exception() みたいなラムダ式も書けるようになります(今は、こういう式が書けない。throw が式じゃないので)。

C# Language Design Review, Mar 25, 2015

https://github.com/dotnet/roslyn/issues/1921

C#チームは最近、Design ミーティングの方法を少し変えたみたいです(開発速度を上げる目的)。C# チームの一部だけが集まって個別機能について話す会を週に1・2回、そして、全員が集まってレビューする会を月に1回程度行うつもりだそうです。で、そのレビュー会の第1回をやったそうで、これはその議事録。

今回は以下のような議題。

  1. Overall direction
  2. Nullability features
    • val / readonly
    • ref return / locals
    • Never type
    • Method contracts
    • Slices
  3. Performance and reliability features
  4. Tuples
  5. Records
  6. Pattern matching

前節の #1898 とも被るので「詳しくはそっちを見て」で済ませてる項目も結構ありますが。

全体的な方向性、「野心的に、難しい問題を解決していこうという合意は得られた」としています。

おまけ: corefx-progress

https://github.com/dotnet/corefx-progress

「ピックアップRoslyn」内で紹介するのもなんですが、今回は他の .NET プロジェクトの話をついでに紹介。

今、.NET Core の標準ライブラリは、オープンソース化作業のまっただ中にあるわけですが。そのオープンソース化作業の進捗状況を見えるようにするために、この corefx-progress リポジトリを作ったそうです。1リポジトリ使って、これから公開予定のAPI、公開が完了したAPI、その差分をアセンブリごとに取れるようにしています。

Written by ufcpp

2015年4月12日 @ 22:59

カテゴリー: 未分類

コメントを残す