| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| | |
most selective item first (just in case if we ever get dict collisions).
|
| |
| |
| |
| |
| |
| | |
used.
This was previously broken by the introduction of the "__PYX_ERR()" macro.
|
| |
| |
| |
| |
| | |
Acquire the GIL in nogil functions only when strictly needed on function exit, e.g. for cleaning up temp variables from with-gil blocks or adding tracebacks.
Closes GH-3554.
|
| |
| |
| |
| |
| |
| |
| | |
module implementation.
Ideally, most of the code that is uninteresting for users should be out of the way and not reside before the translated user code.
Mark all code section name beginnings in the C code file to make them easier to follow and move around.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
(GH-3377)
The idea being that struct-types like memoryviews
can generate their own reference counting code
using a common interface with Python objects.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Closes GH-3418.
|
| |
| |
| | |
Strings werren't static for the limited API so had to be set at module init rather than compile time.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Cleanup of string initialization code for limited API
Now appears in a few large blocks rather than
```
# if CYTHON_LIMITED_API
individual string line
# endif
```
* Fixed issue with some unicode strings, e.g.
```
# cython: language_level=3str, binding=True
def non_ascii_str():
s = 'ø\x20\u0020'
assert isinstance(s, str)
return s
```
|
| |
| |
| | |
"@subsitute: tempita" tag ensures that they are loaded in tempita utility code class
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add more limited api support
* Fix Fused Functions
* Fixed profile
* Use PyModule_GetDict
* Simplify __Pyx_Globals
* Address issues in CommonStructures
* ifdef guard CyFunction and FusedFunction
|
| |
| |
| |
| | |
Py2.6.
|
| |
| |
| | |
Blacklists failing test for now
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Allow overriding the reading of utilities files.
Add set_read_utitlities_hook() to override how utilities
files are accessed.
This change simplifies how Cython can be packaged into a single
file binary executable, where utility files are stored inside the
binary executable as package resource.
|
| |
| |
| |
| | |
explicitly. It was almost always passed anyway, so having a non-trivial search algorithm in place for a rare case of unnecessary laziness is just code bloat. (GH-3280)
|
| |
| |
| | |
Closes #2601
|
|\ \
| |/ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| | |
|
|\ \
| |/ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
bit Linux) and because MD5 is no longer allowed in US FIPS 140-2 environments.
Closes #2790.
|
| | |
|
|\ \
| |/ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
The __PYX_XDEC_MEMVIEW statements generated for try/finally statements
varied per build if there were multiple types of variables to be cleaned
up.
|
| |
| |
| |
| |
| |
| | |
The __PYX_XDEC_MEMVIEW statements generated for try/finally statements
varied per build if there were multiple types of variables to be cleaned
up.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| | |
created objects without cleanup.
Closes #2750.
|
|/
|
|
| |
Closes #2692.
|
|
|
|
|
|
| |
them across the entire module.
Closes #2292.
|
| |
|
|
|
|
|
|
|
| |
signature for the PyCFunction entry in PyMethodDef.
Previously, their cast to a two-argument PyCFunction was incorrect.
See #2363.
|
| |
|
|
|
|
| |
second argument.
|
|
|
|
| |
"Visitor" and "Code" by disabling auto-pickling.
|
|
|
|
| |
gcc-8 (and actually make use of the warnings in gcc-8).
|
| |
|
|
|
|
| |
gcc-8 (and actually make use of the warnings in gcc-8).
|
|
|
|
| |
CYTHON_SMALL_CODE to reduce their binary code impact on the overall module size.
|
| |
|
|
|
|
| |
generation.
|
| |
|
|
|
| |
Found via `codespell`
|