summaryrefslogtreecommitdiff
path: root/Cython/Compiler/ModuleNode.py
Commit message (Collapse)AuthorAgeFilesLines
* 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 error positions of undefined builtins and constants (GH-3030)Orivej Desh2019-07-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* At module cleanup time, clear the module dict before the global references ↵Stefan Behnel2019-03-041-1/+1
| | | | that its content might still be using.
* Keep owned references to builtins module, "cython_runtime" module and ↵Stefan Behnel2019-03-041-8/+8
| | | | | | preimport module to prevent crashes when they get removed from sys.modules. Generate cleanup code for them in the end. Closes #2885.
* Recognize that the default encoding is always utf-8 in Python 3.Robert Bradshaw2019-02-191-1/+4
| | | | This fixes Github issue #2819.
* Workaround for long internals misconfiguration on 64-bit MinGW.Robert Bradshaw2018-10-241-0/+5
| | | | | | | | | | Also add a compile time check for SIZEOF_VOID_P. This fixes #2670. See also https://bugs.python.org/issue35037 https://bugs.python.org/issue4709
* Fix type import enum.Robert Bradshaw2018-10-021-0/+1
|
* Use enum rather than int for size_check.Robert Bradshaw2018-10-021-9/+5
|
* Rename check_size extend option to ignore.Robert Bradshaw2018-10-021-1/+1
|
* Rename the options of the "check_size" feature to make them more obvious: ↵Stefan Behnel2018-09-291-4/+4
| | | | | | "warn" warns, "error" fails, and "extend" silently allows extending. Closes #2627.
* Minor cleanups of 'check_size' implementation (#2627).Stefan Behnel2018-09-291-5/+2
|
* MAINT: fixes from reviewmattip2018-09-251-2/+2
|
* MAINT: fixes from reviewmattip2018-09-251-5/+8
|
* MAINT: cannot use local enum in __Pyx functionsmattip2018-09-251-5/+5
|
* ENH: add check_size option to ctypedef class for external classesmattip2018-09-251-4/+15
|
* Exclude 'const' globals from star-importing since they can't get assigned ↵Stefan Behnel2018-09-221-1/+1
| | | | | | anyway. Closes #2621.
* Reduce the processing overhead in the debug line mapping writer a little.Stefan Behnel2018-08-281-10/+10
|
* Add a "CYTHON_HEX_VERSION" macro in the style of PY_HEX_VERSION that user ↵Stefan Behnel2018-08-261-1/+2
| | | | code can use to detect the Cython version that generated the main module.
* Move PyFrame localsplus offset calculation to a more appropriate utility ↵Stefan Behnel2018-08-141-0/+2
| | | | file where it can be included conditionally.
* make __Pyx_PyFunction_FastCallNoKw compatible with Stackless PythonAnselm Kruis2018-08-141-0/+1
| | | | | | Compute the offset of the PyFrameObject member "f_localsplus" at runtime, because the layout of PyFrameObject differs between regular C-python and Stackless Python.
* Added the pep8 test to travis. All the warnings are disabled and only a few ↵gabrieldemarmiesse2018-08-111-1/+1
| | | | error checks are enabled.
* Actually enable the error on PEP-489 module reinitialisation, and add it to ↵Stefan Behnel2018-08-101-5/+4
| | | | the changelog.
* Mark error raising code in PEP 489 init phase as TODO.Stefan Behnel2018-08-101-6/+6
|
* Revert PEP-489 behaviour, but keep error raising code to make it easy to try ↵Stefan Behnel2018-08-101-8/+13
| | | | both.
* Make error message more informative.Stefan Behnel2018-08-101-1/+2
|
* Enable PEP-489 module initialisation again, but raise an error on re-inits.Stefan Behnel2018-08-101-5/+7
|
* Allow C line in traceback also during module initJeroen Demeyer2018-07-121-2/+1
|
* Repair inclusion of TypeImport utility code for api .h files.Stefan Behnel2018-06-171-2/+4
|
* Fix C compiler warnings about an unused error label and an unused helper ↵Stefan Behnel2018-06-171-4/+9
| | | | function if only builtin types are used and no external extension types.
* Generate short wrappers for special methods like "__next__()" to adapt their ↵Stefan Behnel2018-06-171-1/+7
| | | | | | | signature for the PyCFunction entry in PyMethodDef. Previously, their cast to a two-argument PyCFunction was incorrect. See #2363.
* Merge branch '0.28.x'Stefan Behnel2018-06-031-1/+1
|\
| * Fix: reallowing tp_clear() in a subtype of an @no_gc_clear extension type ↵Stefan Behnel2018-06-031-1/+1
| | | | | | | | | | | | generated an invalid C function call to the (non-existent) base type implementation. Closes #2309.
* | Remove undefined branch hint macro usage from generated api header file.Stefan Behnel2018-05-261-1/+1
| |
* | Remove redundant helper function "__Pyx_ImportModule()" which was only ↵Stefan Behnel2018-05-261-9/+4
| | | | | | | | needed in Py<2.6 when PyObject_GetAttrString() and PyImport_ImportModule() did not take const string arguments.
* | Avoid redundant importing of modules when cimporting external extension ↵Stefan Behnel2018-05-261-23/+63
| | | | | | | | types from the same module.
* | Add comment.Stefan Behnel2018-05-261-0/+2
| |
* | Avoid a dangling pointer in the global "__pyx_m" variable while decrefing it.Stefan Behnel2018-05-251-1/+1
| |
* | Mark several one-time functions (used during module init) with ↵Stefan Behnel2018-05-251-2/+7
| | | | | | | | CYTHON_SMALL_CODE to reduce their binary code impact on the overall module size.
* | Merge branch '0.28.x'Stefan Behnel2018-05-211-1/+1
|\ \ | |/
| * Fix error reporting on very early errors when the Cython runtime ↵Stefan Behnel2018-05-211-1/+1
| | | | | | | | | | | | configuration module is not set up yet. See #2199.
* | Intern some identifier names that are likely to be otherwise interned anyway.Stefan Behnel2018-05-181-4/+3
| |
* | Allow access to long/int internalsJeroen Demeyer2018-05-031-0/+5
|/
* COMPAT: From the next release PyPy fixed tp_basicsize of PyType_Typemattip2018-03-211-1/+1
|
* Remove invalid GCC attribute usage when PEP-489 is enabled.Stefan Behnel2018-03-181-1/+1
|
* Work around BPO-32973: CPython 3 can rerun the module PyInit function if the ↵Stefan Behnel2018-03-021-0/+6
| | | | | | extension module is re-imported under a different name. https://bugs.python.org/issue32973
* Make CYTHON_SMALL_CODE macro work with g++.Stefan Behnel2018-02-141-3/+3
|
* Optimise the module init function for small code size regardless of the ↵Stefan Behnel2018-02-141-3/+4
| | | | | | externally provided CFLAGS. See #2102.
* Optimise attribute access on extension types with "__getattr__" but without ↵Stefan Behnel2018-01-241-10/+25
| | | | instance dict through a streamlined copy of "PyObject_GenericGetAttr".
* Extract some generated plain code into a utility code file to make it more ↵Stefan Behnel2018-01-051-9/+2
| | | | visible and editable.
* Verbatim C code using docstring syntax.Jeroen Demeyer2017-11-171-20/+14
|