[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/python/python-docs-de/sync-upstream-3.14/c-api/stable.po [Back]  [Original]

# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001 Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR , YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.14\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 09:12+0000\n"
"PO-Revision-Date: 2025-09-16 00:00+0000\n"
"Language-Team: German (https://app.transifex.com/python-doc/teams/5390/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: ../../c-api/stable.rst:7
msgid "C API Stability"
msgstr ""

#: ../../c-api/stable.rst:9
msgid ""
"Unless documented otherwise, Python's C API is covered by the Backwards "
"Compatibility Policy, :pep:`387`. Most changes to it are source-compatible "
"(typically by only adding new API). Changing existing API or removing API is "
"only done after a deprecation period or to fix serious issues."
msgstr ""

#: ../../c-api/stable.rst:15
msgid ""
"CPython's Application Binary Interface (ABI) is forward- and backwards-"
"compatible across a minor release (if these are compiled the same way; see :"
"ref:`stable-abi-platform` below). So, code compiled for Python 3.10.0 will "
"work on 3.10.8 and vice versa, but will need to be compiled separately for "
"3.9.x and 3.11.x."
msgstr ""

#: ../../c-api/stable.rst:21
msgid "There are two tiers of C API with different stability expectations:"
msgstr ""

#: ../../c-api/stable.rst:23
msgid ""
":ref:`Unstable API `, may change in minor versions without a "
"deprecation period. It is marked by the ``PyUnstable`` prefix in names."
msgstr ""

#: ../../c-api/stable.rst:25
msgid ""
":ref:`Limited API `, is compatible across several minor "
"releases. When :c:macro:`Py_LIMITED_API` is defined, only this subset is "
"exposed from ``Python.h``."
msgstr ""

#: ../../c-api/stable.rst:29
msgid "These are discussed in more detail below."
msgstr ""

#: ../../c-api/stable.rst:31
msgid ""
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases. If you need to "
"use this API, consider reaching out to `CPython developers `_ to discuss adding public API for your use "
"case."
msgstr ""

#: ../../c-api/stable.rst:40
msgid "Unstable C API"
msgstr ""

#: ../../c-api/stable.rst:44
msgid ""
"Any API named with the ``PyUnstable`` prefix exposes CPython implementation "
"details, and may change in every minor release (e.g. from 3.9 to 3.10) "
"without any deprecation warnings. However, it will not change in a bugfix "
"release (e.g. from 3.10.0 to 3.10.1)."
msgstr ""

#: ../../c-api/stable.rst:49
msgid ""
"It is generally intended for specialized, low-level tools like debuggers."
msgstr ""

#: ../../c-api/stable.rst:51
msgid ""
"Projects that use this API are expected to follow CPython development and "
"spend extra effort adjusting to changes."
msgstr ""

#: ../../c-api/stable.rst:57
msgid "Stable Application Binary Interface"
msgstr ""

#: ../../c-api/stable.rst:59
msgid ""
"For simplicity, this document talks about *extensions*, but the Limited API "
"and Stable ABI work the same way for all uses of the API  for example, "
"embedding Python."
msgstr ""

#: ../../c-api/stable.rst:66
msgid "Limited C API"
msgstr ""

#: ../../c-api/stable.rst:68
msgid ""
"Python 3.2 introduced the *Limited API*, a subset of Python's C API. "
"Extensions that only use the Limited API can be compiled once and be loaded "
"on multiple versions of Python. Contents of the Limited API are :ref:`listed "
"below `."
msgstr ""

#: ../../c-api/stable.rst:75
msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version."
msgstr ""

#: ../../c-api/stable.rst:78
msgid ""
"Define ``Py_LIMITED_API`` to the value of :c:macro:`PY_VERSION_HEX` "
"corresponding to the lowest Python version your extension supports. The "
"extension will be ABI-compatible with all Python 3 releases from the "
"specified one onward, and can use Limited API introduced up to that version."
msgstr ""

#: ../../c-api/stable.rst:84
msgid ""
"Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum "
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
"compiling with future Python versions."
msgstr ""

#: ../../c-api/stable.rst:88
msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
msgstr ""

#: ../../c-api/stable.rst:95
msgid "Stable ABI"
msgstr ""

#: ../../c-api/stable.rst:97
msgid ""
"To enable this, Python provides a *Stable ABI*: a set of symbols that will "
"remain ABI-compatible across Python 3.x versions."
msgstr ""

#: ../../c-api/stable.rst:102
msgid ""
"The Stable ABI prevents ABI issues, like linker errors due to missing "
"symbols or data corruption due to changes in structure layouts or function "
"signatures. However, other changes in Python can change the *behavior* of "
"extensions. See Python's Backwards Compatibility Policy (:pep:`387`) for "
"details."
msgstr ""

#: ../../c-api/stable.rst:108
msgid ""
"The Stable ABI contains symbols exposed in the :ref:`Limited API `, but also other ones  for example, functions necessary to support "
"older versions of the Limited API."
msgstr ""

#: ../../c-api/stable.rst:112
msgid ""
"On Windows, extensions that use the Stable ABI should be linked against "
"``python3.dll`` rather than a version-specific library such as ``python39."
"dll``."
msgstr ""

#: ../../c-api/stable.rst:116
msgid ""
"On some platforms, Python will look for and load shared library files named "
"with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not check if such "
"extensions conform to a Stable ABI. The user (or their packaging tools) need "
"to ensure that, for example, extensions built with the 3.10+ Limited API are "
"not installed for lower versions of Python."
msgstr ""

#: ../../c-api/stable.rst:123
msgid ""
"All functions in the Stable ABI are present as functions in Python's shared "
"library, not solely as macros. This makes them usable from languages that "
"don't use the C preprocessor."
msgstr ""

#: ../../c-api/stable.rst:129
msgid "Limited API Scope and Performance"
msgstr ""

#: ../../c-api/stable.rst:131
msgid ""
"The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty."
msgstr ""

#: ../../c-api/stable.rst:134
msgid ""
"For example, while :c:func:`PyList_GetItem` is available, its unsafe macro "
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
"can rely on version-specific implementation details of the list object."
msgstr ""

#: ../../c-api/stable.rst:139
msgid ""
"Without ``Py_LIMITED_API`` defined, some C API functions are inlined or "
"replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, "
"allowing stability as Python's data structures are improved, but possibly "
"reducing performance."
msgstr ""

#: ../../c-api/stable.rst:144
msgid ""
"By leaving out the ``Py_LIMITED_API`` definition, it is possible to compile "
"a Limited API extension with a version-specific ABI. This can improve "
"performance for that Python version, but will limit compatibility. Compiling "
"with ``Py_LIMITED_API`` will then yield an extension that can be distributed "
"where a version-specific one is not available  for example, for prereleases "
"of an upcoming Python version."
msgstr ""

#: ../../c-api/stable.rst:153
msgid "Limited API Caveats"
msgstr ""

#: ../../c-api/stable.rst:155
msgid ""
"Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee "
"that code conforms to the :ref:`Limited API ` or the :ref:"
"`Stable ABI `. ``Py_LIMITED_API`` only covers definitions, but "
"an API also includes other issues, such as expected semantics."
msgstr ""

#: ../../c-api/stable.rst:160
msgid ""
"One issue that ``Py_LIMITED_API`` does not guard against is calling a "
"function with arguments that are invalid in a lower Python version. For "
"example, consider a function that starts accepting ``NULL`` for an argument. "
"In Python 3.9, ``NULL`` now selects a default behavior, but in Python 3.8, "
"the argument will be used directly, causing a ``NULL`` dereference and "
"crash. A similar argument works for fields of structs."
msgstr ""

#: ../../c-api/stable.rst:167
msgid ""
"Another issue is that some struct fields are currently not hidden when "
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
msgstr ""

#: ../../c-api/stable.rst:170
msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version."
msgstr ""

#: ../../c-api/stable.rst:173
msgid ""
"We also recommend reviewing documentation of all used API to check if it is "
"explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a "
"few private declarations are exposed for technical reasons (or even "
"unintentionally, as bugs)."
msgstr ""

#: ../../c-api/stable.rst:178
msgid ""
"Also note that the Limited API is not necessarily stable: compiling with "
"``Py_LIMITED_API`` with Python 3.8 means that the extension will run with "
"Python 3.12, but it will not necessarily *compile* with Python 3.12. In "
"particular, parts of the Limited API may be deprecated and removed, provided "
"that the Stable ABI stays stable."
msgstr ""

#: ../../c-api/stable.rst:188
msgid "Platform Considerations"
msgstr ""

#: ../../c-api/stable.rst:190
msgid ""
"ABI stability depends not only on Python, but also on the compiler used, "
"lower-level libraries and compiler options. For the purposes of the :ref:"
"`Stable ABI `, these details define a platform. They usually "
"depend on the OS type and processor architecture"
msgstr ""

#: ../../c-api/stable.rst:195
msgid ""
"It is the responsibility of each particular distributor of Python to ensure "
"that all Python versions on a particular platform are built in a way that "
"does not break the Stable ABI. This is the case with Windows and macOS "
"releases from ``python.org`` and many third-party distributors."
msgstr ""

#: ../../c-api/stable.rst:205
msgid "Contents of Limited API"
msgstr ""

#: ../../c-api/stable.rst:208
msgid ""
"Currently, the :ref:`Limited API ` includes the following "
"items:"
msgstr ""

#: ../../c-api/stable.rst:42
msgid "PyUnstable"
msgstr ""

Web Proxy Viewer  |  New URL  |  Original Page