Skip to content

Add Py_PACK_VERSION macros #128629

Closed
Closed
@encukou

Description

@encukou

Add these to limited API:

  • Py_PACK_FULL_VERSION(x, y, z, level, serial): pack a version number from components
    into the format used by Py_VERSION_HEX and Py_LIMITED_API.
    For example, Py_PACK_FULL_VERSION(3, 14, 0, 0xA, 1) evaluates to 0x030E00A1.

  • Py_PACK_VERSION(x, y): shorthand for Py_PACK_FULL_VERSION(x, y, 0, 0, 0),
    useful because the first two version components often determine ABI
    compatibility.

These are primarily macros, but we will export library functions with the same names and functionality, for use in wrappers for non-C languages – for example, Python with ctypes.

The functions take int arguments and return uint32_t. Inputs are masked (high bits are ignored).

C API WG decision: capi-workgroup/decisions#47

Linked PRs

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions