Python/C API リファレンスマニュアル
***********************************

このマニュアルでは、拡張モジュールを書いたり Python インタプリタをアプ
リケーションに埋め込んだりしたい C/C++ プログラマが利用できる API につ
いて述べています。 Python インタプリタの拡張と埋め込み は拡張モジュー
ルを書く際の一般的な決まりごとについて記述していますが、 API の詳細ま
では記述していないので、このドキュメントが手引きになります。

* はじめに

  * 言語バージョン互換性

  * コーディング基準

  * インクルードファイル

  * 便利なマクロ

  * オブジェクト、型および参照カウント

  * 例外

  * Python の埋め込み

  * デバッグ版ビルド (Debugging Builds)

  * おすすめのサードパーティツール

* C API と ABI の安定性

  * 不安定な C API

  * 安定したアプリケーションバイナリインターフェース

  * プラットフォームで考慮すべき点

  * ABI の確認

  * 限定版APIの内容

* 超高水準レイヤ

  * 利用できる開始記号

  * スタックへの影響

* 参照カウント

* 例外処理

  * 出力とクリア

  * 例外の送出

  * 警告

  * エラーインジケータの問い合わせ

  * シグナルハンドリング

  * 例外クラス

  * 例外オブジェクト

  * Unicode 例外オブジェクト

  * 再帰の管理

  * 例外と警告の型

  * トレースバック

* 拡張モジュールの定義

  * 拡張モジュールのエクスポートフック

  * 多段階初期化

  * 複数のモジュールインスタンス

  * "PyInit" 関数

* 定義用スロット

  * 便利なマクロ

  * 共通のスロット ID

* ユーティリティ

  * オペレーティングシステム関連のユーティリティ

  * システム関数

  * プロセス制御

  * モジュールのインポート

  * データ整列化 (data marshalling) のサポート

  * 引数の解釈と値の構築

  * 文字列の変換と書式化

  * 文字の分類と変換

  * PyHash API

  * リフレクション

  * codec レジストリとサポート関数

  * PyTime C API

  * perf map のサポート

  * Expat C API

* 抽象オブジェクトレイヤ (Abstract Objects Layer)

  * オブジェクトプロトコル (object protocol)

  * Call プロトコル

  * 数値型プロトコル (number protocol)

  * シーケンス型プロトコル (sequence protocol)

  * マップ型プロトコル (mapping protocol)

  * イテレータプロトコル (iterator protocol)

  * バッファプロトコル (buffer Protocol)

* 具象オブジェクト (concrete object) レイヤ

  * 基本オブジェクト (fundamental object)

  * 数値型オブジェクト (numeric object)

  * シーケンスオブジェクト (sequence object)

  * Container オブジェクト

  * Function オブジェクト

  * その他のオブジェクト

  * 拡張モジュール用の C API

* インタープリタの初期化と終了処理

  * Python の初期化前

  * グローバルな設定変数

  * インタープリタの初期化と終了処理

  * インタープリタの終了処理に関する注意

  * インタープリタのビュー

  * プロセスワイドのパラメータ

* スレッド状態とグローバルインタープリタロック

  * 拡張コードからのスレッド状態のデタッチ

  * 外部スレッドからの C API の使用

  * GIL 状態の API

  * fork() に関する注意

  * 高水準 API

  * 低水準 API

* 非同期通知

* OS スレッドの API

* 同期プリミティブ

  * Python のクリティカルセクション API

  * 従来のロック API

* スレッドローカルストレージのサポート

  * スレッド固有ストレージ API

  * 動的なメモリ確保

  * メソッド

  * 従来の API

* Python プロセス内の複数のインタープリタ

  * インタープリタごとの GIL

  * バグと注意事項

  * 高水準 API

  * 低水準 API

  * 高度なデバッガーのサポート

* プロファイリングとトレース

* 参照のトレース

* パフォーマンス統計

* Python 初期化設定

  * PyInitConfig C API

  * 設定オプション

  * 実行時の Python 設定 API

  * PyConfig C API

  * Py_GetArgcArgv()

  * 多相初期化の非公開の暫定 API

* メモリ管理

  * 概要

  * アロケータドメイン

  * 生メモリインターフェース

  * メモリインターフェース

  * オブジェクトアロケータ

  * デフォルトのメモリアロケータ

  * メモリアロケータをカスタマイズする

  * Python メモリアロケータのデバッグフック

  * pymalloc アロケータ

  * mimalloc アロケータ

  * tracemalloc C API

  * 使用例

* オブジェクト実装サポート (object implementation support)

  * ヒープ上でのオブジェクトの割り当て

  * オブジェクトのライフサイクル

  * 共通のオブジェクト構造体 (common object structure)

  * 型オブジェクトの構造体

  * 循環参照ガベージコレクションをサポートする

* API と ABI のバージョニング

  * ビルド時のバージョン定数

  * 実行時のバージョン

  * ビットを詰め合わせるマクロ

* モニタリング C API

* 実行イベントの発生

  * モニタリング状態の管理
