| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
HTML output format that the tests parse.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
See https://github.com/python/cpython/pull/28968/8e5de40f90476249e9a2e5ef135143b5c6a0b512
which is part of implementing
https://bugs.python.org/issue35134
moved the header "longintrepr.h" into a sub-folder.
The notes on this change suggested to include "Python.h" instead.
|
| |
| |
| |
| |
| |
| |
| | |
See https://github.com/python/cpython/pull/28968/8e5de40f90476249e9a2e5ef135143b5c6a0b512
which is part of implementing
https://bugs.python.org/issue35134
moved the header "longintrepr.h" into a sub-folder.
The notes on this change suggested to include "Python.h" instead.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Utils.py: add _find_cache_attributes, clear_method_caches
* TestCythonUtils.py: add tests for Cached Methods
* Utils.py: add constants
* Utils.py: update comment
* TestCythonUtils.py: remove excess blank line
* Change names to `_CACHE_NAME` and `_CACHE_NAME_PATTERN`
* ci.yml: extend timeout to 40 minutes
* _CACHE_NAME -> _build_cache_name
|
| |
| |
| | |
See https://github.com/cython/cython/pull/3782
|
| |
| |
| |
| | |
functions that they test.
|
| | |
|
| |
| |
| |
| | |
projects a bit more time.)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add a basic replacement for PyCode_New().
An optimized versions would be nice, but this is intended to work sufficiently to start testing. Also, CPython 3.11 might actually add a new C-API function to simplify setting the current code position. That might be used instead.
* Disable introspection of frame object with vectorcall
This feature looked to only be used for early Python versions that don't have the full vectorcall protocol (and the contents of the frame object are changed in Python 3.11).
|
| |
| |
| |
| |
| |
| | |
completely excluded via preprocessor guards.
Previously, implementing "__div__" could fail in Py3 (if the code for adapting the Python wrapper was generated) or would at least generate C compiler warnings about unused "__div__" C functions.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Fix insert return types, constness and input iterator templates.
Fix typing in iterators and add constructor to allow explicit conversion from iterator to const_iterator.
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| | |
having to maintain our own ones.
|
| |
| |
| |
| | |
* add swap() to libcpp.string
* add load_factor() to libcpp.unordered_map and libcpp.unordered_set
|
|\ \
| |/ |
|
| | |
|
| | |
|
| |
| |
| | |
PyPy v7.3.6 looks to have added a helpful "did you mean..." to the AttributeError exception. It's currently tripping up these tests.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
Instead of __Pyx_SetTracing(), Profile.c now uses PyThreadState_EnterTracing() and PyThreadState_LeaveTracing(), which were added to Python 3.11.0a2:
https://github.com/python/cpython/pull/28542
When these functions are used, Cython no longer sets directly PyThreadState.cframe.use_tracing.
|
| |
| |
| |
| |
| |
| | |
A couple of things were going wrong:
* they're creating CloneNodes (but not requiring the contents of the clone of the clone node to be temp)
* assignment from a clone node generates cleanup code (which is against the general rules of a clone node), and also loses a reference via giveref
* cpdef functions cause a small memory leak (#4412) by assigning to their constants twice. This is unfortunately difficult to test for. With this patch we no longer leak, but still duplicate a little bit of work.
|
| |
| |
| | |
All the versions we currently test are new enough that the alias is no longer necessary.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Stop using NPY_NDARRAYOBJECT_H since:
a) in principle it's private
b) Numpy has renamed it
and use a public symbol instead.
I think the existing tests are adequate - we just aren't yet testing
against a new enough version of Numpy to have caught it yet.
Closes https://github.com/cython/cython/issues/4396
Closes https://github.com/cython/cython/issues/4394
|
| | |
|
| |
| |
| |
| |
| |
| | |
A few children of function nodes need to be consistently evaluated
outside the function scope. This PR attempts to do so and thus
fixes https://github.com/cython/cython/issues/4367.
|
| |
| |
| |
| | |
The string comparison was reporting '11' < '4' (so OpenMP tests were being skipped on GCC 11)
|
| | |
|
| |
| |
| |
| |
| | |
Attribute names used to be fully qualified like "_cython_3_0_0a9.cython_function_or_method" instead of the plain name.
Closes https://github.com/cython/cython/issues/4373
|
| |
| |
| |
| |
| |
| |
| | |
This can happen (rarely) with exceptions that occur very early in the module init process.
Fixes https://github.com/cython/cython/issues/4377
Uses a fake Numpy module for testing to make a version of "import_array" that always fails.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is explicitly tested for: https://github.com/cython/cython/blob/aea4e6b84b38223c540266f8c57093ee2039f284/tests/run/test_coroutines_pep492.pyx#L2400
It turns out some earlier versions of Python assume that
C-API classes without a dict or slot are pickleable by the class
name. Currently it isn't pickleable because the class name lookup
is failing but this change makes it more robust.
See https://github.com/cython/cython/pull/4376
|
| |
| |
| | |
Among other things this makes it pickleable by ensuring that it's the same object each time.
|
| | |
|
|\ \
| |/ |
|
| | |
|
| |
| |
| | |
"PyUnicode_CompareWithASCIIString()" does not raise exceptions and takes a "const char*" as argument.
|
| |
| |
| |
| | |
This was causing c++ classes in if-statements to crash.
Fixes #4348
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ff16389c0da5acc2be1 introduced convenient functions get_value() and get_value_no_default().
Unfortunately, the variable `value` in these functions was not set before usage with PyContextVar_Get().
This triggered some warnings:
Error compiling Cython file:
------------------------------------------------------------
...
"""Return a new reference to the value of the context variable,
or the default value of the context variable,
or None if no such value or default was found.
"""
cdef PyObject *value
PyContextVar_Get(var, NULL, &value)
^
------------------------------------------------------------
Cython/Includes/cpython/contextvars.pxd:118:33: local variable 'value' might be referenced before assignment
Error compiling Cython file:
------------------------------------------------------------
...
or the provided default value if no such value was found.
Ignores the default value of the context variable, if any.
"""
cdef PyObject *value
PyContextVar_Get(var, <PyObject*>default_value, &value)
^
------------------------------------------------------------
Cython/Includes/cpython/contextvars.pxd:136:53: local variable 'value' might be referenced before assignment
It can be replicated by simply importing `cpython`:
echo "cimport cpython" >/tmp/mod.pyx && ./cython.py -Werror -Wextra /tmp/mod.pyx
The solution is simply to assign NULL to `value` on declaration.
|
| |
| |
| |
| |
| | |
See
https://github.com/cython/cython/pull/4349
https://github.com/cython/cython/commit/0574dbceef7b8ee16a9cc94091c3629dfa23133d#r54025763
|
| |
| |
| |
| | |
This was causing c++ classes in if-statements to crash.
Fixes #4348
|
|\ \
| |/ |
|