@@ -11,7 +11,7 @@ msgid ""
1111msgstr ""
1212"Project-Id-Version : Python 3.12\n "
1313"Report-Msgid-Bugs-To : \n "
14- "POT-Creation-Date : 2023-05-26 14:12 +0000\n "
14+ "POT-Creation-Date : 2023-06-09 14:13 +0000\n "
1515"PO-Revision-Date : 2021-06-28 00:50+0000\n "
1616"Last-Translator : Claudio Rogerio Carvalho Filho <excriptbrasil@gmail.com>, "
1717"2021\n "
@@ -51,14 +51,15 @@ msgstr ""
5151
5252#: ../../c-api/stable.rst:23
5353msgid ""
54- "* Unstable API* , may change in minor versions without a deprecation period. "
55- "It is marked by the ``PyUnstable`` prefix in names."
54+ ":ref:` Unstable API <unstable-c-api>` , may change in minor versions without a "
55+ "deprecation period. It is marked by the ``PyUnstable`` prefix in names."
5656msgstr ""
5757
5858#: ../../c-api/stable.rst:25
5959msgid ""
60- "*Limited API*, is compatible across several minor releases. When :c:macro:"
61- "`Py_LIMITED_API` is defined, only this subset is exposed from ``Python.h``."
60+ ":ref:`Limited API <limited-c-api>`, is compatible across several minor "
61+ "releases. When :c:macro:`Py_LIMITED_API` is defined, only this subset is "
62+ "exposed from ``Python.h``."
6263msgstr ""
6364
6465#: ../../c-api/stable.rst:29
@@ -103,25 +104,21 @@ msgstr "Interface binária de aplicativo estável"
103104
104105#: ../../c-api/stable.rst:58
105106msgid ""
106- "Python 3.2 introduced the *Limited API*, a subset of Python's C API. "
107- "Extensions that only use the Limited API can be compiled once and work with "
108- "multiple versions of Python. Contents of the Limited API are :ref:`listed "
109- "below <stable-abi-list>`."
107+ "For simplicity, this document talks about *extensions*, but the Limited API "
108+ "and Stable ABI work the same way for all uses of the API – for example, "
109+ "embedding Python."
110110msgstr ""
111111
112- #: ../../c-api/stable.rst:63
113- msgid ""
114- "To enable this, Python provides a *Stable ABI*: a set of symbols that will "
115- "remain compatible across Python 3.x versions. The Stable ABI contains "
116- "symbols exposed in the Limited API, but also other ones – for example, "
117- "functions necessary to support older versions of the Limited API."
112+ #: ../../c-api/stable.rst:65
113+ msgid "Limited C API"
118114msgstr ""
119115
120- #: ../../c-api/stable.rst:68
116+ #: ../../c-api/stable.rst:67
121117msgid ""
122- "(For simplicity, this document talks about *extensions*, but the Limited API "
123- "and Stable ABI work the same way for all uses of the API – for example, "
124- "embedding Python.)"
118+ "Python 3.2 introduced the *Limited API*, a subset of Python's C API. "
119+ "Extensions that only use the Limited API can be compiled once and work with "
120+ "multiple versions of Python. Contents of the Limited API are :ref:`listed "
121+ "below <limited-api-list>`."
125122msgstr ""
126123
127124#: ../../c-api/stable.rst:74
@@ -152,14 +149,31 @@ msgid ""
152149"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
153150msgstr ""
154151
155- #: ../../c-api/stable.rst:90
152+ #: ../../c-api/stable.rst:94
153+ msgid "Stable ABI"
154+ msgstr ""
155+
156+ #: ../../c-api/stable.rst:96
157+ msgid ""
158+ "To enable this, Python provides a *Stable ABI*: a set of symbols that will "
159+ "remain compatible across Python 3.x versions."
160+ msgstr ""
161+
162+ #: ../../c-api/stable.rst:99
163+ msgid ""
164+ "The Stable ABI contains symbols exposed in the :ref:`Limited API <limited-c-"
165+ "api>`, but also other ones – for example, functions necessary to support "
166+ "older versions of the Limited API."
167+ msgstr ""
168+
169+ #: ../../c-api/stable.rst:103
156170msgid ""
157171"On Windows, extensions that use the Stable ABI should be linked against "
158172"``python3.dll`` rather than a version-specific library such as ``python39."
159173"dll``."
160174msgstr ""
161175
162- #: ../../c-api/stable.rst:94
176+ #: ../../c-api/stable.rst:107
163177msgid ""
164178"On some platforms, Python will look for and load shared library files named "
165179"with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not check if such "
@@ -168,39 +182,39 @@ msgid ""
168182"not installed for lower versions of Python."
169183msgstr ""
170184
171- #: ../../c-api/stable.rst:101
185+ #: ../../c-api/stable.rst:114
172186msgid ""
173187"All functions in the Stable ABI are present as functions in Python's shared "
174188"library, not solely as macros. This makes them usable from languages that "
175189"don't use the C preprocessor."
176190msgstr ""
177191
178- #: ../../c-api/stable.rst:107
192+ #: ../../c-api/stable.rst:120
179193msgid "Limited API Scope and Performance"
180194msgstr ""
181195
182- #: ../../c-api/stable.rst:109
196+ #: ../../c-api/stable.rst:122
183197msgid ""
184198"The goal for the Limited API is to allow everything that is possible with "
185199"the full C API, but possibly with a performance penalty."
186200msgstr ""
187201
188- #: ../../c-api/stable.rst:112
202+ #: ../../c-api/stable.rst:125
189203msgid ""
190204"For example, while :c:func:`PyList_GetItem` is available, its “unsafe” macro "
191205"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
192206"can rely on version-specific implementation details of the list object."
193207msgstr ""
194208
195- #: ../../c-api/stable.rst:117
209+ #: ../../c-api/stable.rst:130
196210msgid ""
197211"Without ``Py_LIMITED_API`` defined, some C API functions are inlined or "
198212"replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, "
199213"allowing stability as Python's data structures are improved, but possibly "
200214"reducing performance."
201215msgstr ""
202216
203- #: ../../c-api/stable.rst:122
217+ #: ../../c-api/stable.rst:135
204218msgid ""
205219"By leaving out the ``Py_LIMITED_API`` definition, it is possible to compile "
206220"a Limited API extension with a version-specific ABI. This can improve "
@@ -210,19 +224,19 @@ msgid ""
210224"of an upcoming Python version."
211225msgstr ""
212226
213- #: ../../c-api/stable.rst:131
227+ #: ../../c-api/stable.rst:144
214228msgid "Limited API Caveats"
215229msgstr ""
216230
217- #: ../../c-api/stable.rst:133
231+ #: ../../c-api/stable.rst:146
218232msgid ""
219233"Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee "
220- "that code conforms to the Limited API or the Stable ABI. ``Py_LIMITED_API`` "
221- "only covers definitions, but an API also includes other issues, such as "
222- "expected semantics."
234+ "that code conforms to the :ref:` Limited API <limited-c-api>` or the :ref: "
235+ "`Stable ABI <stable-abi>`. ``Py_LIMITED_API`` only covers definitions, but "
236+ "an API also includes other issues, such as expected semantics."
223237msgstr ""
224238
225- #: ../../c-api/stable.rst:138
239+ #: ../../c-api/stable.rst:151
226240msgid ""
227241"One issue that ``Py_LIMITED_API`` does not guard against is calling a "
228242"function with arguments that are invalid in a lower Python version. For "
@@ -232,27 +246,27 @@ msgid ""
232246"crash. A similar argument works for fields of structs."
233247msgstr ""
234248
235- #: ../../c-api/stable.rst:145
249+ #: ../../c-api/stable.rst:158
236250msgid ""
237251"Another issue is that some struct fields are currently not hidden when "
238252"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
239253msgstr ""
240254
241- #: ../../c-api/stable.rst:148
255+ #: ../../c-api/stable.rst:161
242256msgid ""
243257"For these reasons, we recommend testing an extension with *all* minor Python "
244258"versions it supports, and preferably to build with the *lowest* such version."
245259msgstr ""
246260
247- #: ../../c-api/stable.rst:151
261+ #: ../../c-api/stable.rst:164
248262msgid ""
249263"We also recommend reviewing documentation of all used API to check if it is "
250264"explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a "
251265"few private declarations are exposed for technical reasons (or even "
252266"unintentionally, as bugs)."
253267msgstr ""
254268
255- #: ../../c-api/stable.rst:156
269+ #: ../../c-api/stable.rst:169
256270msgid ""
257271"Also note that the Limited API is not necessarily stable: compiling with "
258272"``Py_LIMITED_API`` with Python 3.8 means that the extension will run with "
@@ -261,32 +275,34 @@ msgid ""
261275"that the Stable ABI stays stable."
262276msgstr ""
263277
264- #: ../../c-api/stable.rst:166
278+ #: ../../c-api/stable.rst:179
265279msgid "Platform Considerations"
266280msgstr ""
267281
268- #: ../../c-api/stable.rst:168
282+ #: ../../c-api/stable.rst:181
269283msgid ""
270284"ABI stability depends not only on Python, but also on the compiler used, "
271- "lower-level libraries and compiler options. For the purposes of the Stable "
272- "ABI, these details define a “platform”. They usually depend on the OS type "
273- "and processor architecture"
285+ "lower-level libraries and compiler options. For the purposes of the :ref: "
286+ "`Stable ABI <stable-abi>` , these details define a “platform”. They usually "
287+ "depend on the OS type and processor architecture"
274288msgstr ""
275289
276- #: ../../c-api/stable.rst:173
290+ #: ../../c-api/stable.rst:186
277291msgid ""
278292"It is the responsibility of each particular distributor of Python to ensure "
279293"that all Python versions on a particular platform are built in a way that "
280294"does not break the Stable ABI. This is the case with Windows and macOS "
281295"releases from ``python.org`` and many third-party distributors."
282296msgstr ""
283297
284- #: ../../c-api/stable.rst:183
298+ #: ../../c-api/stable.rst:196
285299msgid "Contents of Limited API"
286300msgstr ""
287301
288- #: ../../c-api/stable.rst:186
289- msgid "Currently, the Limited API includes the following items:"
302+ #: ../../c-api/stable.rst:199
303+ msgid ""
304+ "Currently, the :ref:`Limited API <limited-c-api>` includes the following "
305+ "items:"
290306msgstr ""
291307
292308#: ../../c-api/stable.rst:42
0 commit comments