Shed Skinはトランスピラーであり、純粋でありながら静的にタイプされたPython 3プログラムを最適化されたC ++に翻訳できます。大規模なPythonプログラムでインポートおよび使用できるスタンドアロンプログラムまたは拡張モジュールを生成できます。
タイピング制限に加えて、プログラムはPython標準ライブラリを自由に使用することはできません(ただし、ランダムやREなどの約25の一般的なモジュールは現在サポートされています)。また、ネストされた関数やさまざまな数の引数などのすべてのPython機能がサポートされているわけではありません(詳細についてはドキュメントを参照)。
80の非自明なプログラム(合計25,000行以上(sloccount))の場合、測定では、Cpythonで1〜100倍の典型的なスピードアップが示されています。
「こんにちは、世界!」をコンパイルして実行します(test.py)Linux/OSXの例:
Shedskinビルドテスト ビルド/テスト
Windowsの下:
Shedskin Build -Conanテスト ビルド/デバッグ/テスト
Shed Skinは、Pythonの制限付きサブセットのみをサポートするため、可能であれば、変更なしでコンパイルすることを特定のプログラムが期待してはなりません。制限の概要については、ドキュメントを参照してください。
小屋の肌は、Boehm Garbage Collectorなど、他のプロジェクトに依存しています。これらのインストール方法に関するドキュメントをご覧ください。
Shed Skin 'Sive'の例(n = 100000000)およびいくつかのPython実装/オプティマイザーのいくつかのタイミング:
Cpython 3.10.6:13.4秒 Cpython 3.11.0:11.4 Nuitka 0.6.16:11.4 Pypy 3.9.12:5.8 Numba 0.56.4:2.5 Shedskin 0.9.9:1.9 shedskin 0.9.9:1.8(-nowrap -noboundsを使用)
numbaは整数タイプとしてint64にデフォルトであり、Shed Skinはdefault int32にデフォルトであることに注意してください。 Shedskinを使用する場合、パフォーマンスは実質的に等しい。
動作中の例プログラムのいくつかのスクリーンショット:
(パイロット)
(C64)
(pycsg)
(othello2)
(運命)
このビデオは、コンピレーションの前後に運命の例のパフォーマンスの劇的な違いを示しています
以下の人々は、皮膚の発達を流すことに貢献しています。
Shakeeb Alireza ハカン・アルド ブライアン・ブレイス ポール・ボディ フランソワのバウティン Djamel Cherif ジェームズ・コフラン マーク・デウィング マーク・デュフー Artem Egorkine マイケル・エルキンス モアタズ・エルマスリー エンツォ・エルバノ エルネストフェロ サルバトーレフェロ ffao ビクター・ガルシア ルイス・M・ゴンザレス Fahrzin Hemmati フォークラート・ヴァン・ハウスデン カレル・ヘイズ フムエ ヨハン・クリステンセン kousuke デニス・ド・ルー・ドゥアルテ ヴァン・リンドバーグ デビッド・マレク ダグラス・マクニール アンディ・ミラー ジェフ・ミラー ダニー・ミロサブルジェビッチ Joaquin Abian Monux ジョン・ナグル ハリ・パサネン ブレントペダーセン ジョリス・ヴァン・ラントウィク レッチョ ピエール・マリー・デ・ロダット ジェレミー・ロケ マイク・シュリック sirnotappearinginthistutorial ポール・ソコレフスキー トーマス・スプラ Joerg Stippa ダン・ストロムバーグ デイブ・ツイード Jaroslaw Tworek トニー・ヴェイジャラーネン Yuri Victorovich Pavel Vinogradov ジェイソンイェ Liu Zhenhai ジョリス・ヴァン・ズウィーテン