- Say goodbye to -doc subpackage as the documentation is online
and does not build with latest sphinx releases (even in master
at the moment).
- The testing in -doc spec was disabled anyway and if needed we
will reintroduce it as a multibuild
- update to 0.29.10
* Fix compile errors in CPython 3.8b1 due to the new "tp_vectorcall" slots.
* Remove an incorrect cast when using true-division in C++ operations.
* C compile errors with CPython 3.8 were resolved.
* Python tuple constants that compare equal but have different item types
could incorrectly be merged into a single constant.
* Non-ASCII characters in unprefixed strings could crash the compiler
when used with language level 3str
* Starred expressions in %-formatting tuples could fail to compile for unicode strings
* Passing Python class references through cython.inline() was broken.
OBS-URL: https://build.opensuse.org/request/show/709360
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=49
- update to 0.29.7
* Crash when the shared Cython config module gets unloaded and another
Cython module reports an exceptions. Cython now makes sure it keeps
an owned reference to the module
* Resolved a C89 compilation problem when enabling the fast-gil sharing feature.
* Coverage reporting did not include the signature line of cdef functions
* Casting a GIL-requiring function into a nogil function now issues a warning
* Generators and coroutines were missing their return type annotation
- update to 0.29.7
* Crash when the shared Cython config module gets unloaded and another
Cython module reports an exceptions. Cython now makes sure it keeps
an owned reference to the module
* Resolved a C89 compilation problem when enabling the fast-gil sharing feature.
* Coverage reporting did not include the signature line of cdef functions
* Casting a GIL-requiring function into a nogil function now issues a warning
* Generators and coroutines were missing their return type annotation
OBS-URL: https://build.opensuse.org/request/show/694800
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=48
- update to 0.29.6
* Fix a crash when accessing the __kwdefaults__ special attribute of fused functions.
* Fix the parsing of buffer format strings that contain numeric sizes, which
could lead to incorrect input rejections.
* Avoid a C #pragma in old gcc versions that was only added in GCC 4.6.
* Auto-encoding of Unicode strings to UTF-8 C/C++ strings failed in Python 3,
even though the default encoding there is UTF-8.
* Crash when defining a Python subclass of an extension type and repeatedly
calling a cpdef method on it.
* Compiler crash when prange() loops appear inside of with-statements.
* Some C compiler warnings were resolved.
* Python conversion of C++ enums failed in 0.29.
- update to 0.29.6
* Fix a crash when accessing the __kwdefaults__ special attribute of fused functions.
* Fix the parsing of buffer format strings that contain numeric sizes, which
could lead to incorrect input rejections.
* Avoid a C #pragma in old gcc versions that was only added in GCC 4.6.
* Auto-encoding of Unicode strings to UTF-8 C/C++ strings failed in Python 3,
even though the default encoding there is UTF-8.
* Crash when defining a Python subclass of an extension type and repeatedly
calling a cpdef method on it.
* Compiler crash when prange() loops appear inside of with-statements.
* Some C compiler warnings were resolved.
* Python conversion of C++ enums failed in 0.29.
OBS-URL: https://build.opensuse.org/request/show/680181
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=46
- Version update to 0.28.1:
* PyFrozenSet_New() was accidentally used in PyPy where it is lacking
from the C-API.
* Assignment between some C++ templated types were incorrectly rejected
when the templates mix const with ctypedef. (Github issue #2148)
* Undeclared C++ no-args constructors in subclasses could make the
compilation fail if the base class constructor was declared without
nogil. (Github issue #2157)
* Bytes %-formatting inferred basestring (bytes or unicode) as result type
in some cases where bytes would have been safe to infer. (Github issue #2153)
* None was accidentally disallowed as typed return value of dict.pop().
- update to version 0.28:
* Features added
+ Cdef classes can now multiply inherit from ordinary Python
classes. (The primary base must still be a c class, possibly
object, and the other bases must not be cdef classes.)
+ Type inference is now supported for Pythran compiled NumPy
expressions. Patch by Nils Braun. (Github issue #1954)
+ The const modifier can be applied to memoryview declarations to
allow read-only buffers as input. (Github issues #1605, #1869)
+ C code in the docstring of a cdef extern block is copied
verbatimly into the generated file. Patch by Jeroen
Demeyer. (Github issue #1915)
+ When compiling with gcc, the module init function is now tuned
for small code size instead of whatever compile flags were
provided externally. Cython now also disables some code
intensive optimisations in that function to further reduce the
code size. (Github issue #2102)
+ Decorating an async coroutine with @cython.iterable_coroutine
OBS-URL: https://build.opensuse.org/request/show/588610
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=36
- Update to version 0.20:
* Support for CPython 3.4.
* Support for calling C++ template functions.
* yield is supported in finally clauses.
* The C code generated for finally blocks is duplicated for each exit
case to allow for better optimisations by the C compiler.
* Cython tries to undo the Python optimisationism of assigning a bound
method to a local variable when it can generate better code for the
direct call.
* Constant Python float values are cached.
* String equality comparisons can use faster type specific code in
more cases than before.
* String/Unicode formatting using the '%' operator uses a faster
C-API call.
* bytearray has become a known type and supports coercion from and
to C strings. Indexing, slicing and decoding is optimised. Note that
this may have an impact on existing code due to type inference.
* Using cdef basestring stringvar and function arguments typed as
basestring is now meaningful and allows assigning exactly
str and unicode objects, but no subtypes of these types.
* Support for the __debug__ builtin.
* Assertions in Cython compiled modules are disabled if the running
Python interpreter was started with the "-O" option.
* Some types that Cython provides internally, such as functions and
generators, are now shared across modules if more than one Cython
implemented module is imported.
* The type inference algorithm works more fine granular by taking the
results of the control flow analysis into account.
* A new script in bin/cythonize provides a command line frontend
to the cythonize() compilation function (including distutils build).
OBS-URL: https://build.opensuse.org/request/show/220455
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=18
- update to 0.19.2:
* Some standard declarations were fixed or updated, including the previously
incorrect declaration of ``PyBuffer_FillInfo()`` and some missing bits in
``libc.math``.
* Heap allocated subtypes of ``type`` used the wrong base type struct at the
C level.
* Calling the unbound method dict.keys/value/items() in dict subtypes could
call the bound object method instead of the unbound supertype method.
* "yield" wasn't supported in "return" value expressions.
* Using the "bint" type in memory views lead to unexpected results.
It is now an error.
* Assignments to global/closure variables could catch them in an illegal state
while deallocating the old value. (forwarded request 204137 from dirkmueller)
OBS-URL: https://build.opensuse.org/request/show/204142
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=17
- update to 0.19.1:
* Completely empty C-API structs for extension type slots (protocols like
number/mapping/sequence) are no longer generated into the C code.
* Docstrings that directly follow a public/readonly attribute declaration
in a cdef class will be used as docstring of the auto-generated property.
This fixes ticket 206.
* The automatic signature documentation tries to preserve more semantics
of default arguments and argument types. Specifically, ``bint`` arguments
now appear as type ``bool``.
* A warning is emitted when negative literal indices are found inside of
a code section that disables ``wraparound`` handling. This helps with
fixing invalid code that might fail in the face of future compiler
optimisations.
* Constant folding for boolean expressions (and/or) was improved.
* Added a build_dir option to cythonize() which allows one to place
the generated .c files outside the source tree.
- Update to version 0.19:
+ Please see http://wiki.cython.org/ReleaseNotes-0.19 (forwarded request 175219 from dirkmueller)
OBS-URL: https://build.opensuse.org/request/show/175239
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=13
* The C-API declarations were updated to include the new
PyDict_*Ref() functions. (Github issue :issue:`7291`)
* Iteration over literal sequences and strings in generators
generated invalid C code since 3.2.0. This was a regression
due to the C array iteration optimisation in :issue:`6926`,
which is now disabled inside of generators. (Github issue
:issue:`7342`)
* Calling special methods of known exception types failed with
an AttributeError. (Github issue :issue:`7342`)
* Calling the unbound __mul__ special method of builtin
collections with subtypes failed. (Github issue
:issue:`7340`)
* C string literals could generate invalid "const to non-const"
casts in the C code. (Github issue :issue:`7346`)
* yield is no longer allowed inside of a
cython.critical_section, but is now allowed while holding a
cython.pymutex. (Github issue :issue:`7317`)
* Under lock congestion, acquiring the GIL could crash in
Python 3.11, part 2. This bug was introduced in Cython 3.2.0.
(Github issue :issue:`7312`)
* The new py_safe_* functions in libc.threads triggered C
compiler warnings. (Github issue :issue:`7356`)
* Cython now leaves markers about its utility code dependencies
in the generated C code to help debugging "unused function" C
compiler warnings. (Github issue :issue:`7294`)
* Relative imports could fail if the shared utility module is
used. This bug was introduced in Cython 3.2.0. (Github issue
:issue:`7290`)
* Under lock congestion, acquiring the GIL could crash in
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=213
- Update to 3.1.4
* Declarations for the new PyUnstable_*() refcounting C-API functions in Py3.14
were added.
* The monitoring code could crash on tracing.
* Initialising the monitoring code could fail with a CPython exception.
* Optimised integer shifting triggered undefined behaviour in C.
* Deallocating objects that inherit from external types defined in pxd files
could run into an infinite loop.
* A reference to metaclasses could be leaked on instantiation.
* (Unlikely) error handling during empty builtin container tests was ineffective.
* Generated *_api.h files used potentially unknown Cython configuration macros.
* cythonize() avoids parallel compiler runs on systems using spawn() in
multiprocessing.
* The @cython.ufunc decorator was missing in type checker stubs.
OBS-URL: https://build.opensuse.org/request/show/1306531
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=211
- Update to 3.1.3
* Some method calls with 0 or 1 argument failed to use PyObject_VectorCallMethod().
* Walrus assignments of literal Python integers could generate invalid C code.
* cython.pythread_type_lock (also used as fallback for cython.pymutex) could stall
on heavily contended locks.
* C string arrays (not pointers) always coerced to the Python default string type,
even on explicit casts to other string types.
* Unterminated \N{} character escapes in strings could unrail the parser.
* An internal C function was not marked as static and leaked a linker symbol.
* Some Unicode letters were not recognised as lexically valid name parts.
* Compatibility with PyPy3.8 was lost by accident.
* The Linux binary wheels of 3.1.2 used SSSE3 CPU instructions which are not
available on some CPUs.
- Convert to libalternatives on SLE-16-based and newer systems only
OBS-URL: https://build.opensuse.org/request/show/1299226
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=209
- Update top 3.1.2
* Attribute lookups failed on the ``bool`` builtin type.
(Github issue :issue:`6905`)
* Type checks on or-ed union types could incorrectly return false.
(Github issue :issue:`6420`)
* Negative list indexing could accidentally wrap around twice in PyPy and the Limited API.
* Iterating over literal sequences with starred (unpacked) items could infer a wrong
type for the loop variable and fail to assign the values.
(Github issue :issue:`6924`)
* Calls to C functions taking exception types failed to check for a `None` argument.
(Github issue :issue:`6420`)
* Fused functions had an incorrect ``__module__`` attribute.
(Github issue :issue:`6897`)
* The type of Cython implemented functions had an incorrect ``__module__`` attribute.
(Github issue :issue:`6841`)
* Errors while indexing into ``bytearray`` or ``str`` in ``nogil`` sections could crash.
(Github issue :issue:`6947`)
* ``bytearray.append()`` could silently accept some invalid character numbers.
* The C++11 ``<type_traits>`` header was included regardless of the C++ version.
(Github issue :issue:`6896`)
* ``PyDict_GetItemStringRef()`` was accidentally used in older Limited API versions.
(Github issue :issue:`6914`)
* ``abort()`` was used but not always available in the Limited API.
(Github issue :issue:`6918`)
* Some dependencies were missing from the ``depfile``.
(Github issue :issue:`6938`)
* Embedded function signatures were not always separated from the existing docstring.
(Github issue :issue:`6904`)
* ``numpy.math`` was missing from ``Cython/Includes/`` and could not be cimported.
(Github issue :issue:`6859`)
* Some tests were adapted for NumPy 2.x.
(Github issue :issue:`6898`)
* Some C compiler warnings were fixed.
(Github issue :issue:`6870`)
* ``Cython.Build`` was not officially exposing the ``cythonize`` function.
(Github issue :issue:`6934`)
- Changes from 3.1.1
* A reference leak in the async delegation code was fixed.
(Github issues :issue:`6850`, :issue:`6878`)
* Conditional if-else expressions mixing Python and C (numeric) types could end up
inferring an overly tight result type, thus leading to unexpected type conversions,
runtime exceptions on assignment, or incorrect "temporary assignment" compile errors.
(Github issue :issue:`6854`)
* Some Limited API issues were resolved.
(Github issue :issue:`6862`)
* Large C ``long long`` values could be truncated when passed into PyPy.
(Github issue :issue:`6890`)
* ``callable()`` incorrectly reported ``False`` in PyPy for classes with metaclasses.
Patch by Anatolii Aniskovych. (Github issue :issue:`6892`)
* The signature of fused functions was no longer introspectable in Cython 3.1.0.
(Github issue :issue:`6855`)
* Coroutines could generate invalid C with line tracing enabled.
(Github issue :issue:`6865`)
* Code using ``complex()`` could generate invalid C code missing type declarations.
(Github issue :issue:`6860`)
* Code using e.g. ``list[int | None]`` outside of variable/argument annotations failed to compile.
(Github issue :issue:`6856`)
* Code using ctuples in a ``const`` context could generate invalid C.
(Github issue :issue:`6864`)
* Accessing special methods on cpdef enums failed to compile.
* Some C compiler warnings were resolved.
Patches by Daniel Larraz. (Github issues :issue:`6876`, :issue:`3172`, :issue:`6873`, :issue:`6877`)
* Re-establish support for PyPy 3.8.
(Github issue :issue:`6867`)
- Changes from 3.1.0
- See https://github.com/cython/cython/releases/tag/3.1.0-1
OBS-URL: https://build.opensuse.org/request/show/1293837
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=207
- Update to 3.0.12
* Release 3.0.11 introduced some incorrect ``noexcept`` warnings.
(Github issue :issue:`6335`)
* Conditional assignments to variables using the walrus operator
could crash. (Github issue :issue:`6094`)
* Dict assignments to struct members with reserved C names could generate
invalid C code.
* Fused ctuples with the same entry types but different sizes could
fail to compile. (Github issue :issue:`6328`)
* In Py3, `pyximport` was not searching `sys.path` when looking for
importable source files. (Github issue :issue:`5615`)
* Using `& 0` on integers produced with `int.from_bytes()` could read
invalid memory on Python 3.10. (Github issue :issue:`6480`)
* Modules could fail to compile in PyPy 3.11 due to missing CPython
specific header files. Patch by Matti Picus. (Github issue :issue:`6482`)
* Minor fix in C++ ``partial_sum()`` declaration.
OBS-URL: https://build.opensuse.org/request/show/1246992
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=202
* The C++11 emplace* methods were added to libcpp.deque. Patch
by Somin An. (Github issue :issue:`6159`)
* The exception check value of functions declared in pxd files
was not always applied in 3.0.10. (Github issue
:issue:`6122`)
* A crash on exception deallocations was fixed. (Github issue
:issue:`6022`)
* A crash was fixed when assigning a zero-length slice to a
memoryview. Patch by Michael Man. (Github issue
:issue:`6227`)
* libcpp.optional.value() could crash if it raised a C++
exception. Patch by Alexander Condello. (Github issue
:issue:`6190`)
* The return type of str() was mishandled, leading to crashes
with language_level=3. (Github issue :issue:`6166`)
* bytes.startswith/endswith() failed for non-bytes substrings
(e.g. bytearray). (Github issue :issue:`6168`)
* Fused ctuples crashed Cython. (Github issue :issue:`6068`)
* A compiler crash was fixed when using extension types in
fused types. (Github issue :issue:`6204`)
* The module cleanup code was incorrect for globally defined
memory view slices. (Github issue :issue:`6276`)
* Some adaptations were made to enable compilation in Python
3.13. (Github issues :issue:`5997`, :issue:`6182`,
:issue:`6251`)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Cython?expand=0&rev=200