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

CPython は以下のマクロでバージョン番号を公開しています。これらはコード
が **ビルドされた** バージョンに対応しており、必ずしも **実行時** に使
われるバージョンではないことに注意してください。

バージョン間の API と ABI の安定性については C API の安定性 を参照して
ください。

PY_MAJOR_VERSION

   "3.4.1a2" の "3" 。

PY_MINOR_VERSION

   "3.4.1a2" の "4" 。

PY_MICRO_VERSION

   "3.4.1a2" の "1" 。

PY_RELEASE_LEVEL

   "3.4.1a2" の "a" 。アルファでは "0xA" 、ベータでは "0xB" 、リリース
   候補では "0xC" 、最終版では "0xF" となります。

PY_RELEASE_SERIAL

   "3.4.1a2" の "2" 。最終リリースでは 0 になります。

PY_VERSION_HEX

   Python のバージョン番号を単一の整数に符号化したものです。

   下記のように32ビットの値として扱うことで、バージョン情報を得ること
   ができます:

   +---------+---------------------------+---------------------------+----------------------------+
   | bytes   | ビット (ビッグエンディア  | 意味                      | "3.4.1a2" の値             |
   |         | ンオーダ)                 |                           |                            |
   |=========|===========================|===========================|============================|
   | 1       | 1-8                       | "PY_MAJOR_VERSION"        | "0x03"                     |
   +---------+---------------------------+---------------------------+----------------------------+
   | 2       | 9-16                      | "PY_MINOR_VERSION"        | "0x04"                     |
   +---------+---------------------------+---------------------------+----------------------------+
   | 3       | 17-24                     | "PY_MICRO_VERSION"        | "0x01"                     |
   +---------+---------------------------+---------------------------+----------------------------+
   | 4       | 25-28                     | "PY_RELEASE_LEVEL"        | "0xA"                      |
   |         +---------------------------+---------------------------+----------------------------+
   |         | 29-32                     | "PY_RELEASE_SERIAL"       | "0x2"                      |
   +---------+---------------------------+---------------------------+----------------------------+

   したがって、 "3.4.1a2" は16進数で "0x030401a2" であり、 "3.10.0" は
   16進数で "0x030a00f0" です。

これらのマクロは Include/patchlevel.h で定義されています。
