Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-Cython for openSUSE:Factory checked in at 2022-02-03 23:16:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Cython (Old) and /work/SRC/openSUSE:Factory/.python-Cython.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Cython" Thu Feb 3 23:16:15 2022 rev:63 rq:950793 version:0.29.27 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Cython/python-Cython.changes 2022-01-07 12:45:00.323788134 +0100 +++ /work/SRC/openSUSE:Factory/.python-Cython.new.1898/python-Cython.changes 2022-02-03 23:16:48.344482012 +0100 @@ -1,0 +2,23 @@ +Wed Feb 2 17:54:50 UTC 2022 - Matej Cepl <mc...@suse.com> + +- Make the running the test suite conditional (default + off). Seven hours of running it is just too much. + +------------------------------------------------------------------- +Mon Jan 31 20:31:01 UTC 2022 - Matej Cepl <mc...@suse.com> + +- Enable running of the test suite. + +------------------------------------------------------------------- +Mon Jan 31 13:46:21 UTC 2022 - Paolo Stivanin <i...@paolostivanin.com> + +- 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. + +------------------------------------------------------------------- Old: ---- Cython-0.29.26.tar.gz New: ---- Cython-0.29.27.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Cython.spec ++++++ --- /var/tmp/diff_new_pack.5vTuQQ/_old 2022-02-03 23:16:48.792478954 +0100 +++ /var/tmp/diff_new_pack.5vTuQQ/_new 2022-02-03 23:16:48.796478927 +0100 @@ -18,8 +18,9 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define oldpython python +%bcond_with test Name: python-Cython -Version: 0.29.26 +Version: 0.29.27 Release: 0 Summary: The Cython compiler for writing C extensions for the Python language License: Apache-2.0 @@ -79,6 +80,13 @@ %fdupes %{buildroot}%{$python_sitearch} } +%check +%if %{with test} +%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch} PYTHONDONTWRITEBYTECODE=1 +$python runtests.py -v +} +%endif + %post %python_install_alternative cython cythonize cygdb ++++++ Cython-0.29.26.tar.gz -> Cython-0.29.27.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/.gitrev new/Cython-0.29.27/.gitrev --- old/Cython-0.29.26/.gitrev 2021-12-16 10:21:21.237250800 +0100 +++ new/Cython-0.29.27/.gitrev 2022-01-28 18:21:41.152819600 +0100 @@ -1 +1 @@ -3028e8c7ac296bc848d996e397c3354b3dbbd431 +229a4531780863c8a5c311d6b3c70a545988f85f diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/CHANGES.rst new/Cython-0.29.27/CHANGES.rst --- old/Cython-0.29.26/CHANGES.rst 2021-12-16 10:21:18.501220200 +0100 +++ new/Cython-0.29.27/CHANGES.rst 2022-01-28 18:21:38.020794200 +0100 @@ -2,6 +2,32 @@ Cython Changelog ================ +0.29.27 (2022-01-28) +==================== + +Features added +-------------- + +* 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. + Patch by Evgeni Burovski. (Github issue #1214) + +Bugs fixed +---------- + +* Compilation failures on PyPy were resolved. + Patches by Matti Picus. (Github issues #4509, #4517) + +* Calls to ``range()`` with more than three arguments did not fail. + Original patch by Max Bachmann. (Github issue #4550) + +* 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. + + 0.29.26 (2021-12-16) ==================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Build/Cythonize.py new/Cython-0.29.27/Cython/Build/Cythonize.py --- old/Cython-0.29.26/Cython/Build/Cythonize.py 2021-12-16 10:21:18.501220200 +0100 +++ new/Cython-0.29.27/Cython/Build/Cythonize.py 2022-01-28 18:21:38.020794200 +0100 @@ -103,6 +103,7 @@ compile_time_env=options.compile_time_env, force=options.force, quiet=options.quiet, + depfile=options.depfile, **options.options) if ext_modules and options.build: @@ -194,6 +195,7 @@ help='increase Python compatibility by ignoring some compile time errors') parser.add_option('-k', '--keep-going', dest='keep_going', action='store_true', help='compile as much as possible, ignore compilation failures') + parser.add_option('-M', '--depfile', action='store_true', help='produce depfiles for the sources') options, args = parser.parse_args(args) if not args: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Build/Dependencies.py new/Cython-0.29.27/Cython/Build/Dependencies.py --- old/Cython-0.29.26/Cython/Build/Dependencies.py 2021-12-16 10:21:18.501220200 +0100 +++ new/Cython-0.29.27/Cython/Build/Dependencies.py 2022-01-28 18:21:38.020794200 +0100 @@ -944,6 +944,8 @@ :param compiler_directives: Allow to set compiler directives in the ``setup.py`` like this: ``compiler_directives={'embedsignature': True}``. See :ref:`compiler-directives`. + + :param depfile: produce depfiles for the sources if True. """ if exclude is None: exclude = [] @@ -952,6 +954,8 @@ if 'common_utility_include_dir' in options: safe_makedirs(options['common_utility_include_dir']) + depfile = options.pop('depfile', None) + if pythran is None: pythran_options = None else: @@ -1023,6 +1027,26 @@ dir = os.path.dirname(c_file) safe_makedirs_once(dir) + # write out the depfile, if requested + if depfile: + dependencies = deps.all_dependencies(source) + src_base_dir, _ = os.path.split(source) + if not src_base_dir.endswith(os.sep): + src_base_dir += os.sep + # paths below the base_dir are relative, otherwise absolute + paths = [] + for fname in dependencies: + if (fname.startswith(src_base_dir) or + fname.startswith('.' + os.path.sep)): + paths.append(os.path.relpath(fname, src_base_dir)) + else: + paths.append(os.path.abspath(fname)) + + depline = os.path.split(c_file)[1] + ": \\\n " + depline += " \\\n ".join(paths) + "\n" + with open(c_file+'.dep', 'w') as outfile: + outfile.write(depline) + if os.path.exists(c_file): c_timestamp = os.path.getmtime(c_file) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Compiler/Code.py new/Cython-0.29.27/Cython/Compiler/Code.py --- old/Cython-0.29.26/Cython/Compiler/Code.py 2021-12-16 10:21:18.505220200 +0100 +++ new/Cython-0.29.27/Cython/Compiler/Code.py 2022-01-28 18:21:38.024794000 +0100 @@ -501,9 +501,11 @@ def specialize(self, pyrex_type=None, **data): # Dicts aren't hashable... + name = self.name if pyrex_type is not None: data['type'] = pyrex_type.empty_declaration_code() data['type_name'] = pyrex_type.specialization_name() + name = "%s[%s]" % (name, data['type_name']) key = tuple(sorted(data.items())) try: return self._cache[key] @@ -519,7 +521,9 @@ self.none_or_sub(self.init, data), self.none_or_sub(self.cleanup, data), requires, - self.proto_block) + self.proto_block, + name, + ) self.specialize_list.append(s) return s diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Compiler/Nodes.py new/Cython-0.29.27/Cython/Compiler/Nodes.py --- old/Cython-0.29.26/Cython/Compiler/Nodes.py 2021-12-16 10:21:18.509220100 +0100 +++ new/Cython-0.29.27/Cython/Compiler/Nodes.py 2022-01-28 18:21:38.028794000 +0100 @@ -8989,10 +8989,6 @@ self.index_type = PyrexTypes.c_py_ssize_t_type else: self.index_type = self.target.type - if not self.index_type.signed: - warning(self.target.pos, - "Unsigned index type not allowed before OpenMP 3.0", - level=2) # Setup start, stop and step, allocating temps if needed self.names = 'start', 'stop', 'step' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Compiler/Optimize.py new/Cython-0.29.27/Cython/Compiler/Optimize.py --- old/Cython-0.29.26/Cython/Compiler/Optimize.py 2021-12-16 10:21:18.509220100 +0100 +++ new/Cython-0.29.27/Cython/Compiler/Optimize.py 2022-01-28 18:21:38.028794000 +0100 @@ -285,7 +285,7 @@ return self._transform_reversed_iteration(node, iterable) # range() iteration? - if Options.convert_range and arg_count >= 1 and ( + if Options.convert_range and 1 <= arg_count <= 3 and ( iterable.self is None and function.is_name and function.name in ('range', 'xrange') and function.entry and function.entry.is_builtin): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Compiler/TypeSlots.py new/Cython-0.29.27/Cython/Compiler/TypeSlots.py --- old/Cython-0.29.26/Cython/Compiler/TypeSlots.py 2021-12-16 10:21:18.513220300 +0100 +++ new/Cython-0.29.27/Cython/Compiler/TypeSlots.py 2022-01-28 18:21:38.032794200 +0100 @@ -813,6 +813,7 @@ MethodSlot(unaryfunc, "am_await", "__await__"), MethodSlot(unaryfunc, "am_aiter", "__aiter__"), MethodSlot(unaryfunc, "am_anext", "__anext__"), + EmptySlot("am_send", ifdef="PY_VERSION_HEX >= 0x030A00A3"), ) #------------------------------------------------------------------------------------------ @@ -888,10 +889,10 @@ EmptySlot("tp_del"), EmptySlot("tp_version_tag"), EmptySlot("tp_finalize", ifdef="PY_VERSION_HEX >= 0x030400a1"), - EmptySlot("tp_vectorcall", ifdef="PY_VERSION_HEX >= 0x030800b1"), + EmptySlot("tp_vectorcall", ifdef="PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)"), EmptySlot("tp_print", ifdef="PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000"), # PyPy specific extension - only here to avoid C compiler warnings. - EmptySlot("tp_pypy_flags", ifdef="CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000"), + EmptySlot("tp_pypy_flags", ifdef="CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000"), ) #------------------------------------------------------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Compiler/Visitor.py new/Cython-0.29.27/Cython/Compiler/Visitor.py --- old/Cython-0.29.26/Cython/Compiler/Visitor.py 2021-12-16 10:21:18.513220300 +0100 +++ new/Cython-0.29.27/Cython/Compiler/Visitor.py 2022-01-28 18:21:38.032794200 +0100 @@ -198,7 +198,7 @@ return self._visitchildren(parent, attrs) @cython.final - @cython.locals(idx=int) + @cython.locals(idx=cython.Py_ssize_t) def _visitchildren(self, parent, attrs): """ Visits the children of the given parent. If parent is None, returns diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Shadow.py new/Cython-0.29.27/Cython/Shadow.py --- old/Cython-0.29.26/Cython/Shadow.py 2021-12-16 10:21:18.521220400 +0100 +++ new/Cython-0.29.27/Cython/Shadow.py 2022-01-28 18:21:38.040794400 +0100 @@ -1,7 +1,7 @@ # cython.* namespace for pure mode. from __future__ import absolute_import -__version__ = "0.29.26" +__version__ = "0.29.27" try: from __builtin__ import basestring diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Utility/AsyncGen.c new/Cython-0.29.27/Cython/Utility/AsyncGen.c --- old/Cython-0.29.26/Cython/Utility/AsyncGen.c 2021-12-16 10:21:18.525220400 +0100 +++ new/Cython-0.29.27/Cython/Utility/AsyncGen.c 2022-01-28 18:21:38.044794300 +0100 @@ -350,7 +350,10 @@ static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_as_async = { 0, /* am_await */ PyObject_SelfIter, /* am_aiter */ - (unaryfunc)__Pyx_async_gen_anext /* am_anext */ + (unaryfunc)__Pyx_async_gen_anext, /* am_anext */ +#if PY_VERSION_HEX >= 0x030A00A3 + 0, /*am_send*/ +#endif }; #endif @@ -421,13 +424,13 @@ #elif PY_VERSION_HEX >= 0x030400a1 0, /* tp_finalize */ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -593,7 +596,10 @@ static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_asend_as_async = { PyObject_SelfIter, /* am_await */ 0, /* am_aiter */ - 0 /* am_anext */ + 0, /* am_anext */ +#if PY_VERSION_HEX >= 0x030A00A3 + 0, /*am_send*/ +#endif }; #endif @@ -659,13 +665,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /* tp_finalize */ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -777,13 +783,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /* tp_finalize */ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -1000,7 +1006,10 @@ static __Pyx_PyAsyncMethodsStruct __Pyx_async_gen_athrow_as_async = { PyObject_SelfIter, /* am_await */ 0, /* am_aiter */ - 0 /* am_anext */ + 0, /* am_anext */ +#if PY_VERSION_HEX >= 0x030A00A3 + 0, /*am_send*/ +#endif }; #endif @@ -1065,13 +1074,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /* tp_finalize */ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Utility/Coroutine.c new/Cython-0.29.27/Cython/Utility/Coroutine.c --- old/Cython-0.29.26/Cython/Utility/Coroutine.c 2021-12-16 10:21:18.525220400 +0100 +++ new/Cython-0.29.27/Cython/Utility/Coroutine.c 2022-01-28 18:21:38.044794300 +0100 @@ -1557,13 +1557,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -1647,6 +1647,9 @@ __Pyx_Coroutine_await, /*am_await*/ 0, /*am_aiter*/ 0, /*am_anext*/ +#if PY_VERSION_HEX >= 0x030A00A3 + 0, /*am_send*/ +#endif }; #endif @@ -1717,13 +1720,13 @@ #elif PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -1831,13 +1834,13 @@ #if PY_VERSION_HEX >= 0x030400a1 __Pyx_Coroutine_del, /*tp_finalize*/ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -1942,13 +1945,13 @@ #elif PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Cython/Utility/CythonFunction.c new/Cython-0.29.27/Cython/Utility/CythonFunction.c --- old/Cython-0.29.26/Cython/Utility/CythonFunction.c 2021-12-16 10:21:18.525220400 +0100 +++ new/Cython-0.29.27/Cython/Utility/CythonFunction.c 2022-01-28 18:21:38.044794300 +0100 @@ -730,13 +730,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; @@ -1262,13 +1262,13 @@ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif -#if PY_VERSION_HEX >= 0x030800b1 +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif -#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000 +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/PKG-INFO new/Cython-0.29.27/PKG-INFO --- old/Cython-0.29.26/PKG-INFO 2021-12-16 10:21:26.557086700 +0100 +++ new/Cython-0.29.27/PKG-INFO 2022-01-28 18:21:46.624873600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: Cython -Version: 0.29.26 +Version: 0.29.27 Summary: The Cython compiler for writing C extensions for the Python language. Home-page: http://cython.org/ Author: Robert Bradshaw, Stefan Behnel, Dag Seljebotn, Greg Ewing, et al. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/Tools/ci-run.sh new/Cython-0.29.27/Tools/ci-run.sh --- old/Cython-0.29.26/Tools/ci-run.sh 2021-12-16 10:21:18.529220300 +0100 +++ new/Cython-0.29.27/Tools/ci-run.sh 2022-01-28 18:21:38.048794500 +0100 @@ -124,8 +124,8 @@ if [[ $CYTHON_COMPILE_ALL == "1" ]]; then SETUP_ARGS="$SETUP_ARGS --cython-compile-all" fi - SETUP_ARGS="$SETUP_ARGS - $(python -c 'import sys; print("-j5" if sys.version_info >= (3,5) else "")')" + #SETUP_ARGS="$SETUP_ARGS + # $(python -c 'import sys; print("-j5" if sys.version_info >= (3,5) else "")')" CFLAGS=$BUILD_CFLAGS \ python setup.py build_ext -i $SETUP_ARGS || exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/build/depfile.srctree new/Cython-0.29.27/tests/build/depfile.srctree --- old/Cython-0.29.26/tests/build/depfile.srctree 1970-01-01 01:00:00.000000000 +0100 +++ new/Cython-0.29.27/tests/build/depfile.srctree 2022-01-28 18:21:38.064794500 +0100 @@ -0,0 +1,33 @@ +PYTHON -m Cython.Build.Cythonize -M foo.pyx +PYTHON check.py + +######## foo.pyx ######## + +from bar cimport empty + +include "baz.pxi" + +empty() +print(foo()) + + +######## baz.pxi ######## + +def foo(): + return "foo" + + +######## bar.pxd ######## + +cdef inline void empty(): + print("empty") + + +######## check.py ######## + +import os + +with open("foo.c.dep", "r") as f: + contents = f.read().replace("\n", " ").replace("\\", "") + +assert sorted(contents.split()) == ['bar.pxd', 'baz.pxi', 'foo.c:', 'foo.pyx'], contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/build/depfile_numpy.srctree new/Cython-0.29.27/tests/build/depfile_numpy.srctree --- old/Cython-0.29.26/tests/build/depfile_numpy.srctree 1970-01-01 01:00:00.000000000 +0100 +++ new/Cython-0.29.27/tests/build/depfile_numpy.srctree 2022-01-28 18:21:38.064794500 +0100 @@ -0,0 +1,49 @@ +# tag: numpy + +PYTHON -m Cython.Build.Cythonize -M dep_np.pyx +PYTHON check_np.py + +######## dep_np.pyx ######## + +cimport numpy as np +np.import_array() + + + +######## check_np.py ######## + +import os +import re + +import numpy as np +import Cython + +with open("dep_np.c.dep", "r") as f: + contents = f.read().replace("\n", " ").replace("\\", "") + +contents = contents.split() + +cy_prefix, _ = os.path.split(Cython.__file__) +contents = [fname.replace(cy_prefix, "cy_prefix") for fname in contents] + +np_prefix, _ = os.path.split(np.__file__) +contents = [fname.replace(np_prefix, "np_prefix") for fname in contents] + +expected = ['cy_prefix/Includes/cpython/buffer.pxd', + 'cy_prefix/Includes/cpython/mem.pxd', + 'cy_prefix/Includes/cpython/object.pxd', + 'cy_prefix/Includes/cpython/ref.pxd', + 'cy_prefix/Includes/cpython/type.pxd', + 'cy_prefix/Includes/libc/stdio.pxd', + 'cy_prefix/Includes/libc/string.pxd', + 'dep_np.c:', + 'dep_np.pyx',] + +# Also account for legacy numpy versions, which do not ship +# `__init__.pxd` hence the fallback is used: +if 'cy_prefix/Includes/numpy/__init__.pxd' in contents: + expected.append('cy_prefix/Includes/numpy/__init__.pxd') +else: + expected.append('np_prefix/__init__.pxd') + +assert sorted(contents) == sorted(expected), sorted(contents) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/build/depfile_package.srctree new/Cython-0.29.27/tests/build/depfile_package.srctree --- old/Cython-0.29.26/tests/build/depfile_package.srctree 1970-01-01 01:00:00.000000000 +0100 +++ new/Cython-0.29.27/tests/build/depfile_package.srctree 2022-01-28 18:21:38.064794500 +0100 @@ -0,0 +1,58 @@ +''' +PYTHON -m Cython.Build.Cythonize -i pkg --depfile +PYTHON package_test.py +''' + +######## package_test.py ######## + +import os + +with open("pkg/test.c.dep", "r") as f: + contents = f.read().replace("\n", " ").replace("\\", "") + +assert sorted(contents.split()) == sorted(['test.c:', 'sub/incl.pxi', 'test.pxd', 'test.pyx']), contents + + +with open("pkg/sub/test.c.dep", "r") as f: + contents = f.read().replace("\n", " ").replace("\\", "") + +contents = [os.path.relpath(entry, '.') + if os.path.isabs(entry) else entry for entry in contents.split()] +assert sorted(contents) == sorted(['test.c:', 'incl.pxi', 'test.pyx', '../test.pxd']), contents + + +######## pkg/__init__.py ######## + + +######## pkg/test.pyx ######## + +TEST = "pkg.test" + +include "sub/incl.pxi" + +cdef object get_str(): + return TEST + + +######## pkg/test.pxd ######## + +cdef object get_str() + + +######## pkg/sub/__init__.py ######## + + +######## pkg/sub/test.pyx ######## +# cython: language_level=3 + +from ..test cimport get_str + +include 'incl.pxi' + +TEST = 'pkg.sub.test' + + +######## pkg/sub/incl.pxi ######## + +pass + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/build/module_api.srctree new/Cython-0.29.27/tests/build/module_api.srctree --- old/Cython-0.29.26/tests/build/module_api.srctree 2021-12-16 10:21:18.545220600 +0100 +++ new/Cython-0.29.27/tests/build/module_api.srctree 2022-01-28 18:21:38.064794500 +0100 @@ -108,9 +108,10 @@ if (!sys_modules) return; mod = PyInit_a(); if (!mod) return; -#if PY_VERSION_HEX >= 0x03050000 +#if PY_VERSION_HEX >= 0x03050000 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) /* FIXME: this is incomplete and users shouldn't have to do this in the first place... */ if (!PyModule_Check(mod)) { + /* In PEP 489 multi-phase init, PyInit_a returns PyModuleDef */ PyModuleDef *mdef = (PyModuleDef*)mod; PyObject *modname = PyUnicode_FromString("a"); if (!modname) return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/memoryview/cythonarray.pyx new/Cython-0.29.27/tests/memoryview/cythonarray.pyx --- old/Cython-0.29.26/tests/memoryview/cythonarray.pyx 2021-12-16 10:21:18.557220700 +0100 +++ new/Cython-0.29.27/tests/memoryview/cythonarray.pyx 2022-01-28 18:21:38.076794600 +0100 @@ -7,7 +7,7 @@ from cython cimport view as v cimport cython as cy -include "cythonarrayutil.pxi" +include "../testsupport/cythonarrayutil.pxi" def length(shape): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/memoryview/memslice.pyx new/Cython-0.29.27/tests/memoryview/memslice.pyx --- old/Cython-0.29.26/tests/memoryview/memslice.pyx 2021-12-16 10:21:18.557220700 +0100 +++ new/Cython-0.29.27/tests/memoryview/memslice.pyx 2022-01-28 18:21:38.076794600 +0100 @@ -34,7 +34,7 @@ include "../buffers/mockbuffers.pxi" -include "cythonarrayutil.pxi" +include "../testsupport/cythonarrayutil.pxi" def _print_attributes(memview): print "shape: " + " ".join(map(str, memview.shape)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/memoryview/numpy_memoryview.pyx new/Cython-0.29.27/tests/memoryview/numpy_memoryview.pyx --- old/Cython-0.29.26/tests/memoryview/numpy_memoryview.pyx 2021-12-16 10:21:18.557220700 +0100 +++ new/Cython-0.29.27/tests/memoryview/numpy_memoryview.pyx 2022-01-28 18:21:38.076794600 +0100 @@ -12,7 +12,7 @@ cimport cython from cython cimport view -include "cythonarrayutil.pxi" +include "../testsupport/cythonarrayutil.pxi" include "../buffers/mockbuffers.pxi" ctypedef np.int32_t dtype_t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/run/asyncio_generators.srctree new/Cython-0.29.27/tests/run/asyncio_generators.srctree --- old/Cython-0.29.26/tests/run/asyncio_generators.srctree 2021-12-16 10:21:18.557220700 +0100 +++ new/Cython-0.29.27/tests/run/asyncio_generators.srctree 2022-01-28 18:21:38.076794600 +0100 @@ -170,7 +170,6 @@ import asyncio -@asyncio.coroutine @types_coroutine def wait3(): counter = 0 @@ -189,9 +188,8 @@ except ImportError: types_coroutine = lambda f:f -from asyncio import coroutine, sleep +from asyncio import sleep -@coroutine @types_coroutine def wait3(): counter = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/run/exceptionrefcount.pyx new/Cython-0.29.27/tests/run/exceptionrefcount.pyx --- old/Cython-0.29.26/tests/run/exceptionrefcount.pyx 2021-12-16 10:21:18.569220800 +0100 +++ new/Cython-0.29.27/tests/run/exceptionrefcount.pyx 2022-01-28 18:21:38.088795000 +0100 @@ -1,4 +1,6 @@ -__doc__ = u""" +# mode: run + +""" >>> class SampleException(Exception): pass >>> def assert_refcount(rc1, rc2, func): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/run/for_in_iter.py new/Cython-0.29.27/tests/run/for_in_iter.py --- old/Cython-0.29.26/tests/run/for_in_iter.py 2021-12-16 10:21:18.569220800 +0100 +++ new/Cython-0.29.27/tests/run/for_in_iter.py 2022-01-28 18:21:38.088795000 +0100 @@ -162,3 +162,12 @@ """ for i in range(N): yield i + +def for_in_range_invalid_arg_count(): + """ + >>> for_in_range_invalid_arg_count() # doctest: +ELLIPSIS + Traceback (most recent call last): + TypeError: ... + """ + for i in range(1, 2, 3, 4): + pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/run/fused_types.pyx new/Cython-0.29.27/tests/run/fused_types.pyx --- old/Cython-0.29.26/tests/run/fused_types.pyx 2021-12-16 10:21:18.569220800 +0100 +++ new/Cython-0.29.27/tests/run/fused_types.pyx 2022-01-28 18:21:38.092795000 +0100 @@ -154,7 +154,7 @@ test_str = cython.declare(string_t, value) print fused_pointer_except_null(&test_str)[0].decode('ascii') -include "cythonarrayutil.pxi" +include "../testsupport/cythonarrayutil.pxi" cpdef cython.integral test_fused_memoryviews(cython.integral[:, ::1] a): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/run/line_profile_test.srctree new/Cython-0.29.27/tests/run/line_profile_test.srctree --- old/Cython-0.29.26/tests/run/line_profile_test.srctree 2021-12-16 10:21:18.573221000 +0100 +++ new/Cython-0.29.27/tests/run/line_profile_test.srctree 2022-01-28 18:21:38.092795000 +0100 @@ -126,6 +126,7 @@ n //= 2 else: n = 3*n+1 + x = <object> n # make sure the computation does not get discarded @cython.binding(True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cython-0.29.26/tests/run/longintrepr.pyx new/Cython-0.29.27/tests/run/longintrepr.pyx --- old/Cython-0.29.26/tests/run/longintrepr.pyx 2021-12-16 10:21:18.573221000 +0100 +++ new/Cython-0.29.27/tests/run/longintrepr.pyx 2022-01-28 18:21:38.096795000 +0100 @@ -5,10 +5,6 @@ from cpython.longintrepr cimport * cimport cython -cdef extern from *: - Py_ssize_t* Py_SIZE_PTR "&Py_SIZE"(object) - - @cython.cdivision(True) def lshift(long a, unsigned long n): """ @@ -16,12 +12,10 @@ >>> print(lshift(3, 1)) 6 - >>> print(lshift(-3, 1)) - -6 >>> print(lshift(1, 30)) 1073741824 >>> print(lshift(-12345, 115)) - -512791237748899576593671817473776680960 + 512791237748899576593671817473776680960 >>> print(-12345 << 115) -512791237748899576593671817473776680960 >>> [i for i in range(100) if (65535 << i) != lshift(65535, i)] @@ -58,7 +52,4 @@ index -= 1 ret.ob_digit[index] = 0 - if a < 0: - Py_SIZE_PTR(ret)[0] *= -1 - return ret