| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
Issue #29300: Rename struct.unpack() second parameter from "inputstr" to
"buffer", and use the Py_buffer type.
Fix also unit tests on struct.unpack() which passed a Unicode string instead of
a bytes string as struct.unpack() second parameter. The purpose of
test_trailing_counter() is to test invalid format strings, not to test the
buffer parameter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The struct module now requires contiguous buffers.
* Convert most functions and methods of the _struct module to Argument Clinic
* Use "Py_buffer" type for the "buffer" argument. Argument Clinic is
responsible to create and release the Py_buffer object.
* Use "PyStructObject *" type for self to avoid explicit conversions.
* Add an unit test on the _struct.Struct.unpack_from() method to test passing
arguments as keywords.
* Rephrase docstrings.
* Rename "fmt" argument to "format" in docstrings and the documentation.
As a side effect, functions and methods which used METH_VARARGS calling
convention like struct.pack() now use the METH_FASTCALL calling convention
which avoids the creation of temporary tuple to pass positional arguments and
so is faster. For example, struct.pack("i", 1) becomes 1.56x faster (-36%)::
$ ./python -m perf timeit \
-s 'import struct; pack=struct.pack' 'pack("i", 1)' \
--compare-to=../default-ref/python
Median +- std dev: 119 ns +- 1 ns -> 76.8 ns +- 0.4 ns: 1.56x faster (-36%)
Significant (t=295.91)
Patch co-written with Serhiy Storchaka.
|
|
|
|
| |
dict.
|
|
|
|
|
|
| |
Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like
_PyObject_CallArg1() uses more stack memory than
PyObject_CallFunctionObjArgs().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func)
* PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg)
PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires
extra work to "parse" C arguments to build a C array of PyObject*.
_PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate
memory on the C stack.
This change is part of the fastcall project. The change on listsort() is
related to the issue #23507.
|
|
|
|
| |
Patch by Masayuki Yamamoto.
|
|
|
|
| |
Patch by Masayuki Yamamoto.
|
|\ |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
module. Original patch by Eli Stevens.
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/
| |
| | |
The patch is automatically generated, it replaces the code that uses Py_CLEAR.
|
| |
| |
| |
| | |
The patch is automatically generated, it replaces the code that uses Py_CLEAR.
|
| |
| |
| |
| | |
private functions.
|
|/ |
|
|
|
|
|
| |
This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.
|
|\
| |
| |
| | |
and PyObject_AsWriteBuffer().
|
| |
| |
| |
| | |
and PyObject_AsWriteBuffer().
|
| |
| |
| |
| | |
compiler warnings in the Modules/ subdirectory.
|
|/
|
|
|
| |
Keep _Py_STRINGIZE() in PC/pyconfig.h to not introduce a dependency between
pyconfig.h and pymacros.h.
|
| |
|
|\
| |
| |
| | |
error messages and comments.
|
| |
| |
| |
| | |
error messages and comments.
|
| | |
|
| |
| |
| |
| | |
struct unpacking.
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
in the interpreter.
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag), mpdecimal (needs to build without Python.h).
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
in the interpreter.
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag), mpdecimal (needs to build without Python.h).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
in the interpreter.
I've left a couple of them in: zlib (third-party lib), getaddrinfo.c
(doesn't include Python.h, and probably obsolete), _sre.c (legitimate
use for the re.LOCALE flag).
|
|\ \ \
| |/ /
| | |
| | | |
Patch by Matti Mäki.
|
| |\ \
| | |/
| | |
| | | |
Patch by Matti Mäki.
|
| | |
| | |
| | |
| | | |
Patch by Matti Mäki.
|
|/ /
| |
| |
| | |
endianess detection and handling.
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/
| |
| | |
Initial patch by Serhiy Storchaka.
|
| |
| |
| |
| | |
Initial patch by Serhiy Storchaka.
|
|/
|
|
| |
supporting C integer types `ssize_t` and `size_t`, respectively.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r83239 | mark.dickinson | 2010-07-29 22:41:59 +0100 (Thu, 29 Jul 2010) | 2 lines
Issue #9422: Fix memory leak when re-initializing a struct.Struct object.
........
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r82941 | mark.dickinson | 2010-07-18 08:29:02 +0100 (Sun, 18 Jul 2010) | 3 lines
Issue #9277: Struct module: standard bool packing was incorrect if
char is unsigned. Thanks Stefan Krah for the patch.
........
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r82628 | benjamin.peterson | 2010-07-07 13:44:05 -0500 (Wed, 07 Jul 2010) | 1 line
this needn't be in the loop
........
r82630 | benjamin.peterson | 2010-07-07 13:54:59 -0500 (Wed, 07 Jul 2010) | 1 line
don't ignore exceptions from PyObject_IsTrue
........
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r81965 | mark.dickinson | 2010-06-13 10:17:13 +0100 (Sun, 13 Jun 2010) | 1 line
Remove unnecessary brackets from docstring optional arguments.
........
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r81961 | alexander.belopolsky | 2010-06-12 20:36:28 +0100 (Sat, 12 Jun 2010) | 1 line
Issue #8973: Expanded Struct.__doc__.
........
|