ブログ 2018/03/24 ピックアップRoslyn 3/24: Ranges こないだのDesign Notesアップロード祭り、1月辺りの議題としては割と「Ranges」の話が多かったみたいです。今日はこれの話。 Ranges レンジ、要するに「どこからどこまで」みたいな値の範囲のことです。そこそこいろんなプログラミング言語にありますけども、例えば 1..3みたいな書き方で1~3の範囲を表そうという構文。 .NET Core 2.1で、配列などの連続したメモリ領域の一定区間を指し示すSpan<T>構造体っていう型が入りました。これに伴い、以下のように、… 続きを読む 2018/03/23 ピックアップRoslyn 3/23: no-allocation非同期メソッド、最近の Utf8String 昨日のDesign Notes祭りとはまた別件なんですが、こんな提案が。 メソッド単位でAsyncMethodBuilder属性 Proposal: Allow [AsyncMethodBuilder(...)] on methods #1407 corefx/coreclr方面でガッチガチのパフォーマンス改善をやりまくってる人からの提案。 タイトルからは内容がちょっとわかりにくいんですが、非同期メソッドの際に必要になるヒープ確保量を0 (no-allocation)にするために… 続きを読む 2018/03/22 ピックアップRoslyn 3/21: Design Notes一斉アップロード祭り 昨日なんですけども、2018年に入ってからのC# Language Design Meetingの議事録(design notes)が一斉にアップロードされました。 C# Language Design Notes for 2018 読むの大変だった… 春分の日でよかった… 一通りなんとなくは目を通したんですけど、ブログ1回の内容じゃなさすぎるので、少しずつネタにしていこうかと。 ここ数時の状況 2週間前にVisual Studio 15.6が正式リリースされて、 その後ほど… 続きを読む 2018/03/18 .NET Core 2.1 の JIT 最適化の話 唐突ですが問題 とある構造体、例えば以下のようなものがあったとします。 struct X : IDisposable { public bool IsDisposed; void IDisposable.Dispose() => IsDisposed = true; } この構造体 X の Dispose メソッドを呼び出すにあたって、 以下の3つのうち、一番高速なのはどれでしょう。 // (1) インターフェイス引数で受け取って呼ぶ pub… 続きを読む 2018/03/06 Visual Studio 15.6 リリース なんかVisual Studioの更新に 15.6.0 の正式版が配信されてますね。 ブログとかのアナウンスはまだなさそう。グロサミに来たMVPからのフィードバック欲しくてとりあえずリリースだけしちゃったとかですかね。ホテル・会場のWi-Fi負荷が… それか、preview 4の時の告知から内容変わってないから書くことないか? navigation to decompiled sources navigation to decompiled sourceとか便利そうではあります。まだ「e… 続きを読む 新しい投稿へ 過去の投稿へ
2018/03/24 ピックアップRoslyn 3/24: Ranges こないだのDesign Notesアップロード祭り、1月辺りの議題としては割と「Ranges」の話が多かったみたいです。今日はこれの話。 Ranges レンジ、要するに「どこからどこまで」みたいな値の範囲のことです。そこそこいろんなプログラミング言語にありますけども、例えば 1..3みたいな書き方で1~3の範囲を表そうという構文。 .NET Core 2.1で、配列などの連続したメモリ領域の一定区間を指し示すSpan<T>構造体っていう型が入りました。これに伴い、以下のように、… 続きを読む
2018/03/23 ピックアップRoslyn 3/23: no-allocation非同期メソッド、最近の Utf8String 昨日のDesign Notes祭りとはまた別件なんですが、こんな提案が。 メソッド単位でAsyncMethodBuilder属性 Proposal: Allow [AsyncMethodBuilder(...)] on methods #1407 corefx/coreclr方面でガッチガチのパフォーマンス改善をやりまくってる人からの提案。 タイトルからは内容がちょっとわかりにくいんですが、非同期メソッドの際に必要になるヒープ確保量を0 (no-allocation)にするために… 続きを読む
2018/03/22 ピックアップRoslyn 3/21: Design Notes一斉アップロード祭り 昨日なんですけども、2018年に入ってからのC# Language Design Meetingの議事録(design notes)が一斉にアップロードされました。 C# Language Design Notes for 2018 読むの大変だった… 春分の日でよかった… 一通りなんとなくは目を通したんですけど、ブログ1回の内容じゃなさすぎるので、少しずつネタにしていこうかと。 ここ数時の状況 2週間前にVisual Studio 15.6が正式リリースされて、 その後ほど… 続きを読む
2018/03/18 .NET Core 2.1 の JIT 最適化の話 唐突ですが問題 とある構造体、例えば以下のようなものがあったとします。 struct X : IDisposable { public bool IsDisposed; void IDisposable.Dispose() => IsDisposed = true; } この構造体 X の Dispose メソッドを呼び出すにあたって、 以下の3つのうち、一番高速なのはどれでしょう。 // (1) インターフェイス引数で受け取って呼ぶ pub… 続きを読む
2018/03/06 Visual Studio 15.6 リリース なんかVisual Studioの更新に 15.6.0 の正式版が配信されてますね。 ブログとかのアナウンスはまだなさそう。グロサミに来たMVPからのフィードバック欲しくてとりあえずリリースだけしちゃったとかですかね。ホテル・会場のWi-Fi負荷が… それか、preview 4の時の告知から内容変わってないから書くことないか? navigation to decompiled sources navigation to decompiled sourceとか便利そうではあります。まだ「e… 続きを読む