タグ

ブックマーク / azyobuzin.hatenablog.com (3)

  • System.Stringのコンストラクタを許すな - アジョブジ星通信

    String のコンストラクタ、ありえてはいけない存在だよな— ウィンドウズ青山 (@azyobuzin) 2016年8月2日 ということは、コンストラクタを FCall にするとあり得ない型のインスタンスをお返しすることができるわけですね!!— ウィンドウズ青山 (@azyobuzin) 2016年8月2日 というわけで始まりました深夜の CoreCLR ソースコードリーディングのお時間。司会は早くこの記事を書き終えてアニメを見たいazyobuzinがお送りいたします。 普通のコンストラクタ コンストラクタは、名前「.ctor」、戻り値の型 void で定義されるインスタンスメソッドと考えることができます。そしてオペコード newobj でコンストラクタが指定されると、そのクラスのインスタンスが作成され、第0引数に入れられコンストラクタが呼び出されます。つまり、「メモリ確保 → コンスト

    System.Stringのコンストラクタを許すな - アジョブジ星通信
    pandaman64
    pandaman64 2016/08/03
    internalcallこわ
  • ICompileModule でメタプログラミングするやつ - アジョブジ星通信

    あけましておめでとうございます。今週のお題「今年こそは」だそうですが、今年こそは強い人間になりたいですね。というのも最近どんどん挑戦することが嫌になってきて……。 題行きます。ASP.NET タグが指定してあることからわかるように、今回も DNX の話です。DNX には C# のコンパイル時にコードを書き換えることができる機能があります。一時期 Yeoman の吐くテンプレートで Razor の事前コンパイルに使われていたようですが、今試したところなくなっていましたね。。というわけでこれの使い方を紹介していきます。 注意 プリプロセスの仕組み project.json の準備 ICompileModule を実装する 実際に使ってみた例 注意 ASP.NET5 RC1-final 時点での情報です。将来 Roslyn 自体にこの機能がぶちこまれて DNX 側の機能ではなくなる可能性もあり

    ICompileModule でメタプログラミングするやつ - アジョブジ星通信
  • DNXでC#以外の言語をコンパイルしてみよう - アジョブジ星通信

    目次 目次 DNXの可能性 よろしいならば実装(インプリメント)だ 完成品 IProjectCompiler を実装する IMetadataProjectReference を実装する 使ってみよう 終わり DNXの可能性 DNX で C# 以外の言語を使えるのかと思って調べていたところ、 F# を動作させるためのライブラリが存在していることを発見しました。 (試してみましたが、 F# コンパイラが内部で NullReferenceException 起こしてうまくいかなかったです。) この作者のブログには、 DNX で F# を動かしてみての感想などいろいろ書いてあるので参考にどうぞ。 で、これの何がイケてるかというと、コンパイラ部分も NuGet から取得できるということです。つまり DNX さえあればコンパイラをインストールすることなく、その場でコンパイルできてしまうんですね。夢が広

    DNXでC#以外の言語をコンパイルしてみよう - アジョブジ星通信
    pandaman64
    pandaman64 2015/12/06
    DNXやってみようかしら
  • 1