15 ポイント 投稿者 darjeeling 2025-06-16 | 3件のコメント | WhatsAppで共有

ナ・ドンヒ氏の尽力により、フリースレッディングはついに実験タグを外れ、公式サポートとなります。


Python Steering Council(SC)は PEP 779 を承認し、Python 3.14 のフリースレッディング(free-threaded)ビルドから 「experimental」タグを削除することを決定しました。この決定は、Phase II の期間中に次の課題を満たすことを条件として下されました。

  1. C API/ABI 互換性および Stable C API の整備

    • 既存の API/ABI 互換性を壊す変更は、必ず C API ワーキンググループと事前合意すること
    • Python 3.15 までにフリースレッディング専用の Stable C API を定義・提供すること
  2. 新たな実験的プロジェクト基準

    • CPython 内部の新規実験プロジェクトは、フリースレッディングビルドと互換性を持ち、これを前提に開発すること
    • GIL とフリースレッディングの並行維持に伴う複雑さを最小化すること
  3. 性能・メモリのガードレール

    • 目標: GIL ビルド比で性能低下 10 % 以内
    • 最大 15 % の性能低下 / 15 % のメモリ増加までは SC の事前合意が必要(メモリ上限は 20 %)
  4. 文書化要件

    • Python ユーザー: 標準ライブラリ API の保証と変更点の明確化
    • Python・C API 開発者: シグナル・スレッド安全性など、並行性保証の文書化
    • CPython 開発者: 実装時の考慮事項の文書化
    • すべての資料を集約した公式の「フリースレッディング・ランディングページ」を提供
  5. 高水準並行プリミティブの準備

    • concurrent パッケージを中心に、ユーザーが内部実装を知らなくても活用できる高水準の並行ツールを提案・検討
  6. ベンチマーク要件

    • 性能・メモリ・正確性に関する主張を pyperformance ベースの再現可能なテストで検証
    • 実際のワークロードを反映した追加ベンチマークへの貢献を奨励

SC はプロジェクトの進捗状況に確信を示し、Python コミュニティがフリースレッディングビルドを正式サポートの選択肢として積極的に広報することを推奨しています。3.14 beta 3 で「experimental」タグは正式に削除される予定であり、Phase III(フリースレッディングをデフォルトまたは唯一のビルドへ移行する段階)については今後議論されます。

3件のコメント

 
carnoxen 2025-06-20

スレッド独立万歳!

 
idunno 2025-06-18

やったー!

 
kimjoin2 2025-06-17

わお…!