- 14 Oct, 2019 1 commit
-
-
Thomas A Caswell authored
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.
-
- 08 Oct, 2019 4 commits
-
-
Alex Henrie authored
-
Stefan Behnel authored
Make sure to include "Python.h" also from the "public" header file, which depends on its declarations. Closes #3133.
-
Stefan Behnel authored
-
Pablo Galindo authored
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.
-
- 10 Sep, 2019 6 commits
-
-
Stefan Behnel authored
-
Stefan Behnel authored
-
Gerion Entrup authored
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
-
Stefan Behnel authored
-
telamonian authored
-
telamonian authored
-
- 23 Aug, 2019 2 commits
-
-
Stefan Behnel authored
-
Antonio Valentino authored
* Fix coverage path search * Add testcase
-
- 21 Aug, 2019 4 commits
-
-
Stefan Behnel authored
-
demiurg337 authored
-
Nathan Manville authored
Issue: #2541
-
Jeroen Demeyer authored
-
- 26 Jul, 2019 1 commit
-
-
Stefan Behnel authored
-
- 19 Jul, 2019 5 commits
-
-
Stefan Behnel authored
-
Kirill Smelkov authored
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 59ac9991 (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 b394295b)
-
Kirill Smelkov authored
PyGILState_STATE was added in commit 3fd6fdce (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 82a0ed43)
-
Kirill Smelkov authored
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 67253049)
-
Kirill Smelkov authored
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 83a5700b)
-
- 10 Jul, 2019 1 commit
-
-
Stefan Behnel authored
-
- 07 Jul, 2019 4 commits
-
-
Stefan Behnel authored
-
Stefan Behnel authored
Closes GH-3023.
-
Stefan Behnel authored
-
serge-sans-paille authored
Pythran assumes shapes are shapes of long, whatever the underlying architecture.
-
- 05 Jul, 2019 5 commits
-
-
Stefan Behnel authored
-
Stefan Behnel authored
-
Orivej Desh authored
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
-
Stefan Behnel authored
Fix a C compiler warning about an implicitly reduced integer range (Py_ssize_t -> int) when calling a helper function. Closes GH-3028.
-
Stefan Behnel authored
Closes GH-3031
-
- 30 Jun, 2019 1 commit
-
-
Stefan Behnel authored
-
- 29 Jun, 2019 4 commits
-
-
Stefan Behnel authored
-
Jeroen Demeyer authored
-
Stefan Behnel authored
-
Sebastian Berg authored
-
- 28 Jun, 2019 2 commits
-
-
Stefan Behnel authored
* REF: make Utils dependency-free by moving search_include_directories to Main * BUG: prefer sys.path before Cython/Include when searching for pxd files
-
Stefan Behnel authored
-