@@ -170,13 +170,14 @@ Cython users may use the NumPy C-API via ``cimport numpy as cnp``.
170170Due to the uncertainty of Cython development, there are two scenarios for
171171impact on Cython users.
172172
173- If Cython 3 can be relied on, Cython users would be impacted *less * then C-API
173+ If Cython 3 can be relied on, Cython users would be impacted *less * than C-API
174174users, because Cython 3 allows us to hide struct layout changes (i.e. changes
175175to ``PyArray_Descr ``).
176- If this is not the case and we must support Cython 2.x, then Cython users
177- will also have to use a function/macro like ``PyDataType_ITEMSIZE() `` (or
178- use the Python object). This is unfortunately less typical in Cython code,
179- but also unlikely to be a common pattern for dtype struct fields/attributes.
176+ If this is not the case and we must support Cython 0.29.x (which is the historic branch
177+ before Cython 3), then Cython users will also have to use a function/macro like
178+ ``PyDataType_ITEMSIZE() `` (or use the Python object). This is unfortunately less
179+ typical in Cython code, but also unlikely to be a common pattern for dtype struct
180+ fields/attributes.
180181
181182A further impact is that some future API additions such as new classes may
182183need to placed in a distinct ``.pyd `` file to avoid Cython generating code
@@ -199,7 +200,7 @@ is missing.
199200
200201Some new API can be backported
201202-------------------------------
202- One large advantage of allowing users to compile with the newst version of
203+ One large advantage of allowing users to compile with the newest version of
203204NumPy is that in some cases we will be able to backport new API.
204205Some new API functions can be written in terms of old ones or included
205206directly.
@@ -229,7 +230,7 @@ An implementation can be found in the `PR 23528`_.
229230The second part is mainly about identifying and implementing the desired
230231changes in a way that backwards compatibility will not be broken and API
231232breaks remain manageable for downstream libraries.
232- Everyone change we do must have a brief note on how to adapt to the
233+ Every change we do must have a brief note on how to adapt to the
233234API change (i.e. alternative functions).
234235
235236NumPy 2 compatibility and API table changes
@@ -239,12 +240,13 @@ NumPy 1.x (a table is a list of functions and symbols).
239240
240241For compatibility we would need to translate the 1.x table to the 2.0 table.
241242This could be done in headers only in theory, but this seems unwieldy.
242- We thus propose to add a ``numpy2_compat `` package. This packages main
243+ We thus propose to add a ``numpy2_compat `` package. This package's main
243244purpose would be to provide a translation of the 1.x table to the 2.x one
244245in a single place (filling in any necessary blanks).
245246
246247Introducing this package solves the "transition" issue because it allows
247248a user to:
249+
248250* Install a SciPy version that is compatible with 2.0 and 1.x
249251* and keep using NumPy 1.x because of other packages they are using are not
250252 yet compatible.
@@ -278,6 +280,7 @@ Backward compatibility
278280======================
279281
280282As mentioned above backwards compatibility is achieved by:
283+
2812841. Forcing downstream to recompile with NumPy 2.0
2822852. Providing a ``numpy2_compat `` library.
283286
0 commit comments