Interface Binária de Aplicação Estável
**************************************

Tradicionalmente, a API C do Python mudará com cada versão. A maioria
das mudanças será compatível com a origem, normalmente, apenas
adicionando API, ao invés de alterar a API existente ou remover API
(embora algumas interfaces sejam removidas depois de primeiro se
tornarem obsoletas ).

Infelizmente, a compatibilidade da API não se estende à
compatibilidade binária (o ABI). O motivo é principalmente a evolução
das definições de estrutura, onde a adição de um novo campo, ou a
alteração do tipo de um campo, pode não quebrar a API, mas pode
quebrar o ABI. Como consequência, os módulos de extensão precisam ser
recompilados para cada versão do Python (embora exista uma exceção no
Unix quando nenhuma das interfaces afetadas é usada). Além disso, no
Windows, os módulos de extensão se conectam com um pythonXY.dll
específico e precisam ser recompilados para vincular com um novo.

Desde o Python 3.2, um subconjunto da API foi declarado para garantir
um ABI estável. Os módulos de extensão que desejam usar esta API
(chamada "API limitada") precisam definir "Py_LIMITED_API". Uma série
de detalhes do interpretador ficam escondidos do módulo de extensão;
em troca, um módulo é construído que funciona em qualquer versão 3.x
(x> = 2) sem recompilação.

Em alguns casos, a ABI estável deve ser estendida com novas funções.
Os módulos de extensão que desejam usar essas novas APIs precisam
definir "Py_LIMITED_API" para o valor "PY_VERSION_HEX" (veja API e
Versionamento de ABI) da versão mínima do Python que eles querem
suportar (por exemplo,``0x03030000`` para Python 3.3). Esses módulos
funcionarão em todas as versões subsequentes do Python, mas não
carregarão (por causa dos símbolos que faltam) nos lançamentos mais
antigos.

A partir do Python 3.2, o conjunto de funções disponíveis para a API
limitada está documentado em **PEP 384**. Na documentação da API C, os
elementos da API que não fazem parte da API limitada são marcados como
"Não faz parte da API limitada".
