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まではそんな話があったような。。。(遠い目)
しかし、なんでコンパイルできないんだろう?