Hello community,

here is the log from the commit of package python-greenlet for openSUSE:Factory 
checked in at 2018-08-10 09:47:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-greenlet (Old)
 and      /work/SRC/openSUSE:Factory/.python-greenlet.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-greenlet"

Fri Aug 10 09:47:10 2018 rev:31 rq:627924 version:0.4.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-greenlet/python-greenlet.changes  
2018-02-02 22:23:37.782101256 +0100
+++ /work/SRC/openSUSE:Factory/.python-greenlet.new/python-greenlet.changes     
2018-08-10 09:47:15.542026679 +0200
@@ -1,0 +2,9 @@
+Tue Aug  7 15:26:22 UTC 2018 - toddrme2...@gmail.com
+
+- Update to 0.4.14
+  * Support for C-SKY architecture
+  * Fixed support for ppc64 ABI
+  * Fixed support for Python 3.7
+- Remove upstream-included greenlet-ppc64le.patch
+
+-------------------------------------------------------------------

Old:
----
  greenlet-0.4.13.tar.gz
  greenlet-ppc64le.patch

New:
----
  greenlet-0.4.14.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-greenlet.spec ++++++
--- /var/tmp/diff_new_pack.DbthtR/_old  2018-08-10 09:47:15.970027367 +0200
+++ /var/tmp/diff_new_pack.DbthtR/_new  2018-08-10 09:47:15.974027373 +0200
@@ -18,22 +18,21 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_without test
 Name:           python-greenlet
-Version:        0.4.13
+Version:        0.4.14
 Release:        0
 Summary:        Lightweight in-process concurrent programming
 License:        MIT
 Group:          Development/Libraries/Python
-Url:            http://pypi.python.org/pypi/greenlet
+Url:            https://github.com/python-greenlet/greenlet
 Source0:        
https://files.pythonhosted.org/packages/source/g/greenlet/greenlet-%{version}.tar.gz
-Patch0:         greenlet-ppc64le.patch
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
-BuildRequires:  gcc-c++
+BuildRequires:  c++_compiler
 BuildRequires:  python-rpm-macros
 BuildRequires:  python3-Sphinx
+
 %python_subpackages
 
 %description
@@ -53,7 +52,6 @@
 
 %prep
 %setup -q -n greenlet-%{version}
-%patch0 -p1
 
 %build
 export CFLAGS="%{optflags} -fno-tree-dominator-opts -fno-strict-aliasing"
@@ -64,19 +62,19 @@
 %python_install
 %python_expand %fdupes %{buildroot}%{$python_sitearch}
 
-%if %{with test}
 %check
 export CFLAGS="%{optflags} -fno-tree-dominator-opts -fno-strict-aliasing"
 %python_exec setup.py -q test
-%endif
 
 %files %{python_files}
-%doc AUTHORS NEWS README.rst LICENSE*
+%doc AUTHORS NEWS README.rst
 %doc doc/_build/html/
+%license LICENSE*
 %{python_sitearch}/*
 
 %files %{python_files devel}
-%doc AUTHORS LICENSE*
+%doc AUTHORS
+%license LICENSE*
 %{_includedir}/python%{python_version}*/greenlet/
 
 %changelog

++++++ greenlet-0.4.13.tar.gz -> greenlet-0.4.14.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/.travis.yml 
new/greenlet-0.4.14/.travis.yml
--- old/greenlet-0.4.13/.travis.yml     2017-01-06 11:34:06.000000000 +0100
+++ new/greenlet-0.4.14/.travis.yml     2018-07-04 20:40:29.000000000 +0200
@@ -9,6 +9,7 @@
   - 3.4
   - 3.5
   - 3.6
+  - 3.7-dev
 
 install: python setup.py build_ext -i
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/AUTHORS new/greenlet-0.4.14/AUTHORS
--- old/greenlet-0.4.13/AUTHORS 2018-01-29 07:12:52.000000000 +0100
+++ new/greenlet-0.4.14/AUTHORS 2018-07-04 20:40:38.000000000 +0200
@@ -29,6 +29,8 @@
 * Jared Kuolt
 * Jason Madden
 * Kyle Ambroff
+* Laszlo Boszormenyi
+* Mao Han
 * Marc Abramowitz
 * Marc Schlaich
 * Marcin Bachry
@@ -42,4 +44,6 @@
 * Tony Bowles
 * Tony Breeds
 * Trevor Bowen
+* Tulio Magno Quites Machado Filho
 * Ulrich Weigand
+* Victor Stinner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/MANIFEST.in 
new/greenlet-0.4.14/MANIFEST.in
--- old/greenlet-0.4.13/MANIFEST.in     2018-01-31 22:14:35.000000000 +0100
+++ new/greenlet-0.4.14/MANIFEST.in     2018-07-17 20:34:31.000000000 +0200
@@ -25,6 +25,7 @@
 include platform/switch_amd64_unix.h
 include platform/switch_arm32_gcc.h
 include platform/switch_arm32_ios.h
+include platform/switch_csky_gcc.h
 include platform/switch_m68k_gcc.h
 include platform/switch_mips_unix.h
 include platform/switch_ppc64_linux.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/NEWS new/greenlet-0.4.14/NEWS
--- old/greenlet-0.4.13/NEWS    2018-01-31 22:12:21.000000000 +0100
+++ new/greenlet-0.4.14/NEWS    2018-07-17 20:48:49.000000000 +0200
@@ -1,3 +1,9 @@
+0.4.14
+======
+- Support for C-SKY architecture
+- Fixed support for ppc64 ABI
+- Fixed support for Python 3.7
+
 0.4.13
 ======
 - Support for Python 3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/PKG-INFO new/greenlet-0.4.14/PKG-INFO
--- old/greenlet-0.4.13/PKG-INFO        2018-01-31 22:24:03.000000000 +0100
+++ new/greenlet-0.4.14/PKG-INFO        2018-07-17 20:51:27.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: greenlet
-Version: 0.4.13
+Version: 0.4.14
 Summary: Lightweight in-process concurrent programming
 Home-page: https://github.com/python-greenlet/greenlet
 Author: Alexey Borzenkov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/appveyor.yml 
new/greenlet-0.4.14/appveyor.yml
--- old/greenlet-0.4.13/appveyor.yml    2018-01-29 07:14:13.000000000 +0100
+++ new/greenlet-0.4.14/appveyor.yml    2018-07-17 20:48:49.000000000 +0200
@@ -1,4 +1,4 @@
-version: 0.4.12.{build}
+version: 0.4.14.{build}
 environment:
   global:
     # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
@@ -48,13 +48,21 @@
       PYTHON_ARCH: "64"
       PYTHON_VERSION: "3.6.x"
 
+    - PYTHON_ROOT: "C:\\Python37"
+      PYTHON_ARCH: "32"
+      PYTHON_VERSION: "3.7.x"
+
+    - PYTHON_ROOT: "C:\\Python37-x64"
+      PYTHON_ARCH: "64"
+      PYTHON_VERSION: "3.7.x"
+
 install:
   - "SET PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\\Scripts;%PATH%"
   - "python --version"
   - "python -c \"import struct; print(struct.calcsize('P') * 8)\""
 
   # Upgrade pip to the latest version
-  - "python appveyor\\run_pip.py install --disable-pip-version-check --upgrade 
pip"
+  #- "python appveyor\\run_pip.py install --disable-pip-version-check 
--upgrade pip"
 
   # Install requirements for running tests and building artifacts
   - "%CMD_IN_ENV% pip install --upgrade -r dev-requirements.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/greenlet.c 
new/greenlet-0.4.14/greenlet.c
--- old/greenlet-0.4.13/greenlet.c      2017-12-06 19:25:34.000000000 +0100
+++ new/greenlet-0.4.14/greenlet.c      2018-07-04 20:40:29.000000000 +0200
@@ -153,6 +153,21 @@
 #define GREENLET_tp_is_gc 0
 #endif /* !GREENLET_USE_GC */
 
+static void green_clear_exc(PyGreenlet* g)
+{
+#ifdef GREENLET_USE_EXC_INFO
+       g->exc_info = NULL;
+       g->exc_state.exc_type = NULL;
+       g->exc_state.exc_value = NULL;
+       g->exc_state.exc_traceback = NULL;
+       g->exc_state.previous_item = NULL;
+#else
+       g->exc_type = NULL;
+       g->exc_value = NULL;
+       g->exc_traceback = NULL;
+#endif
+}
+
 static PyGreenlet* green_create_main(void)
 {
        PyGreenlet* gmain;
@@ -460,10 +475,9 @@
                PyThreadState* tstate = PyThreadState_GET();
                current->recursion_depth = tstate->recursion_depth;
                current->top_frame = tstate->frame;
-#if PY_VERSION_HEX >= 0x030700A3
-               current->exc_type = tstate->exc_state.exc_type;
-               current->exc_value = tstate->exc_state.exc_value;
-               current->exc_traceback = tstate->exc_state.exc_traceback;
+#ifdef GREENLET_USE_EXC_INFO
+               current->exc_info = tstate->exc_info;
+               current->exc_state = tstate->exc_state;
 #else
                current->exc_type = tstate->exc_type;
                current->exc_value = tstate->exc_value;
@@ -474,9 +488,13 @@
        if (err < 0) {   /* error */
                PyGreenlet* current = ts_current;
                current->top_frame = NULL;
+#ifdef GREENLET_USE_EXC_INFO
+               green_clear_exc(current);
+#else
                current->exc_type = NULL;
                current->exc_value = NULL;
                current->exc_traceback = NULL;
+#endif
 
                assert(ts_origin == NULL);
                ts_target = NULL;
@@ -488,18 +506,15 @@
                tstate->recursion_depth = target->recursion_depth;
                tstate->frame = target->top_frame;
                target->top_frame = NULL;
-#if PY_VERSION_HEX >= 0x030700A3
-               tstate->exc_state.exc_type = target->exc_type;
-               tstate->exc_state.exc_value = target->exc_value;
-               tstate->exc_state.exc_traceback = target->exc_traceback;
+#ifdef GREENLET_USE_EXC_INFO
+               tstate->exc_state = target->exc_state;
+               tstate->exc_info = target->exc_info ? target->exc_info : 
&tstate->exc_state;
 #else
                tstate->exc_type = target->exc_type;
                tstate->exc_value = target->exc_value;
                tstate->exc_traceback = target->exc_traceback;
 #endif
-               target->exc_type = NULL;
-               target->exc_value = NULL;
-               target->exc_traceback = NULL;
+               green_clear_exc(target);
 
                assert(ts_origin == NULL);
                Py_INCREF(target);
@@ -752,9 +767,7 @@
                self->stack_prev = ts_current;
        }
        self->top_frame = NULL;
-       self->exc_type = NULL;
-       self->exc_value = NULL;
-       self->exc_traceback = NULL;
+       green_clear_exc(self);
        self->recursion_depth = PyThreadState_GET()->recursion_depth;
 
        /* restore arguments in case they are clobbered */
@@ -935,9 +948,15 @@
           - frames are not visited: alive greenlets are not garbage collected 
anyway */
        Py_VISIT((PyObject*)self->parent);
        Py_VISIT(self->run_info);
+#ifdef GREENLET_USE_EXC_INFO
+       Py_VISIT(self->exc_state.exc_type);
+       Py_VISIT(self->exc_state.exc_value);
+       Py_VISIT(self->exc_state.exc_traceback);
+#else
        Py_VISIT(self->exc_type);
        Py_VISIT(self->exc_value);
        Py_VISIT(self->exc_traceback);
+#endif
        Py_VISIT(self->dict);
        return 0;
 }
@@ -961,9 +980,15 @@
           so even if it switches we are relatively safe. */
        Py_CLEAR(self->parent);
        Py_CLEAR(self->run_info);
+#ifdef GREENLET_USE_EXC_INFO
+       Py_CLEAR(self->exc_state.exc_type);
+       Py_CLEAR(self->exc_state.exc_value);
+       Py_CLEAR(self->exc_state.exc_traceback);
+#else
        Py_CLEAR(self->exc_type);
        Py_CLEAR(self->exc_value);
        Py_CLEAR(self->exc_traceback);
+#endif
        Py_CLEAR(self->dict);
        return 0;
 }
@@ -1030,9 +1055,15 @@
                PyObject_ClearWeakRefs((PyObject *) self);
        Py_CLEAR(self->parent);
        Py_CLEAR(self->run_info);
+#ifdef GREENLET_USE_EXC_INFO
+       Py_CLEAR(self->exc_state.exc_type);
+       Py_CLEAR(self->exc_state.exc_value);
+       Py_CLEAR(self->exc_state.exc_traceback);
+#else
        Py_CLEAR(self->exc_type);
        Py_CLEAR(self->exc_value);
        Py_CLEAR(self->exc_traceback);
+#endif
        Py_CLEAR(self->dict);
        Py_TYPE(self)->tp_free((PyObject*) self);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/greenlet.h 
new/greenlet-0.4.14/greenlet.h
--- old/greenlet-0.4.13/greenlet.h      2018-01-31 22:13:50.000000000 +0100
+++ new/greenlet-0.4.14/greenlet.h      2018-07-17 20:48:49.000000000 +0200
@@ -11,7 +11,11 @@
 extern "C" {
 #endif
 
-#define GREENLET_VERSION "0.4.13"
+#define GREENLET_VERSION "0.4.14"
+
+#if PY_VERSION_HEX >= 0x030700A3
+#  define GREENLET_USE_EXC_INFO
+#endif
 
 typedef struct _greenlet {
        PyObject_HEAD
@@ -25,9 +29,14 @@
        struct _frame* top_frame;
        int recursion_depth;
        PyObject* weakreflist;
+#ifdef GREENLET_USE_EXC_INFO
+       _PyErr_StackItem* exc_info;
+       _PyErr_StackItem exc_state;
+#else
        PyObject* exc_type;
        PyObject* exc_value;
        PyObject* exc_traceback;
+#endif
        PyObject* dict;
 } PyGreenlet;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/platform/switch_csky_gcc.h 
new/greenlet-0.4.14/platform/switch_csky_gcc.h
--- old/greenlet-0.4.13/platform/switch_csky_gcc.h      1970-01-01 
01:00:00.000000000 +0100
+++ new/greenlet-0.4.14/platform/switch_csky_gcc.h      2018-06-28 
21:43:26.000000000 +0200
@@ -0,0 +1,48 @@
+#ifdef SLP_EVAL
+#define STACK_MAGIC 0
+#define REG_FP "r8"
+#ifdef __CSKYABIV2__
+#define REGS_TO_SAVE_GENERAL "r4", "r5", "r6", "r7", "r9", "r10", "r11", 
"r15",\
+                             "r16", "r17", "r18", "r19", "r20", "r21", "r22",\
+                             "r23", "r24", "r25"
+
+#if defined (__CSKY_HARD_FLOAT__) || (__CSKY_VDSP__)
+#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL, "vr8", "vr9", "vr10", "vr11", 
"vr12",\
+                                           "vr13", "vr14", "vr15"
+#else
+#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL
+#endif
+#else
+#define REGS_TO_SAVE "r9", "r10", "r11", "r12", "r13", "r15"
+#endif
+
+
+static int
+#ifdef __GNUC__
+__attribute__((optimize("no-omit-frame-pointer")))
+#endif
+slp_switch(void)
+{
+        register int *stackref, stsizediff;
+        int result;
+
+        __asm__ volatile ("" : : : REGS_TO_SAVE);
+        __asm__ ("mov %0, sp" : "=r" (stackref));
+        {
+                SLP_SAVE_STATE(stackref, stsizediff);
+                __asm__ volatile (
+                    "addu sp,%0\n"
+                    "addu "REG_FP",%0\n"
+                    :
+                    : "r" (stsizediff)
+                    );
+               
+                SLP_RESTORE_STATE();
+        }
+        __asm__ volatile ("movi %0, 0" : "=r" (result));
+        __asm__ volatile ("" : : : REGS_TO_SAVE);
+
+        return result;
+}
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/platform/switch_ppc64_linux.h 
new/greenlet-0.4.14/platform/switch_ppc64_linux.h
--- old/greenlet-0.4.13/platform/switch_ppc64_linux.h   2016-12-11 
00:52:06.000000000 +0100
+++ new/greenlet-0.4.14/platform/switch_ppc64_linux.h   2018-06-28 
21:43:26.000000000 +0200
@@ -2,6 +2,12 @@
  * this is the internal transfer function.
  *
  * HISTORY
+ * 21-Mar-18  Tulio Magno Quites Machado Filho  <tul...@linux.vnet.ibm.com>
+ *      Added r30 to the list of saved registers in order to fully comply with
+ *      both ppc64 ELFv1 ABI and the ppc64le ELFv2 ABI, that classify this
+ *      register as a nonvolatile register used for local variables.
+ * 21-Mar-18  Laszlo Boszormenyi  <g...@debian.org>
+ *      Save r2 (TOC pointer) manually.
  * 10-Dec-13  Ulrich Weigand  <uweig...@de.ibm.com>
  *     Support ELFv2 ABI.  Save float/vector registers.
  * 09-Mar-12 Michael Ellerman <mich...@ellerman.id.au>
@@ -56,8 +62,9 @@
 #define ALTIVEC_REGS
 #endif
 
-#define REGS_TO_SAVE "r2", "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
-       "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r31", \
+#define REGS_TO_SAVE "r14", "r15", "r16", "r17", "r18", "r19", "r20",  \
+       "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29",  \
+       "r30","r31",                                                    \
        "fr14", "fr15", "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", \
        "fr22", "fr23", "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", \
        "fr30", "fr31", \
@@ -69,7 +76,9 @@
 {
     register int err;
     register long *stackref, stsizediff;
+    void * toc;
     __asm__ volatile ("" : : : REGS_TO_SAVE);
+    __asm__ volatile ("std 2, %0" : "=m" (toc));
     __asm__ ("mr %0, 1" : "=r" (stackref) : );
     {
         SLP_SAVE_STATE(stackref, stsizediff);
@@ -82,6 +91,7 @@
             );
         SLP_RESTORE_STATE();
     }
+    __asm__ volatile ("ld 2, %0" : : "m" (toc));
     __asm__ volatile ("" : : : REGS_TO_SAVE);
     __asm__ volatile ("li %0, 0" : "=r" (err));
     return err;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/setup.py new/greenlet-0.4.14/setup.py
--- old/greenlet-0.4.13/setup.py        2018-01-31 22:13:38.000000000 +0100
+++ new/greenlet-0.4.14/setup.py        2018-07-17 20:48:49.000000000 +0200
@@ -70,7 +70,7 @@
 
 setup(
     name="greenlet",
-    version='0.4.13',
+    version='0.4.14',
     description='Lightweight in-process concurrent programming',
     long_description=readfile("README.rst"),
     maintainer="Alexey Borzenkov",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/greenlet-0.4.13/slp_platformselect.h 
new/greenlet-0.4.14/slp_platformselect.h
--- old/greenlet-0.4.13/slp_platformselect.h    2018-01-29 07:12:31.000000000 
+0100
+++ new/greenlet-0.4.14/slp_platformselect.h    2018-06-28 21:43:26.000000000 
+0200
@@ -47,4 +47,6 @@
 #include "platform/switch_aarch64_gcc.h" /* Aarch64 ABI */
 #elif defined(__GNUC__) && defined(__mc68000__)
 #include "platform/switch_m68k_gcc.h" /* gcc on m68k */
+#elif defined(__GNUC__) && defined(__csky__)
+#include "platform/switch_csky_gcc.h" /* gcc on csky */
 #endif


Reply via email to