10月8日、Pythonソフトウェア財団はPython 3.13.0を正式にリリースした。
この新しいリリースは、Python 3.12と比較して多くの新機能や最適化が追加されている。Python 3.13.0は、これまでの開発バージョンである3.13.0rc3からわずかなバグ修正、ドキュメントおよびテストの変更を加えた安定版である。以下は、Python 3.12からの主な変更点である。
新機能
- **改良されたインタラクティブインタプリタ**:PyPyに基づく新しいインタプリタで、マルチライン編集、カラフルな例外トレースバックをサポートしている。
- **実験的なフリースレッドモード**:Global Interpreter Lock (GIL) を無効にし、スレッドの並行実行を可能にする。この機能はWindowsおよびmacOSのインストーラに実験的に含まれている。
- **実験的なJITコンパイラ**:パフォーマンス向上の基盤を提供する予備的なJIT (Just-In-Time)コンパイラが導入された。
- **
locals()
関数の改良**:返されるマッピングを変更する際のセマンティクスが明確化され、デバッガーの操作がより一貫性を持つようになった。 - **mimallocの導入**:フリースレッドモードに対応するため、mimallocがデフォルトで有効化された。
言語変更
- **ドキュメントストリングの最適化**:先頭のインデントが削除され、メモリ使用量と
.pyc
ファイルのサイズが削減された。 - **dbmモジュールの改善**:新しい
[dbm.sqlite3](https://docs.python.org/3.13/whatsnew/3.13.html#dbm)
バックエンドが追加され、ファイル作成時のデフォルトとなった。 - **macOSのサポートバージョン変更**:最低サポートバージョンがmacOS 10.9から10.13(High Sierra)に変更された。
プラットフォームサポート
- **WASIのTier 2対応**:WASIは新たにTier 2サポートプラットフォームとなった。一方で、Emscriptenは公式サポートから外されたが、Pyodideが引き続きEmscriptenをサポートしている。
- **iOS**とAndroidのサポート:iOSとAndroidがそれぞれTier 3のサポートプラットフォームに追加された。
型システムの改善
- **型パラメータでのデフォルト値のサポート**:型パラメータにデフォルト値を設定できるようになった。
- **新しい型ナローイングアノテーション**:
[typing.TypeIs](https://peps.python.org/pep-0742/)
アノテーションが追加された。 - **TypeDictでの読み取り専用項目のアノテーション**:
TypeDict
内の読み取り専用項目を示すための新しいアノテーションが導入された。
削除および非推奨
- **PEP 594による標準ライブラリの削除**:
aifc
、audioop
、chunk
、cgi
、imghdr
など、多くのモジュールが非推奨となり、今後のリリースで削除される予定である。 - **C APIの削除および非推奨**:いくつかのC APIが削除され、非推奨とされた。
詳細は[Python Insider: Python 3.13.0 (final) released]を参照していただきたい。