Python 3.14登場、フリースレッド版正式サポート。実験的JITコンパイラも公式バイナリで利用可能に
スクリプト言語Pythonの最新版となる「Python 3.14」正式版が公開されました。
Python 3.14での大きな新機能はフリースレッド版の正式サポートと公式バイナリでの実験的JITコンパイラ導入でしょう。
フリースレッド版Pythonの正式サポート
Pythonは2023年8月、グローバルインタプリタロック(GIL)を解消し、マルチスレッド処理を高速化する方向で開発を進めていくという方針を明らかにしていました。
グローバルインタプリタロックとはインタープリタ全体で1つのロックを持つことです。これによりシングルスレッドのプログラムにおいては細かなロック制御が不要となって速度の向上ができる一方、マルチスレッドの平行性は制限されるという欠点がありました。
参考:Pythonがグローバルインタプリタロックの解消へ、マルチスレッド処理の高速化実現
昨年(2024年)10月に登場した前バージョンのPython 3.13では、実験的にグローバルインタプリタロックをなくして高速なマルチスレッド処理を可能にしたフリースレッドモード(free-threaded mode)を実現したビルドが登場しました。
そして今回のバージョンであるPython 3.14では、「PEP 779:Free-threaded Python is officially supported」が正式な機能として実装されたことで、フリースレッド版のPythonは実験的なフェーズ(フェーズ1)から正式サポート(フェーズ2)へと移行しています。
正式サポートとなったことで、フリースレッド版のPythonは基本的には将来にわたって利用可能となることが確実となりました。
ただしこれまでのPythonエコシステムとの互換性などを確保するため、フリースレッド版はデフォルトのPythonランタイムバイナリとは別の、オプション扱いとなっています。
このフリースレッド版PythonがPythonのデフォルトとなるのがフェーズ3とされていますが、1年後のPython 3.15でフェーズ3となるかどうかは未定となっています。
公式バイナリに実験的JITコンパイラが搭載
Pythonは前述の通り非常に人気の高いプログラミング言語でありながら、その公式実装であるC言語で記述されたCPythonはインタプリタであるため、実行速度の面で課題を抱えていました。
その課題を解決するため、昨年(2024年)10月にリリースされた前バージョンのPython 3.13ではJITコンパイラの実験的実装が開始されています。
具体的にはC言語によるPythonの標準的な実装であるCPythonに対して「--enable-experimental-jit」オプションを付けてビルドすることで、実験的JITコンパイラを有効にすることができました。
そして今回のPython 3.14では、Windows版とmacOS版の公式ビルドに実験的JITコンパイラ機能が組み込まれるようになったため、ユーザー自身でビルドすることなく実験的JITコンパイラが利用可能になりました。
Pythonで採用されるJITコンパイラは、コピー&パッチ方式と呼ばれる2021年に提案された新しい方式のJITコンパイラです。仕組みについては下記の記事で紹介しているのでご参照ください。
参考:次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?
Android用バイナリなどその他の新機能
その他、Andorid用の公式バイナリのリリース、アノテーションの遅延評価、テンプレート文字列「t-strings」の導入を始めとする多くの新機能が追加されています。
それら詳細については「Python Release Python 3.14.0 | Python.org」をご覧ください。