Hello community,
here is the log from the commit of package python-Cython for openSUSE:Factory checked in at 2018-07-18 22:35:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Cython (Old)
and /work/SRC/openSUSE:Factory/.python-Cython.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Cython"
Wed Jul 18 22:35:45 2018 rev:40 rq:622245 version:0.28.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Cython/python-Cython-doc.changes 2018-05-30 12:36:55.897056240 +0200
+++ /work/SRC/openSUSE:Factory/.python-Cython.new/python-Cython-doc.changes 2018-07-18 22:35:48.470566925 +0200
@@ -1,0 +2,12 @@
+Thu Jul 12 03:33:30 UTC 2018 - arun@gmx.de
+
+- update to version 0.28.4:
+ * Bugs fixed
+ + Reallowing tp_clear() in a subtype of an @no_gc_clear extension
+ type generated an invalid C function call to the (non-existent)
+ base type implementation. (Github issue #2309)
+ + Exception catching based on a non-literal (runtime) tuple could
+ fail to match the exception. (Github issue #2425)
+ + Compile fix for CPython 3.7.0a2. (Github issue #2477)
+
+-------------------------------------------------------------------
python-Cython.changes: same change
Old:
----
Cython-0.28.3.tar.gz
New:
----
Cython-0.28.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Cython-doc.spec ++++++
--- /var/tmp/diff_new_pack.KJQyXO/_old 2018-07-18 22:35:49.614563135 +0200
+++ /var/tmp/diff_new_pack.KJQyXO/_new 2018-07-18 22:35:49.638563056 +0200
@@ -20,7 +20,7 @@
# Tests currently fail randomly in OBS multiple local rund do not trigger them
%bcond_with test
Name: python-Cython-doc
-Version: 0.28.3
+Version: 0.28.4
Release: 0
Summary: The Cython compiler for writing C extensions for the Python language
License: Apache-2.0
++++++ python-Cython.spec ++++++
--- /var/tmp/diff_new_pack.KJQyXO/_old 2018-07-18 22:35:49.694562870 +0200
+++ /var/tmp/diff_new_pack.KJQyXO/_new 2018-07-18 22:35:49.714562804 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
Name: python-Cython
-Version: 0.28.3
+Version: 0.28.4
Release: 0
Summary: The Cython compiler for writing C extensions for the Python language
License: Apache-2.0
++++++ Cython-0.28.3.tar.gz -> Cython-0.28.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/.gitrev new/Cython-0.28.4/.gitrev
--- old/Cython-0.28.3/.gitrev 2018-05-27 10:43:12.000000000 +0200
+++ new/Cython-0.28.4/.gitrev 2018-07-08 09:46:06.000000000 +0200
@@ -1 +1 @@
-d09232ab74e3183c0a44b40f1d3b44be6fea4f43
+69714807b2ab222fbf9cc6715f28c2f13ebe436c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/CHANGES.rst new/Cython-0.28.4/CHANGES.rst
--- old/Cython-0.28.3/CHANGES.rst 2018-05-27 10:40:28.000000000 +0200
+++ new/Cython-0.28.4/CHANGES.rst 2018-07-08 09:18:10.000000000 +0200
@@ -2,6 +2,22 @@
Cython Changelog
================
+0.28.4 (2018-07-08)
+===================
+
+Bugs fixed
+----------
+
+* Reallowing ``tp_clear()`` in a subtype of an ``@no_gc_clear`` extension type
+ generated an invalid C function call to the (non-existent) base type implementation.
+ (Github issue #2309)
+
+* Exception catching based on a non-literal (runtime) tuple could fail to match the
+ exception. (Github issue #2425)
+
+* Compile fix for CPython 3.7.0a2. (Github issue #2477)
+
+
0.28.3 (2018-05-27)
===================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/Cython/Compiler/ModuleNode.py new/Cython-0.28.4/Cython/Compiler/ModuleNode.py
--- old/Cython-0.28.3/Cython/Compiler/ModuleNode.py 2018-05-27 10:40:28.000000000 +0200
+++ new/Cython-0.28.4/Cython/Compiler/ModuleNode.py 2018-07-08 09:18:10.000000000 +0200
@@ -1603,7 +1603,7 @@
code.putln("}")
def generate_clear_function(self, scope, code, cclass_entry):
- tp_slot = TypeSlots.GCDependentSlot("tp_clear")
+ tp_slot = TypeSlots.get_slot_by_name("tp_clear")
slot_func = scope.mangle_internal("tp_clear")
base_type = scope.parent_type.base_type
if tp_slot.slot_code(scope) != slot_func:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/Cython/Shadow.py new/Cython-0.28.4/Cython/Shadow.py
--- old/Cython-0.28.3/Cython/Shadow.py 2018-05-27 10:40:28.000000000 +0200
+++ new/Cython-0.28.4/Cython/Shadow.py 2018-07-08 09:45:52.000000000 +0200
@@ -1,7 +1,7 @@
# cython.* namespace for pure mode.
from __future__ import absolute_import
-__version__ = "0.28.3"
+__version__ = "0.28.4"
try:
from __builtin__ import basestring
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/Cython/Utility/Coroutine.c new/Cython-0.28.4/Cython/Utility/Coroutine.c
--- old/Cython-0.28.3/Cython/Utility/Coroutine.c 2018-05-27 10:40:28.000000000 +0200
+++ new/Cython-0.28.4/Cython/Utility/Coroutine.c 2018-07-08 09:18:10.000000000 +0200
@@ -1851,7 +1851,7 @@
}
#if CYTHON_FAST_THREAD_STATE
__Pyx_PyThreadState_assign
- #if PY_VERSION_HEX >= 0x030700A2
+ #if PY_VERSION_HEX >= 0x030700A3
if (!$local_tstate_cname->exc_state.exc_type)
#else
if (!$local_tstate_cname->exc_type)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/Cython/Utility/Exceptions.c new/Cython-0.28.4/Cython/Utility/Exceptions.c
--- old/Cython-0.28.3/Cython/Utility/Exceptions.c 2018-05-27 10:40:28.000000000 +0200
+++ new/Cython-0.28.4/Cython/Utility/Exceptions.c 2018-07-08 09:18:10.000000000 +0200
@@ -359,7 +359,7 @@
*value = local_value;
*tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
- #if PY_VERSION_HEX >= 0x030700A2
+ #if PY_VERSION_HEX >= 0x030700A3
tmp_type = tstate->exc_state.exc_type;
tmp_value = tstate->exc_state.exc_value;
tmp_tb = tstate->exc_state.exc_traceback;
@@ -403,7 +403,7 @@
PyObject *type = NULL, *value = NULL, *tb = NULL;
#if CYTHON_FAST_THREAD_STATE
PyThreadState *tstate = PyThreadState_GET();
- #if PY_VERSION_HEX >= 0x030700A2
+ #if PY_VERSION_HEX >= 0x030700A3
type = tstate->exc_state.exc_type;
value = tstate->exc_state.exc_value;
tb = tstate->exc_state.exc_traceback;
@@ -455,7 +455,7 @@
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
- #if PY_VERSION_HEX >= 0x030700A2
+ #if PY_VERSION_HEX >= 0x030700A3
*type = tstate->exc_state.exc_type;
*value = tstate->exc_state.exc_value;
*tb = tstate->exc_state.exc_traceback;
@@ -472,7 +472,7 @@
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
PyObject *tmp_type, *tmp_value, *tmp_tb;
- #if PY_VERSION_HEX >= 0x030700A2
+ #if PY_VERSION_HEX >= 0x030700A3
tmp_type = tstate->exc_state.exc_type;
tmp_value = tstate->exc_state.exc_value;
tmp_tb = tstate->exc_state.exc_traceback;
@@ -510,7 +510,7 @@
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
PyObject *tmp_type, *tmp_value, *tmp_tb;
- #if PY_VERSION_HEX >= 0x030700A2
+ #if PY_VERSION_HEX >= 0x030700A3
tmp_type = tstate->exc_state.exc_type;
tmp_value = tstate->exc_state.exc_value;
tmp_tb = tstate->exc_state.exc_traceback;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.28.3/Cython/Utility/ModuleSetupCode.c new/Cython-0.28.4/Cython/Utility/ModuleSetupCode.c
--- old/Cython-0.28.3/Cython/Utility/ModuleSetupCode.c 2018-05-27 10:40:28.000000000 +0200
+++ new/Cython-0.28.4/Cython/Utility/ModuleSetupCode.c 2018-07-08 09:18:10.000000000 +0200
@@ -765,15 +765,48 @@
// so far, we only call PyErr_GivenExceptionMatches() with an exception type (not instance) as first argument
// => optimise for that case
+static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
+ Py_ssize_t i, n;
+ assert(PyExceptionClass_Check(exc_type));
+ n = PyTuple_GET_SIZE(tuple);
+#if PY_MAJOR_VERSION >= 3
+ // the tighter subtype checking in Py3 allows faster out-of-order comparison
+ for (i=0; i