Interfaz binaria de aplicación estable
**************************************

Tradicionalmente, la API en C de Python cambiará con cada lanzamiento.
La mayoría de los cambios serán compatibles con la fuente,
generalmente solo agregando API, en lugar de cambiar la API existente
o eliminar la API (aunque algunas interfaces se eliminan después de
ser desaprobadas primero).

Desafortunadamente, la compatibilidad API no se extiende a la
compatibilidad binaria (el ABI). La razón es principalmente la
evolución de las definiciones de estructura, donde la adición de un
nuevo campo, o el cambio del tipo de campo, puede no romper la API,
pero puede romper la ABI. Como consecuencia, los módulos de extensión
deben volver a compilarse para cada versión de Python (aunque es
posible una excepción en Unix cuando no se utiliza ninguna de las
interfaces afectadas). Además, en Windows, los módulos de extensión se
vinculan con un pythonXY.dll específico y deben recompilarse para
vincularse con uno más nuevo.

Desde Python 3.2, se ha declarado un subconjunto de la API para
garantizar un ABI estable. Los módulos de extensión que deseen
utilizar esta API (llamada "API limitada") deben definir
"Py_LIMITED_API". Varios detalles del intérprete se ocultan del módulo
de extensión; a cambio, se construye un módulo que funciona en
cualquier versión 3.x (x> = 2) sin recompilación.

En algunos casos, el ABI estable debe ampliarse con nuevas funciones.
Los módulos de extensión que deseen utilizar estas nuevas API deben
establecer "Py_LIMITED_API" en el valor "PY_VERSION_HEX" (ver
Versiones de API y ABI) de la versión mínima de Python que desean
admitir (por ejemplo,``0x03030000`` para Python 3.3). Dichos módulos
funcionarán en todas las versiones posteriores de Python, pero no se
cargarán (debido a la falta de símbolos) en las versiones anteriores.

A partir de Python 3.2, el conjunto de funciones disponibles para la
API limitada se documenta en **PEP 384**. En la documentación de la
API de C, los elementos de la API que no forman parte de la API
limitada se marcan como "No forma parte de la API limitada".
