IronPythonからDLLが作れない?

今までは、もっぱら、「C#でコーディングしたプログラムやライブラリ」をIronPythonで継承したりして動的に拡張するといった使い方をしていました。

で、その逆もできるだろうと何の疑問ももっていませんでした。

ということで、IronPythonをベースにしてdllを作ってもらうようお願いしておりました。

なぜなら、

  • pycを使って、exeやdllにコンパイルできるというのをどこかで読んだから。
  • VS2005 SDK付属のIronPythonアドインを使って、簡単にexeやらdllやら作れたから。

であります。

使用していた環境はFePy r0.7(いわゆるIron Python Community Edition:IPCE)というものだったのですが、ipyとipy2のどちらを使うか?
という話になったとき、なんとなく雰囲気でipy2にしよう!という話になりました。

とっ、ところが。。。

「なんだか、DLLにコンパイルできないんです。」
「えっ?どうして。」
「とにかく、pycでコンパイルしようとすると、実行が終わるまでコンパイルが終了しないみたいなんです。」
「なにーっ?」

こちらでも検証してみようということになって、VS2005のIronPythonアドイン上でDLLプロジェクトを作成、ソースを組み込んでコンパイルしてみると、

「Error:ブロック内でyield文は使用できません。」

あっ、そうか。ipy1相当なんだった。
Python 2.4まではそんな話があったような。。。(遠い目)

しかし、なんでコンパイルできないんだろう?