Commit Graph

10033 Commits

Author SHA1 Message Date
Aviv Palivoda 86a670543f bpo-9303: Migrate sqlite3 module to _v2 API to enhance performance (#359) 2017-03-03 13:58:17 +03:00
Yury Selivanov 84af903f3b bpo-28963: Fix out of bound iteration in asyncio.Future.remove_done_callback/C (#408) 2017-03-02 23:46:56 -05:00
Yury Selivanov 8d26aa930c bpo-29271: Fix Task.current_task and Task.all_tasks to accept None. (#406) 2017-03-02 22:16:33 -05:00
orenmn 1bea762d9e bpo-28129: fix ctypes crashes (#386)
* init commit, with initial tests for from_param and fields __set__ and __get__, and some additions to from_buffer and from_buffer_copy

* added the rest of tests and patches. probably only a first draft.

* removed trailing spaces

* replace ctype with ctypes in error messages

* change back from ctypes instance to ctype instance
2017-03-02 18:42:40 +01:00
Donald Stufft 8ae264ce6d bpo-29697: Don't use OpenSSL <1.0.2 fallback on 1.1+ (GH-395) 2017-03-02 11:45:29 -05:00
orenmn 698845eba7 fix an error message and a comment in _testcapimodule.c (GH-392) 2017-03-02 20:29:20 +09:00
Christian Heimes 2b221b78d6 bpo-29176 Use tmpfile() in curses module (#235)
The curses module used mkstemp() + fopen() to create a temporary file in
/tmp. The /tmp directory does not exist on Android. The tmpfile()
function simplifies the task a lot. It creates a temporary file in a
correct directory, takes care of cleanup and returns FILE*.

tmpfile is supported on all platforms (C89, POSIX 2001, Android,
Windows).

Signed-off-by: Christian Heimes <christian@python.org>
2017-03-02 11:09:01 +01:00
Berker Peksag 4a926caf8e bpo-28518: Start a transaction implicitly before a DML statement (#245)
Patch by Aviv Palivoda.
2017-02-26 18:22:38 +03:00
Louie Lu 357bad7101 bpo-29634: Reduce deque repeat execution when maxlen exist and size is not 1 (#255) (#255) 2017-02-23 22:59:49 -05:00
Victor Stinner 561ca80cff Document why functools.partial() must copy kwargs (#253)
Add a comment to prevent further attempts to avoid a copy for
optimization.
2017-02-23 18:26:43 +01:00
Christian Heimes d37c068e69 Add sockaddr_alg to sock_addr_t (#234)
sock_addr_t is used to define the minimum size of any socket address on
the stack. Let's make sure that an AF_ALG address always fits. Coverity
complains because in theory, AF_ALG might be larger than any of the other
structs. In practice it already fits.

Closes Coverity CID 1398948, 1398949, 1398950

Signed-off-by: Christian Heimes <christian@python.org>
2017-02-22 12:12:00 +01:00
Serhiy Storchaka 9639e4ab6d bpo-29532: Altering a kwarg dictionary passed to functools.partial() (#190)
no longer affects a partial object after creation.
2017-02-20 14:04:30 +02:00
Vinay Sajip a86339b83f Fixed bpo-29565: Corrected ctypes passing of large structs by value on Windows AMD64. (#168)
* Fixed bpo-29565: Corrected ctypes passing of large structs by value.

Added code and test to check that when a structure passed by value
is large enough to need to be passed by reference, a copy of the
original structure is passed. The callee updates the passed-in value,
and the test verifies that the caller's copy is unchanged. A similar
change was also added to the test added for bpo-20160 (that test was
passing, but the changes should guard against regressions).

* Reverted unintended whitespace changes.
2017-02-20 00:16:33 +00:00
INADA Naoki 72dccde884 bpo-29548: Fix some inefficient call API usage (GH-97) 2017-02-16 09:26:01 +09:00
Yen Chi Hsuan 72e81d00ee bpo-29556: Remove unused #include <langinfo.h> (#98)
bltinmodule.c: Added in b744ba1 and no longer necessary since d64e8a7
posixmodule.c: Added in d1cd4d4 and no longer necessary since efb00c0
pythonrun.c:   Added in 73d538b and no longer necessary since d600951
sysmodule.c:   Added in 5467d4c and no longer necessary since a2c17c5
2017-02-16 00:34:30 +01:00
Hiroki Noda f15fa87e5a Update URL of Mersenne Twister Home Page (#20) 2017-02-15 18:04:43 +09:00
Maximilian Hils 5ec08cea95 Remove double definition of IPPROTO_IPV6 (#100)
IPPROTO_IPV6 is already defined further above in the same way.
2017-02-15 01:46:08 +03:00
Victor Stinner 61e2bc74df bpo-29176: Fix name of the _curses.window class (#52)
Set name to "_curses.window" instead of "_curses.curses window" (with
a space!?).
2017-02-12 23:42:02 +01:00
Victor Stinner 05e218c37d Merge 3.6 2017-02-10 10:34:37 +01:00
Victor Stinner b67f096738 Fix datetime.fromtimestamp(): check bounds
Issue #29100: Fix datetime.fromtimestamp() regression introduced in Python
3.6.0: check minimum and maximum years.
2017-02-10 10:34:02 +01:00
Serhiy Storchaka 095ef73492 Issue #29513: Fix outdated comment and remove redundand code is os.scandir(). 2017-02-09 20:05:51 +02:00
Serhiy Storchaka d43ab05916 Issue #29513: Fixed a reference leak in os.scandir() added in issue #29034. 2017-02-09 20:02:37 +02:00
Victor Stinner dd407d5006 Optimize deque index, insert and rotate() methods
Issue #29452: Use METH_FASTCALL calling convention for index(), insert() and
rotate() methods of collections.deque to avoid the creation a temporary tuple
to pass position arguments. Speedup on deque methods:

* d.rotate(): 1.10x faster
* d.rotate(1): 1.24x faster
* d.insert(): 1.18x faster
* d.index(): 1.24x faster
2017-02-06 16:06:49 +01:00
Serhiy Storchaka 68a001dd59 Issue #29460: _PyArg_NoKeywords(), _PyArg_NoStackKeywords() and
_PyArg_NoPositional() now are macros.
2017-02-06 10:41:46 +02:00
Serhiy Storchaka 97353845f8 Issue #20186: Regenerated Argument Clinic. 2017-02-05 22:58:46 +02:00
Steve Dower 8c67fdd24b Merge from 3.6 2017-02-04 17:37:00 -08:00
Steve Dower a7e164881e Adds precheck for console filename to fix Windows 7. 2017-02-04 17:36:47 -08:00
Steve Dower 49226e23f6 Issue #29319: Prevent RunMainFromImporter overwriting sys.path[0]. 2017-02-04 15:41:12 -08:00
Steve Dower c008ddeb21 Issue #29319: Prevent RunMainFromImporter overwriting sys.path[0]. 2017-02-04 15:39:38 -08:00
Steve Dower 6d46ae7d12 Issue #29319: Prevent RunMainFromImporter overwriting sys.path[0]. 2017-02-04 15:39:21 -08:00
Steve Dower 43fec9b419 Merge issue #28164 and issue #29409 2017-02-04 15:14:18 -08:00
Steve Dower 722e3e2705 Issue #28164: Correctly handle special console filenames (patch by Eryk Sun) 2017-02-04 15:07:46 -08:00
Steve Dower eacee98679 Issue #29409: Implement PEP 529 for io.FileIO (Patch by Eryk Sun) 2017-02-04 14:38:11 -08:00
Serhiy Storchaka ef5176769d Issue #29444: Fixed out-of-bounds buffer access in the group() method of
the match object.  Based on patch by WGH.
2017-02-04 22:57:44 +02:00
Serhiy Storchaka 86e42376c2 Issue #29444: Fixed out-of-bounds buffer access in the group() method of
the match object.  Based on patch by WGH.
2017-02-04 22:55:40 +02:00
Serhiy Storchaka 7e10dbbd45 Issue #29444: Fixed out-of-bounds buffer access in the group() method of
the match object.  Based on patch by WGH.
2017-02-04 22:53:57 +02:00
Serhiy Storchaka b451f91786 Issue #20186: Converted the tracemalloc module to Argument Clinic.
Based on patch by Georg Brandl.
2017-02-04 12:18:38 +02:00
Serhiy Storchaka 5106ad13b2 Issue #20186: Converted the symtable module to Argument Clinic.
Original patch by Georg Brandl.
2017-02-04 12:13:20 +02:00
Serhiy Storchaka 685c203e84 Removed redundant Argument Clinic directives. 2017-02-04 11:53:22 +02:00
Serhiy Storchaka 9326028115 Issue #20185: Converted the gc module to Argument Clinic. 2017-02-04 11:19:59 +02:00
Serhiy Storchaka a5a55902c1 Issue #29300: Use Argument Clinic for getting struct object from the format. 2017-02-04 11:14:52 +02:00
Victor Stinner c0f59ad145 Rename struct.unpack() 2nd parameter to "buffer"
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.
2017-02-02 14:24:16 +01:00
Victor Stinner 3f2d10132d Issue #29300: Convert _struct module to Argument Clinic
* 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.
2017-02-02 12:09:30 +01:00
Victor Stinner fd6d0d2a18 Issue #29368: Fix _Pickle_FastCall() usage in do_append()
_Pickle_FastCall() has a surprising API: it decrements the reference counter of
its second argument.
2017-02-02 10:56:47 +01:00
Serhiy Storchaka bee09aecc2 Issue #29368: The extend() method is now called instead of the append()
method when unpickle collections.deque and other list-like objects.
This can speed up unpickling to 2 times.
2017-02-02 11:12:47 +02:00
Benjamin Peterson 2145387abc merge 3.6 (#29398) 2017-01-31 23:31:20 -08:00
Benjamin Peterson 2b3f4c1efb merge 3.5 (#29398) 2017-01-31 23:31:10 -08:00
Benjamin Peterson ec977c3028 gc types needs to be allocated as such (closes #29398) 2017-01-31 23:31:02 -08:00
doko@ubuntu.com 9ac4815240 merge 3.6 2017-01-31 13:53:39 +01:00
doko@ubuntu.com cd12f7cb5c merge 3.5 2017-01-31 13:51:21 +01:00