Python 3.13リリース - 新しいGIL改善

2025.12.08

Python 3.13の概要

Python 3.13は2024年10月にリリースされ、実験的なfree-threaded mode(GILなしモード)、改善されたインタラクティブシェル、JITコンパイラなど、多くの新機能が導入されました。

GIL(Global Interpreter Lock)とは

GILは、Pythonインタプリタが一度に1つのスレッドしか実行できないようにするロック機構です。これにより、マルチスレッドプログラムでもCPUバウンドな処理は並列実行されません。

なぜGILがあるのか: CPythonのメモリ管理を単純化し、C拡張モジュールとの互換性を保つためです。

Free-threaded Mode(実験的)

Python 3.13では、GILを無効化した「free-threaded」ビルドが実験的に提供されています。

インストール方法

# 専用のビルドをインストール(例:Ubuntu)
# 公式バイナリから free-threaded 版を取得

# バージョン確認
python3.13t --version

free-threadedモードの特徴

  • 真のマルチスレッド並列実行が可能
  • CPUバウンドな処理でスレッドが効果的に動作
  • 一部のC拡張モジュールは非対応
  • シングルスレッド性能は若干低下

改善されたインタラクティブシェル

Python 3.13のREPLは大幅に改善されました:

  • マルチライン編集のサポート
  • シンタックスハイライト
  • より良いエラーメッセージ
  • 履歴のブロック単位でのナビゲーション

実験的JITコンパイラ

copy-and-patchベースのJITコンパイラが実験的に導入されました。特定のワークロードで性能向上が期待できます。

# JITを有効にして実行(実験的)
PYTHON_JIT=1 python3.13 script.py

その他の改善

型ヒントの強化

# TypedDict でデフォルト値をサポート
from typing import TypedDict, Required, NotRequired

class User(TypedDict):
    name: Required[str]
    age: NotRequired[int]  # オプショナル

エラーメッセージの改善

NameError時に似た名前の変数を提案するなど、デバッグがより容易になりました。

まとめ

Python 3.13は、長年の課題だったGILに対する実験的な解決策を提供し始めました。free-threaded modeはまだ実験段階ですが、将来のPythonの方向性を示す重要なリリースです。

← 一覧に戻る