summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove legacy imports from IPython integration since the "py3compat" module ↵ipython711Stefan Behnel2020-01-012-20/+22
| | | | changed in IPython 7.11.
* Update changelog.Stefan Behnel2019-12-281-0/+10
|
* Import "Iterable" ABC class from "collections.abc" in Py3 instead of ↵Stefan Behnel2019-12-281-1/+6
| | | | deprecated "collections" package.
* Fix temp variable handling for the super() class cell. (GH-3289)Stefan Behnel2019-12-283-18/+45
| | | Closes GH-3246.
* Fix test.0.29.14Stefan Behnel2019-11-011-10/+2
|
* Modernise and simplify some code in MemoryView.pyx.Stefan Behnel2019-11-011-6/+5
|
* Prepare release of 0.29.14.Stefan Behnel2019-11-011-1/+1
|
* Update changelog.Stefan Behnel2019-11-011-1/+14
|
* Initialize tp_print in Python 3.8 (GH-3201)Orivej Desh2019-11-013-0/+30
| | | This should complete #3171 in silencing -Wmissing-field-initializers.
* Improve error presentation in IPython magic (GH-3196)Matthew Edwards2019-11-011-2/+9
| | | | | * IPython magic: hide internal traceback when compilation fails * IPython magic: hide internal traceback when build fails
* Leverage distutil's build_extensions so that --parallel works on Python 3 ↵Alphadelta142019-11-011-1/+2
| | | | (GH-3187)
* Make sure not to emit duplicate typedefs for fused nodes (GH-3112)alex-xnor2019-10-162-6/+47
|
* FIX: do not include tp_print for py39 (GH-3186)Thomas A Caswell2019-10-141-1/+1
| | | | | | | | | | | | | | | | | This is more follow up to https://bugs.python.org/issue37250 The action taken is: - restore tp_print to not break all of the sdists on pypi for py38 - remove tp_print for real in py39 In https://github.com/cython/cython/pull/3171 tp_print was initialized for PY_VERSION_HEX >= 0x030800b4 however, when trying to use cython with cpython master (aka py39) there are compile time exceptions due to too many initializers: error: too many initializers for ‘PyTypeObject’ {aka ‘_typeobject’} This fixes that by putting an upper bound on the ifdef of including pt_print at the end of the object.
* Remove duplicated line from __Pyx_c_powAlex Henrie2019-10-081-1/+0
|
* Make sure to include "Python.h" also from the "public" header file, which ↵Stefan Behnel2019-10-081-0/+1
| | | | | | depends on its declarations. Closes #3133.
* Fix MemoryView.get_slice_from_memview() to propagate exceptions.Stefan Behnel2019-10-081-1/+1
|
* Explicitly initialize tp_print in Python 3.8 (GH-3171)Pablo Galindo2019-10-081-1/+3
| | | | | | | | | | | | | Explicitly initialize tp_print in Python 3.8 When compiling cython-generated extension modules in Python3.8rc1 this error is emitted by the compiler: _ext.cpp:8104:1: error: missing initializer for member ‘_typeobject::tp_print’ [-Werror=missing-field-initializers] The reason is that Python3.8 moved the tp_print slot (d917cfe4051) to the end of the _typeobject struct and reused the original position for tp_vectorcall_offset. The current generated code does not initialize the deprecated tp_print slot that was moved to the end of the struct.
* Update changelog.Stefan Behnel2019-09-101-7/+4
|
* Update changelog.Stefan Behnel2019-09-101-0/+3
|
* Utility/CppConvert: fix Cython warning (GH-3108)Gerion Entrup2019-09-101-1/+1
| | | | | When compiling to C++ code and using automatic conversion from Python str to C++ string, Cython inserts this function template but generates the warning: warning: string.from_py:15:63: local variable 'length' might be referenced before assignment
* Update changelog.Stefan Behnel2019-09-101-0/+6
|
* added unit test for bool dtypetelamonian2019-09-102-0/+14
|
* fixes #2675telamonian2019-09-101-3/+4
|
* Update changelog.Stefan Behnel2019-08-231-0/+4
|
* Fix coverage analysis for code in separate source directory (see GH-1985) ↵Antonio Valentino2019-08-232-7/+171
| | | | | | (GH-3088) * Fix coverage path search * Add testcase
* Update changelog.Stefan Behnel2019-08-211-0/+16
|
* Allow await inside of f-strings (GH-3070)demiurg3372019-08-213-8/+33
|
* Include memoryview C-API (GH-3082)Nathan Manville2019-08-212-0/+51
| | | Issue: #2541
* Fix PY_HEX_VERSION -> PY_VERSION_HEX (GH-3071)Jeroen Demeyer2019-08-212-2/+2
|
* Prepare release of 0.29.13.0.29.13Stefan Behnel2019-07-262-2/+2
|
* Update changelog.Stefan Behnel2019-07-191-0/+20
|
* include: posix.mman += MADV_* (MADV_NORMAL, MADV_DONTNEED, etc ...) (GH-3012)Kirill Smelkov2019-07-191-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | I was going to use posix_madvise(POSIX_MADV_DONTNEED) in my tests to make sure a memory page should be evicted from kernel cache, but found out that this operation is hardcoded to be NOOP on Glibc/Linux systems: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/posix_madvise.c;h=c89fa64f0749;hb=HEAD#l25 https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=8889e7aa461a On the other hand, as also verified by strace, `madvise(MADV_DONTNEED)` is not a NOOP as it actually goes to kernel by making syscall. Since it is not possible to use posix_madvise for what should be POSIX_MADV_DONTNEED behaviour, let's add all raw madvise behaviour flags as documented on http://man7.org/linux/man-pages/man2/madvise.2.html Presumably MADV_NORMAL and other behaviours that should translate 1-1 to POSIX ones were omitted in 59ac999110b7 (Add pxd for mmap & friends from "sys/mman.h" covering POSIX/Linux/BSD) to make people use the standardised POSIX interface. However given that it turned out to be not possible to use posix_madvise for all standard behaviours, system-specific madvise behaviours have to be used. (cherry picked from commit b394295bfbd7573a5a52773c8840f1834a3d0500)
* Include: cpython.pystate: Make PyGILState_STATE definition usable (GH-2997)Kirill Smelkov2019-07-192-1/+17
| | | | | | | | | | | | | | | | | | PyGILState_STATE was added in commit 3fd6fdce66 (Gilnanny + pystate.pxd) with struct type on-purpose different from what CPython actually uses with the idea so that PyGILState_STATE cannot be coerced into int. However as it is, it prevents PyGILState_STATE usage: cdef PyGILState_STATE gstate = PyGILState_Ensure() gives Variable type 'PyGILState_STATE' is incomplete Fix it by making PyGILState_STATE a defined structure. (cherry picked from commit 82a0ed43b31f0ad263256d2725d762ee82cd2179)
* include: posix.mman += MAP_FAILEDKirill Smelkov2019-07-191-0/+2
| | | | | | | | | | | | | | | | | | mmap returns void* and indicates failure via MAP_FAILED that is defined to be ((void *)-1). Every mmap call has to be checked for failure and thus posix.mman with mmap, but without MAP_FAILED is not very useful. We cannot declare MAP_FAILED as enum, because enum assumes int. However Cython documentation says 4. If the header file uses macros to define constants, translate them into a normal external variable declaration. ... (https://cython.readthedocs.io/en/latest/src/userguide/external_C_code.html#referencing-c-header-files) So add proper declaration for MAP_FAILED to make posix.mman.mmap usable. (cherry picked from commit 6725304967f4c4235cb0113c6f0e8b56bc683478)
* include: posix.mman += mlock2, MLOCK_ONFAULT, MCL_ONFAULTKirill Smelkov2019-07-191-0/+4
| | | | | | | | | | | mlock2 is Linux-specific version of mlock that accepts flags. The only flag available so far is MLOCK_ONFAULT which asks to lock pages only at the time when they are faulted in, not in the beginning. MCL_ONFAULT is Linux-specific flag to mlockall which requests similar behaviour. http://man7.org/linux/man-pages/man2/mlock2.2.html (cherry picked from commit 83a5700b30cdcb538ec8c23b4fcff1db54449abc)
* Add a clarifying warning to the documentation of the "generate_cleanup_code" ↵Stefan Behnel2019-07-101-1/+5
| | | | compiler option.
* Fix test in Py2.6 where "memoryview" is not a builtin.Stefan Behnel2019-07-071-2/+1
|
* Fix a reference leak for None when releasing a memoryview object.Stefan Behnel2019-07-072-0/+15
| | | | Closes GH-3023.
* Prepare release 0f 0.29.12.0.29.12Stefan Behnel2019-07-072-2/+5
|
* Fix 32-bit build compat for Pythran (GH-3032)serge-sans-paille2019-07-071-1/+1
| | | | Pythran assumes shapes are shapes of long, whatever the underlying architecture.
* Update changelog.Stefan Behnel2019-07-051-1/+17
|
* Tighten a condition to make passing None more explicit.Stefan Behnel2019-07-051-1/+1
|
* Fix error positions of undefined builtins and constants (GH-3030)Orivej Desh2019-07-053-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently Cython generates code like this: int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_NAME = __Pyx_GetBuiltinName(...); if (!__pyx_builtin_NAME) __PYX_ERR(1, 44, __pyx_L1_error) } int __pyx_pymod_exec_MODULE(PyObject *__pyx_pyinit_module) { if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) } When InitCachedBuiltins and InitCachedConstants call __PYX_ERR, they pass the file and line where a builtin is used, but then pymod_exec overwrites it with 1 and 1, and the error message looks like this: File "FILE", line 1, in init MODULE. import os NameError: name 'NAME' is not defined After this change Cython generates: int __pyx_pymod_exec_MODULE(PyObject *__pyx_pyinit_module) { if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; } and prints: File "FILE", line 44, in init MODULE. print(NAME) NameError: name 'NAME' is not defined
* Fix a C compiler warning about an implicitly reduced integer range ↵Stefan Behnel2019-07-051-4/+4
| | | | | | (Py_ssize_t -> int) when calling a helper function. Closes GH-3028.
* Fix PyCode_New() signature usage in Py3.8b2+.Stefan Behnel2019-07-051-6/+3
| | | | Closes GH-3031
* Prepare release of 0.29.11.0.29.11Stefan Behnel2019-06-302-2/+2
|
* Update changelog.Stefan Behnel2019-06-291-0/+4
|
* Correctly remove future_directives with # cython: language_level=2Jeroen Demeyer2019-06-292-12/+18
|
* Update changelog.Stefan Behnel2019-06-291-2/+8
|
* BUG: Fix reference count issues (GH-3022)Sebastian Berg2019-06-291-2/+4
|