ピックアップ Roslyn 7/21
PDBファイルへのソースコード埋め込み Proposal: Embed sources in PDBs #12625 提案されたの自体はだいぶ前だし、実作業を開始したのも2週間くらい前からなんですが、PRの方で出たフィードバックをまとめて1 issueにしたみたい。結構おもしろい。 Visual...
View ArticleピックアップRoslyn 8/5
Feature Status: Finishing C# 7のステータスがいろいろ更新されたみたいですね。 Roslyn の開発進捗が更新されました C# 7に入るもの、ほぼ確定したのかなぁ。 C# 7/VB 15には状況が「Finishing(最終作業中)」のものばっかり残して、他は+1(その次)行き。 この感じは、次に出るであろうVS "15" Preview 4が最後のプレビュー版ですかね。...
View ArticleピックアップRoslyn 8/6
Source Generatorが間に合わなかった理由 昨日のブログにある通り、C# 7に入る機能リストが更新されて、入るもの・入らないものに変化があったわけですが。 それと関連して: https://github.com/dotnet/roslyn/issues/12630#issuecomment-237959967 やっぱり、Source...
View ArticleピックアップRoslyn 8/10
7月のデザインノートが2件ほど。 C# Language Design Notes for Jul 12, 2016 C# Language Design Notes for Jul 13, 2016 これ関連の作業がひと段落したところでまとめて清書して表に出したって感じですかねぇ。 この辺りの話、かなりの割合がもう実装されててマージされてたりします。...
View ArticleピックアップRoslyn 8/16 Close祭り
実作業が一段落つくと始まるissue整理。 すごい数一気にコメントついたりCloseされたり。以下、そのまとめ。 やらない 1行目: どういうものか 2行目: やらない理由 Proposal: Fixed-size buffers enhancements #126 構造体の内部に固定長配列を持てるようにしたい。...
View ArticleVisual Studio "15" Preview 4
Preview 4が出たみたいですね。 Visual Studio “15” Preview 4 最近、まあ、Preview の新しいのが出ても、C# vNext の進捗具合だけしか取り上げてなかったりするんですが。 今回も主にその話題で。 インストーラー 1点だけ。新しいインストーラーがだいぶちゃんとしたものになってますね。...
View ArticleピックアップRoslyn 8/27: What’s New in C# 7.0
ブログ: What’s New in C# 7.0 Roslynリポジトリ内の話じゃないんですけど、Preview 4でのC# 7の動きについて、Madsがブログ書いてました。 What’s New in C# 7.0 7.0 そういや、この文章だと「C# 7.0」。 昔ちょっとブログ書きましたけど、最近って小数点以下のバージョン付けないんですけど。 C#...
View Articleタプル
思い出したかのように「C# 7思い出話」。 タプルがらみも先週末で一通り書き終わったはずかな。 名前のない複合型 タプル 複合型の分解 タプル これ自体はおおむね当初予定通りですかね。 そんなに裏話的な面白話もなく。 文法的に変化が大きいんで実装は大変そうでしたが。 しいていうと、他の提案を差し置いてタプルの優先度が高かった的な話ですかね。 タプルは、レコード型とか、 C#...
View ArticleUnity 5.5でasync/await使えた話
Unity 5.5 ベータを入れてみたという話。 ブログ曰く、「Mono C# コンパイラー がMono4.4にアップグレードしました。」とのことなので、これ、C# 6使えるはずよね?と。 公式サポートはC# 4 リリースノートを見ると、「C# 4です」って書かれてるわけですが。 Mono 4.4のコンパイラーを使っててC# 6使えないとかお前は何を言っているんだ… まあ、標準ライブラリの方が...
View Articleプログラミング言語における文字コードの話
世の中がほぼUnicode前提になってめでたしめでたし。とはいかなかった現実の話。 String型でできる文字列処理とか、ソースコード自体、特に識別子で使える文字とか。 軽くおさらい: Unicode まあいろんなところでいろんな人が書いてると思うのでさらっと概要だけ。 Unicodeは、元々、「65,536文字あれば十分だろ」とかいう幻想の元、2バイト固定長の文字コードとして作られていました。...
View Articleピックアップ Roslyn 9/6: defaultの型推論
なんか1個、気になったプルリクが。 Prototype: target typed "default" #13603 default(T)を、左辺から型が推論できる場合にはdefaultだけで書けるようにしようっていう作業。 ちょっと前に提案があって、前向きっぽい感じではあったんですけど、なんで今実作業やってんだろう。 今からC# 7リリース辺りまでは、C#...
View Articleピックアップ Roslyn 9/9
タプルの分解の最適化 タプル構築と同時に分解(要するに多値代入というか)する場合は、タプルを作らない最適化かけたいって。 Optimize deconstruction of tuple literal to not construct a ValueTuple #13631 要するに、例えば以下みたいなswapコード書いたとして、 var x = 1; var y = 2; (x, y) =...
View Article.NET Fringe Japan 2016で登壇してきました
.NET Fringe Japan 2016やりました。 .NET Fringeっていう本家イベント(アメリカのポートランドで開催)があって、本家の人からそれの日本版をやりませんか?という話が来てそれに応じた形での開催だったりします。 アメリカのイベントって朝からがっつりやるんですよね。本家.NET Fringeは9時開始。日本でもたまにはがっつりやるかって感じで10時開始になりました。...
View ArticleピックアップRoslyn 10/30: 分解、宣言式、ワイルドカードの内部仕様変更
Roslynリポジトリのブランチやマイルストーンの動きを見るに、次のVisual Studio 15 PreviewはもうRCなようですが。 RC (リリース候補)の段階で大きな変更をするわけもなく、最近のC#チームの動きは大体「ただひたすらバグ修正」なわけです。 そんな中、仕様変更の話が。 Proposed changes for deconstruction, declaration...
View ArticleRoslynに提案issueを立てた話: nullの扱いに関して
MVP Global Summit (グロサミ)に行ってきてたわけですが。 なんか、行きの飛行機内で思いついてしまって、そのまま向こうで頑張って issue 投稿、 せっかくだからグロサミ中に Mads (C# のPM)を捕まえて「こんな問題見つけちゃって、昨日ちょうどissue立てたんだけどどうしよう?」みたいな話を振ってきたり。...
View ArticleVisual Studio 2017 Release Candidate
来てた。 (Connect前のリーク騒動ありましたが… Connectをもって) Visual Studio 2017 Release Candidate もう今、クロスプラットフォームを推す状況なので、Visual Studio for Mac (Xamarin Studioのリブランディング)と、モバイル開発、Azure辺りなんかが前面に出てますが。...
View ArticleC#小ネタ集: C#をWeb上で試す
小ネタ ここのところ、twitterで脊髄反射的に飛びついたきり、gistとかに書き散らかして終わりにしちゃってるネタがちらほら溜まってきたので、ここらでブログかしようかなと思います。 C#小ネタ集とか銘打って。 C#小ネタ集と言いつつ、あんまりC#が関係ない物もありますが。 結構溜まってるんで、数日は連続で書くことになるかなと思われます。 Web上で試したい...
View Article小ネタ コンパイル結果を覗いてみよう
めったにはないんですが、パフォーマンス チューニングとかを始めると、C#のコンパイル結果がどうなっているかを覗きたくなることがあります。C#の場合は、C#コード → IL (.NETの中間コード) → ネイティブ コードという2段階の変換が掛かります。 ということで、その極々まれにやりたくなることをやってみましょう。ILとネイティブ コードをそれぞれ覗いてみます。...
View Article小ネタ corefxlabとSystem.Memory
corefxlab .NETチームは以下のリポジトリの1つに、corefxlabというものがあります。 名前通り、corefx (.NET の標準ライブラリ)入りを目指して試験的なコードを入れておく場所で、 安定したものからcorefxに移転になったりします。 corefxの方にいきなり入らず、一度「lab」を経ているわけで、...
View Article小ネタ 式の評価順序
C#小ネタと言いつつ、IL小ネタになりがちだったので、今日はC#小ネタらしく。 最初にちょっとしたクイズ。 まず、中身は何でもいいんですが適当な2引数のメソッドを用意します。 例として、単純な足し算でも用意しておきましょう。 static int F(int x, int y) => x + y; 以下の2つのコードの挙動は同じでしょうか?違うでしょうか? 1つ目: 一時変数を使用 var...
View Article