As discussed on C API WG, formally soft-deprecate outdated macros:
Py_LL & Py_ULL: Use LL/ULL suffixes.
Py_MEMCPY (already soft-deprecated)
Py_VA_COPY: Use va_copy directly.
PY_LONG_LONG, PY_LLONG_MIN, PY_LLONG_MAX, PY_ULLONG_MAX, PY_INT32_T, PY_UINT32_T, PY_INT64_T, PY_UINT64_T, PY_SIZE_MAX: Use C99 types/limits
Py_UNICODE_SIZE: Use sizeof(wchar_t) directly
PY_FORMAT_SIZE_T: Use "z" directly
Py_ALIGNED: Use _Alignas (C11) or alignas (C++ & C23) instead.
Plus Py_UNICODE_WIDE: soft-deprecate this instead of removing. (There's been no visible warning outside docs, and removing an #ifdef macro is indistinguishable from making it “false”.)
Linked PRs
As discussed on C API WG, formally soft-deprecate outdated macros:
Py_LL&Py_ULL: UseLL/ULLsuffixes.Py_MEMCPY(already soft-deprecated)Py_VA_COPY: Useva_copydirectly.PY_LONG_LONG,PY_LLONG_MIN,PY_LLONG_MAX,PY_ULLONG_MAX,PY_INT32_T,PY_UINT32_T,PY_INT64_T,PY_UINT64_T,PY_SIZE_MAX: Use C99 types/limitsPy_UNICODE_SIZE: Usesizeof(wchar_t)directlyPY_FORMAT_SIZE_T: Use"z"directlyPy_ALIGNED: Use_Alignas(C11) oralignas(C++ & C23) instead.Plus
Py_UNICODE_WIDE: soft-deprecate this instead of removing. (There's been no visible warning outside docs, and removing an#ifdefmacro is indistinguishable from making it “false”.)Linked PRs