rider.お品書きサクッと書いて公開して、後でちまちま修正する事がママあります。なんじゃこりゃ?と思ったら、数日してから見て貰えると嬉しいです。「スクラムの実践方法を分かりやすくマンガも交えて解説。2017」の8日目です。いうか、今のところこのカテゴリに私しかエントリーしてないので、漏れた日を埋めていこうかな、ぐらいの感じです。IL2Cのダイジェストをやっていこうかと思います。(イメージをクリックするとYouTubeが開きます)#6-2216ビットプリミティブの対応を行いました。8ビットとほとんど同じ対応で行けました。ldc.i2が存在しないので、果たしてリテラル16ビット値がどのように扱われるのか、ちょっと興味がありました。32ビットに拡張され、切り捨てられるので問題ないのような最適化(というほどのものでもありませんが)がRoslynで行われていました。ための準備を行いました。il2c.exeを放置していたので、これを最低限のツールとしての体裁を整えます。ツールとして、コマンドラインのオプションを受け取れるようにするのも課題ですが、コマンドラインからメソッドの実体を注入することは出来ないため:コマンドラインに対象のアセンブリファイルを指定するアセンブリに含まれる全てのメソッドを変換の対象とするメソッド名は、名前空間と型名を含めた、マングリングされた関数名に変換する結果を単一のCソースファイルとして出力するというように決めました。ここで初めて、マングリングされたシンボル名が具体的にどんな具合なのかを見ました。シンボル名解決のためにC++を使いたいなーという感想。typeに着手しました。メンバー(フィールド・メソッド)とスタティック・インスタンスの組み合わせによる定義を変換可能にします。typeであれば、メンバーの構成方法・型の定義方法ぐらいです、それでもかなり大掛かりですが...まずは、スタティックメソッドの呼び出しを処理させます。tokenからMethodInfoを取得して、対応する関数呼び出し式に変換します。スタティックなので、callvirtではなくcall命令を使います。token値からMethodInfoを入手できます。ここから、関数呼び出しのソースコードを構成します。メソッド呼び出しのパラメータ群は、評価スタックに積まれているので、これを逆順で取り出します。DecodeContextには評価スタックに相当する式をシンボル名(”__stack0′′のような)で取得できるので、これをカンマで結合すれば、関数の引数群を構成できます。最後に、少しだけALM(ビルドシステムとしてどこからどこまでどのように実現するか)の事に触れています。WordPress%d人のブロガーが「いいね」をつけました。