- update to 0.29.34:
* A refence leak of the for-loop list/tuple iterable was
resolved if the for-loop's ``else:`` branch executes
a ``break`` for an outer loop.
* Some C compile failures in CPython 3.12 were resolved.
* Some old usages of the deprecated Python ``imp`` module were
replaced with ``importlib``.
* Patch by Matúš Valo. (Github issue :issue:`5300`)
* Some issues with ``depfile`` generation were resolved.
* Patches by Eli Schwartz. (Github issues :issue:`5279`,
:issue:`5291`)
OBS-URL: https://build.opensuse.org/request/show/1077062
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=69
- update to 0.29.33:
* The ``cythonize`` and ``cython`` commands have a new option ``-M`` /
``--depfile`` to generate ``.dep`` dependency files for the
compilation unit. This can be used by external build tools to
track these dependencies.
* ``const`` fused types could not be used with memory views.
* ``wstr`` usage was removed in Python 3.12 and later (PEP-623).
* A type check assertion for Cython functions failed in debug Python
builds.
* Fixed various compiler warnings.
* Fixed error when calculating complex powers of negative numbers.
* Corrected a small mis-formatting of exception messages on Python 2.
* The ``PyUnicode_AsUTF8AndSize()`` C-API function was missing from the
CPython declarations.
* A performance problem in the compiler was resolved when nesting
conditional expressions.
* Test suite problems with recent NumPy and CPython versions were
resolved.
* Other changes
* The undocumented, untested and apparently useless syntax
``from somemodule cimport class/struct/union somename`` was deprecated
in anticipation of its removal in Cython 3. The type
modifier is not needed here and a plain ``cimport`` of the name will do.
* Properly disable generation of descriptor docstrings on PyPy since they
cause crashes.
It was previously disabled, but only accidentally via a typo.
* The ``cpow`` directive of Cython 3.0 is available as a no-op.
OBS-URL: https://build.opensuse.org/request/show/1058181
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=68
- Make the running the test suite conditional (default
off). Seven hours of running it is just too much.
- Enable running of the test suite.
- update to 0.29.27:
* The ``cythonize`` command has a new option ``-M`` to generate ``.dep`` dependency
files for the compilation unit. This can be used by external build tools to track
these dependencies.
* Calls to ``range()`` with more than three arguments did not fail.
* Some C compiler warnings about missing type struct initialisers in Py3.10 were resolved.
* Cython no longer warns about using OpenMP 3.0 features since they are now
considered generally available.
OBS-URL: https://build.opensuse.org/request/show/950793
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=63
- update to 0.29.25:
* Several incompatibilities with CPython 3.11 were resolved.
* Some C compiler warnings were resolved.
* C++ ``std::move()`` should only be used automatically in MSVC versions that support it.
* The ``Py_hash_t`` type failed to accept arbitrary "index" values.
* Avoid copying unaligned 16-bit values since some platforms require them to be aligned.
Use memcpy() instead to let the C compiler decide how to do it.
* Cython crashed on invalid truthiness tests on C++ types without ``operator bool``.
* The declaration of ``PyUnicode_CompareWithASCIIString()`` in ``cpython.unicode`` was incorrect.
OBS-URL: https://build.opensuse.org/request/show/936122
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=61
- update to 0.29.23:
* Some problems with Python 3.10 were resolved.
Patches by Victor Stinner and David Woods. (Github issues #4046, #4100)
* An incorrect "optimisation" was removed that allowed changes to a keyword
dict to leak into keyword arguments passed into a function.
Patch by Peng Weikang. (Github issue #3227)
* Multiplied str constants could end up as bytes constants with language_level=2.
Patch by Alphadelta14 and David Woods. (Github issue #3951)
* ``PY_SSIZE_T_CLEAN`` does not get defined any more if it is already defined.
Patch by Andrew Jones. (Github issue #4104)
OBS-URL: https://build.opensuse.org/request/show/887377
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=59
- Update TO 0.29.21
* Fix a regression in 0.29.20 where __div__ failed to be found in extension types
* Fix a regression in 0.29.20 where a call inside of a finally clause could
fail to compile
* Zero-sized buffers could fail to validate as C/Fortran-contiguous.
* exec() did not allow recent Python syntax features in Py3.8+
due to https://bugs.python.org/issue35975
* Binding staticmethods of Cython functions were not behaving like
Python methods in Py3
* Pythran calls to NumPy methods no longer generate useless method lookup code.
* The PyUnicode_GET_LENGTH() macro was missing from the cpython.* declarations
* The deprecated PyUnicode_*() C-API functions are no longer used, except
for Unicode strings that contain lone surrogates. Unicode strings that
contain non-BMP characters or surrogate pairs now generate different C
code on 16-bit Python 2.x Unicode deployments (such as MS-Windows).
Generating the C code on Python 3.x is recommended in this case
* Some template parameters were missing from the C++ std::unordered_map declaration
* Several internal code generation issues regarding temporary variables were resolved
OBS-URL: https://build.opensuse.org/request/show/819616
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Cython?expand=0&rev=57
- 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