PyPyはCPython拡張機能を直接読み込む方法を学びました

PyPyは、 .pyd



と呼ばれる新しいサブシステムを使用して、CPython拡張機能(つまり、 .pyd



および.so



ファイル)を直接ダウンロードして実行できるようになりました。 別のブログ投稿で提示されたソリューション(numpy-type拡張モジュールがCPythonで起動され、TCP経由でプロキシされた)とは異なり、新しいソリューションではCPythonを実行する必要がなくなりました。 まだ完全なバイナリ互換性(Ironcladなど)には達していませんが、ほとんどの場合、拡張機能を再コンパイルするだけで十分です。



唯一の要件は、CPythonから必要なC API関数をPyPyで実装する必要があることです。 あなたがモジュールのユーザーまたは作成者であり、PyPyの一部の機能が不足している場合は、それらを実装することをお勧めします。 すでにかなりの数の人々(多くの新しい貢献者を含む)がすでに開発に参加しており、お気に入りのモジュールが機能するためにいくつかの機能を実装しています。 投稿の最後に名前のリストがあります。



速度といえば。 これらのモジュールを起動するためのオーバーヘッドがあるという事実にもかかわらず、CPython( _sre.so



)から正規表現エンジンを開始し、Unladen Swallowベンチマークセット( speed.pypy.orgを参照)からspambayesベンチマークを通過すると、大幅な加速が得られます。 PyPyに組み込まれている通常のエンジンの2倍の速度です。 _sre.so



は、組み込みエンジンよりも数倍高速に_sre.so



はずであるという_sre.so



の法則_sre.so



ます。



現在、 PILおよびその他のモジュールの作業が進行中です。 たとえば、distutilsのサポートはほぼ完了しています。 また、これに参加したり、この新機能の使用方法に関する詳細を入手したい場合は、 #pypy



freenode IRCチャンネルにアクセスしてください。



CPyExt開発者:




All Articles