Raymond Hettinger
1dd8e71eb3
Issues #24099 , #24100 , and #24101 : Fix free-after-use bug in heapq.
2015-05-02 10:00:22 -07:00
Benjamin Peterson
1dfd247c1b
remove the concept of an unoptimized function scope from the compiler, since it can't happen anymore
2015-04-27 21:44:22 -04:00
Benjamin Peterson
fc9d6f600e
merge 3.4 ( #24058 )
2015-04-26 15:56:23 -04:00
Benjamin Peterson
0c6a5d1deb
remove extern definition, since it's in a header file ( closes #24058 )
2015-04-26 15:55:06 -04:00
Gregory P. Smith
9afe8a3306
Fix computation of max_fd on OpenBSD. Issue #23852 .
2015-04-25 23:44:02 -07:00
Gregory P. Smith
f9681776c9
Fix computation of max_fd on OpenBSD. Issue #23852 .
2015-04-25 23:43:34 -07:00
Gregory P. Smith
9c6b916662
Switch binascii over to using the common _Py_strhex implementation for its hex
...
and hexlify functions. issue9951.
2015-04-26 00:42:13 +00:00
Gregory P. Smith
4dff6f6fa6
Issue9951: update _hashopenssl and md5module to use _Py_strhex().
...
Also update _posixsubprocess to use Py_hexdigits instead of its own constant.
2015-04-25 23:42:38 +00:00
Gregory P. Smith
8cb6569fe1
Implements issue #9951 : Adds a hex() method to bytes, bytearray, & memoryview.
...
Also updates a few internal implementations of the same thing to use the
new built-in code.
Contributed by Arnon Yaari.
2015-04-25 23:22:26 +00:00
Victor Stinner
cc0bbbc781
(Merge 3.4) Issue #9246 : On POSIX, os.getcwd() now supports paths longer than
...
1025 bytes. Patch written by William Orr.
2015-04-25 00:21:52 +02:00
Victor Stinner
4403d7def0
Issue #9246 : On POSIX, os.getcwd() now supports paths longer than 1025 bytes
...
Patch written by William Orr.
2015-04-25 00:16:10 +02:00
Serhiy Storchaka
247789cee9
Issue #24007 : Argument Clinic now writes the format of PyArg_Parse*() at the
...
same line as function name.
2015-04-24 00:40:51 +03:00
Serhiy Storchaka
71b49dde3a
Issue #16840 . Turn off bignum support in tkinter with with Tcl earlier than 8.5.8
...
(tclTomMath.h was broken) and non-final Tcl 8.6.
Removed TK_VERSION_HEX.
2015-04-22 10:59:32 +03:00
Serhiy Storchaka
3af7a38c61
Issue #16840 . Turn off bignum support in tkinter with with Tcl earlier than 8.5.8
...
(tclTomMath.h was broken) and non-final Tcl 8.6.
2015-04-22 10:53:08 +03:00
Christian Heimes
8714cfdc4a
Get rid of unused-but-set-variable warning. len and len2 should be equal and len2 is technically more correct, too.
2015-04-21 10:57:41 +02:00
Serhiy Storchaka
629d697f96
Issue #16840 : Turn on support of bignums only in final release of Tcl 8.5.
2015-04-20 14:07:41 +03:00
Serhiy Storchaka
77e8311deb
Issue #16840 : Turn on support of bignums only in final release of Tcl 8.5.
2015-04-20 14:05:37 +03:00
Serhiy Storchaka
7e9d1d1a1b
Issue #23908 : os functions now reject paths with embedded null character
...
on Windows instead of silently truncate them.
Removed no longer used _PyUnicode_HasNULChars().
2015-04-20 10:12:28 +03:00
Serhiy Storchaka
2b0d2007a1
Issue #23908 : os functions now reject paths with embedded null character
...
on Windows instead of silently truncate them.
2015-04-20 09:53:58 +03:00
Serhiy Storchaka
e3037e1145
Issue #23728 : binascii.crc_hqx() could return an integer outside of the range
...
0-0xffff for empty data.
2015-04-20 09:31:51 +03:00
Serhiy Storchaka
2ef7c47844
Issue #23728 : binascii.crc_hqx() could return an integer outside of the range
...
0-0xffff for empty data.
2015-04-20 09:26:49 +03:00
Serhiy Storchaka
bb72c47996
Use PyArg_ParseTuple (new API) instead of PyArg_Parse (old API) for parsing tuples.
2015-04-19 20:38:19 +03:00
Serhiy Storchaka
6359641bcd
Issue #20181 : Converted the unicodedata module to Argument Clinic.
2015-04-17 21:18:49 +03:00
Serhiy Storchaka
9260e77386
Issue #20184 : Converted _dbm and _gdbm modules to Argument Clinic.
2015-04-17 21:05:18 +03:00
Christian Heimes
29fbd21d73
Remove redundant check fro md5module.
...
CID 1294331 (#1 of 1): Identical code for different branches (IDENTICAL_BRANCHES)
2015-04-16 17:29:11 +02:00
Christian Heimes
82adeffc13
Fix typo in assert statement
2015-04-16 17:21:54 +02:00
Serhiy Storchaka
f24131ff31
Issue #20175 : Converted the _io module to Argument Clinic.
2015-04-16 11:19:43 +03:00
Larry Hastings
7f90cba7f3
Issue #23935 : Argument Clinic's understanding of format units
...
accepting bytes, bytearrays, and buffers is now consistent with
both the documentation and the implementation.
2015-04-15 23:02:12 -04:00
Steve Dower
d2bc389e55
Issue #4254 : Adds _curses.update_lines_cols() Patch by Arnon Yaari
2015-04-15 18:06:05 -04:00
Larry Hastings
89964c48d1
Issue #23944 : Argument Clinic now wraps long impl prototypes at column 78.
2015-04-14 18:07:59 -04:00
Berker Peksag
dfa4e045a3
Issue #23943 : Fix typos. Patch by Piotr Kasprzyk.
2015-04-14 09:35:51 +03:00
Berker Peksag
4882cacab6
Issue #23943 : Fix typos. Patch by Piotr Kasprzyk.
2015-04-14 09:30:01 +03:00
Zachary Ware
8ef887ce47
Issue #20586 : Argument Clinic now ensures signatures on functions without docstrings.
2015-04-13 18:22:35 -05:00
Larry Hastings
a6cc551502
Issue #22631 : Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
...
Patch courtesy of Joe Jevnik.
2015-04-13 17:48:40 -04:00
doko@ubuntu.com
4b761bf79a
- merge 3.4
2015-04-13 22:00:30 +02:00
doko@ubuntu.com
1345d20193
- Use PLATDIR for the platform directory everywhere (refactoring only)
2015-04-13 21:59:57 +02:00
Brett Cannon
f299abdafa
Issue #23731 : Implement PEP 488.
...
The concept of .pyo files no longer exists. Now .pyc files have an
optional `opt-` tag which specifies if any extra optimizations beyond
the peepholer were applied.
2015-04-13 14:21:02 -04:00
Antoine Pitrou
56452eea39
Issue #22982 : Improve BOM handling when seeking to multiple positions of a writable text file.
2015-04-13 20:02:33 +02:00
Antoine Pitrou
85e3ee749c
Issue #22982 : Improve BOM handling when seeking to multiple positions of a writable text file.
2015-04-13 20:01:21 +02:00
Antoine Pitrou
0f164c606a
Merge
2015-04-13 19:49:04 +02:00
Antoine Pitrou
20d31b5182
Merge
2015-04-13 19:48:52 +02:00
Antoine Pitrou
cb46f0ecb0
Issue #23309 : Avoid a deadlock at shutdown if a daemon thread is aborted
...
while it is holding a lock to a buffered I/O object, and the main thread
tries to use the same I/O object (typically stdout or stderr). A fatal
error is emitted instead.
2015-04-13 19:48:19 +02:00
Antoine Pitrou
25f85d4bd5
Issue #23309 : Avoid a deadlock at shutdown if a daemon thread is aborted
...
while it is holding a lock to a buffered I/O object, and the main thread
tries to use the same I/O object (typically stdout or stderr). A fatal
error is emitted instead.
2015-04-13 19:41:47 +02:00
Zachary Ware
774ac377da
Closes #17202 : Merge with 3.4
2015-04-13 12:11:40 -05:00
Zachary Ware
4c9c848159
Issue #17202 : Add .bat to .hgeol to force them to CRLF.
...
Using LF can a script to fail if it tries to use a label that is
split across 512 byte blocks. Who knows why.
2015-04-13 11:59:54 -05:00
Benjamin Peterson
5646de47e1
make DirEntryType and ScandirIteratorType static ( closes #23918 )
2015-04-12 17:56:34 -04:00
Steve Dower
f737703671
Issue #23668 : Regenerates posixmodule.c.h for new ifdefs
2015-04-12 15:44:54 -04:00
Steve Dower
a1c7e727c8
Issue #23668 : Suppresses invalid parameter handler around chsize calls.
2015-04-12 00:26:43 -04:00
Steve Dower
8fc8980c96
Issue #23524 : Replace _PyVerify_fd function with calls to _set_thread_local_invalid_parameter_handler.
2015-04-12 00:26:27 -04:00
Serhiy Storchaka
3d2279f9a8
Issue #21859 : Corrected FileIO docstrings.
2015-04-10 16:08:43 +03:00
Steve Dower
fe0a41aae4
Issue #23668 : Adds support for os.truncate and os.ftruncate on Windows
2015-03-20 19:50:46 -07:00
doko@ubuntu.com
6433e9efde
- Modules/Setup.dist: remove time extension duplicate, introduced by the fix for #5309 .
2015-04-12 00:13:52 +02:00
Serhiy Storchaka
cd092efb16
Issue #21859 : Corrected FileIO docstrings.
2015-04-10 16:09:13 +03:00
Serhiy Storchaka
5056769b36
Replaced "string" with "bytes object" in docstrings of binary I/O objects.
2015-04-10 02:19:57 +03:00
Serhiy Storchaka
b817b77a8c
Replaced "string" with "bytes object" in docstrings of binary I/O objects.
2015-04-10 02:18:44 +03:00
Benjamin Peterson
43b842775f
remove extra arguments in arg parsing format codes ( closes #23875 )
2015-04-06 13:05:22 -04:00
Victor Stinner
ced1174525
Issue #23618 : Fix internal_select() for negative timeout (blocking socket) when
...
poll() is not available.
select() doesn't accept negative timeout, the timeout parameter must be NULL to
block on select().
2015-04-09 10:27:25 +02:00
Victor Stinner
88ed640fc7
Issue #23834 : Fix the default socket timeout
...
Use -1 second by default, not -1 nanosecond.
2015-04-09 10:23:12 +02:00
Victor Stinner
146907081c
Issue #23853 : Methods of SSL socket don't reset the socket timeout anymore each
...
time bytes are received or sent. The socket timeout is now the maximum total
duration of the method.
This change fixes a denial of service if the application is regulary
interrupted by a signal and the signal handler does not raise an exception.
2015-04-06 22:46:13 +02:00
Victor Stinner
222dfc7d94
Issue #22117 : Fix sock_call_ex() for non-blocking socket
...
Call internal_select() with a timeout of 0 second, not a timeout of -1 second
(blocking)!
2015-04-06 22:30:41 +02:00
Victor Stinner
8912d1418e
Issue #23853 : socket.socket.sendall() does no more reset the socket timeout
...
each time data is sent successfuly. The socket timeout is now the maximum total
duration to send all data.
2015-04-06 23:16:34 +02:00
Victor Stinner
9001d8089c
Issue #23834 : Fix initial value of the socket timeout
...
Use _PyTime_FromSeconds() to initialize the default socket timeout to -1
second, instead of -1 nanosecond which causes rounding issues in
internal_select().
2015-04-06 23:06:01 +02:00
Benjamin Peterson
7d71c97ec3
merge 3.4 ( #23875 )
2015-04-06 13:06:21 -04:00
Serhiy Storchaka
a4c6badfdd
Issue #23501 : #include "clinic/posixmodule.c.h" was in the section skipped on Windows.
2015-04-04 23:35:52 +03:00
Benjamin Peterson
1a6292194b
fix refleak in deque_concat
2015-04-04 10:52:36 -04:00
Serhiy Storchaka
04e6dba7dc
Fixed the array module broken in issue #23492 .
...
array_array_frombytes() is used in other functions, but it's signature was
changed. Closes issue #23866 .
2015-04-04 17:06:55 +03:00
Serhiy Storchaka
06e66108c6
Issue #15133 : _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
...
returns bool. tkinter.BooleanVar now validates input values (accepted bool,
int, str, and Tcl_Obj). tkinter.BooleanVar.get() now always returns bool.
2015-04-04 12:44:30 +03:00
Serhiy Storchaka
9a6e201f7d
Issue #15133 : _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
...
returns bool. tkinter.BooleanVar now validates input values (accepted bool,
int, str, and Tcl_Obj). tkinter.BooleanVar.get() now always returns bool.
2015-04-04 12:43:01 +03:00
Serhiy Storchaka
f8aa133cce
Issue #23338 : Fixed formatting ctypes error messages on Cygwin.
...
Patch by Makoto Kato.
2015-04-04 10:06:58 +03:00
Serhiy Storchaka
2e229e025c
Issue #23338 : Fixed formatting ctypes error messages on Cygwin.
...
Patch by Makoto Kato.
2015-04-04 10:05:48 +03:00
Serhiy Storchaka
92e8af67a8
Issue #23492 : Argument Clinic now generates argument parsing code with
...
PyArg_Parse instead of PyArg_ParseTuple if possible.
2015-04-04 00:12:11 +03:00
Serhiy Storchaka
1009bf18b3
Issue #23501 : Argumen Clinic now generates code into separate files by default.
2015-04-03 23:53:51 +03:00
Larry Hastings
0759f84d62
Issue #23500 : Argument Clinic is now smarter about generating the "#ifndef"
...
(empty) definition of the methoddef macro: it's only generated once, even
if Argument Clinic processes the same symbol multiple times, and it's emitted
at the end of all processing rather than immediately after the first use.
2015-04-03 13:09:02 -07:00
Serhiy Storchaka
45ec3288d0
Removed trailing whitespaces in miscalenous files.
2015-04-03 19:42:32 +03:00
Victor Stinner
4e3cfa46dc
Issue #23853 : Cleanup _ssl.c
...
* Rename check_socket_and_wait_for_timeout() to PySSL_select()
* PySSL_select() is now clearly splitted betwen poll() and select()
* Add empty lines for readability
2015-04-02 21:28:28 +02:00
Victor Stinner
10550cdb8a
Issue #23834 : Simplify timeout handling
...
* Use the new _PyTime_FromSeconds() function to set the timeout to -1 second
for socket.settimeout(None). It avoids a special case in internal_select()
because of a rounding issue: -1 nanosecond is rounded to 0 millisecond which
means non-blocking, instead of blocking.
* Check if the interval the negative in sock_call_ex() instead of doing the
check in internal_select(). sock_call_ex() remembers if the socket has a
timeout or not, which avoids a race condition if the timeout is modified in a
different thread.
2015-04-03 13:22:27 +02:00
Victor Stinner
13019fdef3
Issue #22117 : Add a new _PyTime_FromSeconds() function
...
Fix also _Py_InitializeEx_Private(): initialize time before initializing
import, import_init() uses the _PyTime API (for thread locks).
2015-04-03 13:10:54 +02:00
Serhiy Storchaka
4c7dc48ea5
Issue #16840 : Tkinter now supports 64-bit integers added in Tcl 8.4 and
...
arbitrary precision integers added in Tcl 8.5.
2015-04-02 18:49:14 +03:00
Serhiy Storchaka
ea134da929
Issue #16840 : Tkinter now supports 64-bit integers added in Tcl 8.4 and
...
arbitrary precision integers added in Tcl 8.5.
2015-04-02 18:46:50 +03:00
Victor Stinner
8e44aa5ae4
Issue #23834 : Fix socket.sendto(), use the C Py_ssize_t type to store the
...
result of sendto() instead of the C int type.
2015-04-02 17:16:08 +02:00
Victor Stinner
33f96f1800
Merge 3.4 (_posixsubprocess)
2015-04-02 16:25:01 +02:00
Victor Stinner
e7c749238e
Issue #23851 : close() must not be retried when it fails with EINTR
...
See the PEP 475 for the rationale.
2015-04-02 16:24:46 +02:00
Victor Stinner
a135cb8143
Issue #23618 : Ooops, remove abort() added for debug purpose
2015-04-02 15:17:12 +02:00
Victor Stinner
38aec7525e
Issue #23618 : Fix sock_connect_impl(), set the socket error code
...
sock_call_ex() gets the socket error code when the socket function fails.
sock_connect_impl() didn't set the error correctly.
2015-04-02 14:37:20 +02:00
Victor Stinner
81c41dbfcc
Issue #23618 : socket.socket.connect() now waits until the connection completes
...
instead of raising InterruptedError if the connection is interrupted by
signals, signal handlers don't raise an exception and the socket is blocking or
has a timeout.
socket.socket.connect() still raise InterruptedError for non-blocking sockets.
2015-04-02 11:50:57 +02:00
Victor Stinner
35bee932e4
Issue #23618 : Don't declare recvmsg/sendmsg helper functions on Windows
2015-04-02 12:28:07 +02:00
Serhiy Storchaka
b452f41cc8
Issue #21526 : Fixed support of new boolean type in Tcl 8.5.
2015-04-02 10:58:40 +03:00
Serhiy Storchaka
f7de3dd02d
Issue #21526 : Tkinter now supports new boolean type in Tcl 8.5.
2015-04-02 10:35:57 +03:00
Victor Stinner
ff444e828e
Issue #23834 : Fix sock_call(), set deadline_initialized to recompute the timeout
2015-04-02 03:22:49 +02:00
Victor Stinner
02f32ab47e
Issue #23834 : Modify socket.sendall() to reuse sock_call() with
...
sock_send_impl()
2015-04-01 22:53:26 +02:00
Victor Stinner
31bf2d5073
Issue #23834 : Add sock_call() helper function
...
The BEGIN_SELECT_LOOP and END_SELECT_LOOP macros of socketmodule.c don't handle
EINTR. Functions using these macros use an inner loop to handle EINTR, but they
don't recompute the timeout.
This changes replaces the two macros with a new sock_call() function which
takes a function as a parameter. sock_call() recomputes the timeout, handle
false positive and handle EINTR.
2015-04-01 21:57:09 +02:00
Victor Stinner
c7489a5595
Issue #23836 : Fix the faulthandler module to handle reentrant calls
...
to its signal handlers.
Use also _Py_write_noraise() instead of write() to retry write() if it is
interrupted by a signal (fail with EINTR).
faulthandler.dump_traceback() also calls PyErr_CheckSignals() to call the
Python signal handler if a signal was received.
2015-04-01 18:48:58 +02:00
Victor Stinner
185fd33a17
Issue #23836 : Use _Py_write_noraise() to retry on EINTR in child_exec() of
...
_posixsubprocess
2015-04-01 18:35:53 +02:00
Victor Stinner
e72fe3995b
Issue #23836 : Use _Py_write_noraise() to retry on EINTR in trip_signal() of
...
signalmodule.c
2015-04-01 18:35:22 +02:00
Benjamin Peterson
81541f4480
merge 3.4
2015-04-01 12:37:34 -04:00
Victor Stinner
62d1c70eff
Issue #22117 , issue #23485 : Fix _PyTime_AsMilliseconds() and
...
_PyTime_AsMicroseconds() rounding.
Add also unit tests.
2015-04-01 17:47:07 +02:00
Benjamin Peterson
4fd929b431
remove assignment in conditional
2015-04-01 11:16:40 -04:00
Victor Stinner
a772662423
Issue #23618 : Fix EINTR handling on Windows
...
Windows uses WSAEINTR error code, not EINTR, for socket functions.
2015-04-01 11:09:43 +02:00
Victor Stinner
70a46f635f
Issue #23618 : Enhance EINTR handling in socket.connect()
...
Call PyErr_CheckSignals() immediatly if connect() or select() fails with EINTR
in internal_connect().
Refactor also the code to limit indentaton and make it more readable.
2015-03-31 22:03:59 +02:00
Victor Stinner
ee699e9d2b
Issue #23618 : Fix EINTR handling in socket.connect()
...
Call PyErr_CheckSignals() if connect(), select() or getsockopt() failed with
EINTR.
2015-03-31 21:28:42 +02:00
Victor Stinner
c4e819a54f
Issue #23618 : Cleanup internal_connect() in socketmodule.c
...
On Windows, it looks like using the C type socklen_t for getsockopt() (instead
of int) is fine, it was already used in socket.getsockopt().
2015-03-31 21:23:10 +02:00
Raymond Hettinger
41290a68ba
Issue 23793: Add deque support for __add__(), __mul__(), and __imul__().
2015-03-31 08:12:23 -07:00
Victor Stinner
b6c15bcad3
Issue #23618 : Refactor internal_connect()
...
On Windows, internal_connect() now reuses internal_connect_select() and always
calls getsockopt().
2015-03-31 16:35:35 +02:00
Victor Stinner
dd88d3db45
Issue #23618 : Refactor internal_connect()
...
The function now returns the error code instead of using the global errno
(POSIX) or WSAGetLastError() (Windows).
internal_connect() now returns errno if getsockopt() fails.
2015-03-31 16:08:22 +02:00
Victor Stinner
1bb0aef4d1
Issue #22117 : Fix integer overflow check in socket_parse_timeout() on Windows
2015-03-31 16:31:19 +02:00
Victor Stinner
dd83bd2f9c
Issue #23618 : Fix internal_connect_select()
2015-03-31 14:24:47 +02:00
Victor Stinner
416f2e66ca
Issue #23618 : internal_connect_select() now waits also for error events
2015-03-31 13:56:29 +02:00
Victor Stinner
e6951c6c8a
Issue #23618 : Refactor internal_select() to prepare socket.connect() for EINTR
2015-03-31 13:50:44 +02:00
Victor Stinner
391fa713f7
Issue #23618 : Refactor the _socket module
...
* Inline internal_select() function
* Rename internal_select_ex() internal_select()
2015-03-31 13:15:31 +02:00
Serhiy Storchaka
58e4134a1c
Issue #23611 : Serializing more "lookupable" objects (such as unbound methods
...
or nested classes) now are supported with pickle protocols < 4.
2015-03-31 14:07:24 +03:00
Serhiy Storchaka
72e731cc03
Issue #13583 : sqlite3.Row now supports slice indexing.
...
Tests by Jessica McKellar.
2015-03-31 13:33:11 +03:00
Serhiy Storchaka
80d84c89ee
Merge heads
2015-03-31 13:18:35 +03:00
Serhiy Storchaka
d5d818d40b
Issue #18473 : Fixed 2to3 and 3to2 compatible pickle mappings.
...
Fixed ambigious reverse mappings. Added many new mappings. Import mapping
is no longer applied to modules already mapped with full name mapping.
Added tests for compatible pickling and unpickling and for consistency of
_compat_pickle mappings.
2015-03-31 13:17:10 +03:00
Serhiy Storchaka
bfe1824d08
Issue #18473 : Fixed 2to3 and 3to2 compatible pickle mappings.
...
Fixed ambigious reverse mappings. Added many new mappings. Import mapping
is no longer applied to modules already mapped with full name mapping.
Added tests for compatible pickling and unpickling and for consistency of
_compat_pickle mappings.
2015-03-31 13:12:37 +03:00
Victor Stinner
45ca48b03d
Issue #23485 : select.devpoll.poll() is now retried when interrupted by a signal
2015-03-31 12:10:33 +02:00
Victor Stinner
4448c08451
Issue #23485 : select.kqueue.control() is now retried when interrupted by a signal
2015-03-31 11:48:34 +02:00
Victor Stinner
41eba224de
Issue #23485 : select.epoll.poll() is now retried when interrupted by a signal
2015-03-30 21:59:21 +02:00
Victor Stinner
3c7d6e0693
Issue #23485 : select.poll.poll() is now retried when interrupted by a signal
2015-03-30 21:38:00 +02:00
Victor Stinner
6aa446cf03
PEP 475: on EINTR, retry the function even if the timeout is equals to zero
...
Retry:
* signal.sigtimedwait()
* threading.Lock.acquire()
* threading.RLock.acquire()
* time.sleep()
2015-03-30 21:33:51 +02:00
Victor Stinner
f70e1ca0fc
Issue #23485 : select.select() is now retried automatically with the recomputed
...
timeout when interrupted by a signal, except if the signal handler raises an
exception. This change is part of the PEP 475.
The asyncore and selectors module doesn't catch the InterruptedError exception
anymore when calling select.select(), since this function should not raise
InterruptedError anymore.
2015-03-30 21:16:11 +02:00
Victor Stinner
e134a7fe36
Issue #23752 : _Py_fstat() is now responsible to raise the Python exception
...
Add _Py_fstat_noraise() function when a Python exception is not welcome.
2015-03-30 10:09:31 +02:00
Serhiy Storchaka
2e1c4e5db2
Issue #23785 : Fixed memory leak in TextIOWrapper.tell() in rare circumstances.
2015-03-30 10:00:40 +03:00
Serhiy Storchaka
04d09ebd39
Issue #23785 : Fixed memory leak in TextIOWrapper.tell() in rare circumstances.
2015-03-30 09:58:41 +03:00
Serhiy Storchaka
7901b48a1f
Issue #23171 : csv.Writer.writerow() now supports arbitrary iterables.
2015-03-30 09:09:54 +03:00
Victor Stinner
a695f83f0d
Issue #22117 : Remove _PyTime_ROUND_DOWN and _PyTime_ROUND_UP rounding methods
...
Use _PyTime_ROUND_FLOOR and _PyTime_ROUND_CEILING instead.
2015-03-30 03:57:14 +02:00
Victor Stinner
869e1778c0
Issue #22117 : Replace usage of _PyTime_ROUND_UP with _PyTime_ROUND_CEILING
...
All these functions only accept positive timeouts, so this change has no effect
in practice.
2015-03-30 03:49:14 +02:00
Victor Stinner
bcdd777d3c
Issue #22117 : Add _PyTime_ROUND_CEILING rounding method for timestamps
...
Add also more tests for ROUNd_FLOOR.
2015-03-30 03:52:49 +02:00
Victor Stinner
520bddf79a
Issue #23752 : When built from an existing file descriptor, io.FileIO() now only
...
calls fstat() once. Before fstat() was called twice, which was not necessary.
2015-03-30 03:21:06 +02:00
Victor Stinner
ea9c0dd2c2
Issue #22117 : Fix usage of _PyTime_AsTimeval()
...
Add _PyTime_AsTimeval_noraise() function. Call it when it's not possible (or
not useful) to raise a Python exception on overflow.
2015-03-30 02:51:13 +02:00
Victor Stinner
160e819a1d
Issue #23694 : Fix usage of _Py_open() in the _posixsubprocess module
...
Don't call _Py_open() from _close_open_fds_safe() because it is call just after
fork(). It's not good to play with locks (the GIL) between fork() and exec().
Use instead _Py_open_noraise() which doesn't touch to the GIL.
2015-03-30 02:18:31 +02:00
Victor Stinner
e4a994d617
Issue #22117 : Fix rounding of fromtimestamp() methods of datetime.datetime and
...
datetime.time: round towards minus infinity ("floor") instead of rounding
towards zero ("down").
2015-03-30 01:10:14 +02:00
Victor Stinner
dca028b86a
Issue #22117 : Fix os.utime(), it now rounds the timestamp towards minus
...
infinity (-inf) instead of rounding towards zero.
Replace _PyTime_ROUND_DOWN with _PyTime_ROUND_FLOOR.
2015-03-30 01:02:57 +02:00
Victor Stinner
09e5cf28ae
Issue #22117 : Use the _PyTime_t API in _datetime.datetime() constructor
...
* Remove _PyTime_gettimeofday()
* Add _PyTime_GetSystemClock()
2015-03-30 00:09:18 +02:00
Serhiy Storchaka
07360df481
Issue #14260 : The groupindex attribute of regular expression pattern object
...
now is non-modifiable mapping.
2015-03-30 01:01:48 +03:00
Serhiy Storchaka
bfbfc8deb2
Removed unintentional trailing spaces in text files.
2015-03-29 19:12:58 +03:00
Victor Stinner
02937aab13
Issue #22117 : Add the new _PyTime_ROUND_FLOOR rounding method for the datetime
...
module. time.clock_settime() now uses this rounding method instead of
_PyTime_ROUND_DOWN to handle correctly dates before 1970.
2015-03-28 05:02:39 +01:00
Victor Stinner
b3b4544070
Issue #22117 : Use the _PyTime_t API for time.clock_settime()
...
Remove also the now unused _PyTime_AddDouble() function.
2015-03-28 04:09:41 +01:00
Victor Stinner
c337838af7
Issue #22117 : Use the new _PyTime_t API in the select module
2015-03-28 05:07:51 +01:00
Victor Stinner
f5faad2bf0
Issue #22117 : The thread module uses the new _PyTime_t timestamp API
...
Add also a new _PyTime_AsMicroseconds() function.
threading.TIMEOUT_MAX is now be smaller: only 292 years instead of 292,271
years on 64-bit system for example. Sorry, your threads will hang a *little
bit* shorter. Call me if you want to ensure that your locks wait longer, I can
share some tricks with you.
2015-03-28 03:52:05 +01:00
Victor Stinner
e245231fab
Issue #22117 : Fix ssl to use _PyTime_t API on sock_timeout
...
I didn't notice that the ssl module uses private attributes of socket objects.
2015-03-28 03:00:46 +01:00
Victor Stinner
71694d5c8c
Issue #22117 : The socket module uses _PyTime_t timestamp for timeouts
2015-03-28 01:18:54 +01:00
Victor Stinner
95e9cef6f0
Issue #22117 : Write unit tests for _PyTime_AsTimeval()
...
* _PyTime_AsTimeval() now ensures that tv_usec is always positive
* _PyTime_AsTimespec() now ensures that tv_nsec is always positive
* _PyTime_AsTimeval() now returns an integer on overflow instead of raising an
exception
2015-03-28 01:26:47 +01:00
Victor Stinner
b7df3144ef
Issue #23618 , #22117 : refactor socketmodule.c
...
Move Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS inside internal_select_ex() to
prepare a switch to the _PyTime_t type and retry syscall on EINTR.
2015-03-27 22:59:32 +01:00
Victor Stinner
34dc0f46ae
Issue #22117 : The signal modules uses the new _PyTime_t API
...
* Add _PyTime_AsTimespec()
* Add unit tests for _PyTime_AsTimespec()
2015-03-27 18:19:03 +01:00
Victor Stinner
7181dec3f1
Issue #22117 : The gc module now uses _PyTime_t timestamp
2015-03-27 17:47:53 +01:00
Victor Stinner
a47b881d86
Issue #22117 : time.time() now uses the new _PyTime_t API
...
* Add _PyTime_GetSystemClockWithInfo()
2015-03-27 18:16:17 +01:00
Victor Stinner
4bfb460d88
Issue #22117 : time.monotonic() now uses the new _PyTime_t API
...
* Add _PyTime_FromNanoseconds()
* Add _PyTime_AsSecondsDouble()
* Add unit tests for _PyTime_AsSecondsDouble()
2015-03-27 22:27:24 +01:00
Victor Stinner
992c43fec9
Issue #22117 : Fix rounding in _PyTime_FromSecondsObject()
...
* Rename _PyTime_FromObject() to _PyTime_FromSecondsObject()
* Add _PyTime_AsNanosecondsObject() and _testcapi.pytime_fromsecondsobject()
* Add unit tests
2015-03-27 17:12:45 +01:00
Victor Stinner
cb29f0177c
Issue #22117 : Add a new Python timestamp format _PyTime_t to pytime.h
...
In practice, _PyTime_t is a number of nanoseconds. Its C type is a 64-bit
signed number. It's integer value is in the range [-2^63; 2^63-1]. In seconds,
the range is around [-292 years; +292 years]. In term of Epoch timestamp
(1970-01-01), it can store a date between 1677-09-21 and 2262-04-11.
The API has a resolution of 1 nanosecond and use integer number. With a
resolution on 1 nanosecond, 64-bit IEEE 754 floating point numbers loose
precision after 194 days. It's not the case with this API. The drawback is
overflow for values outside [-2^63; 2^63-1], but these values are unlikely for
most Python modules, except of the datetime module.
New functions:
- _PyTime_GetMonotonicClock()
- _PyTime_FromObject()
- _PyTime_AsMilliseconds()
- _PyTime_AsTimeval()
This change uses these new functions in time.sleep() to avoid rounding issues.
The new API will be extended step by step, and the old API will be removed step
by step. Currently, some code is duplicated just to be able to move
incrementally, instead of pushing a large change at once.
2015-03-27 13:31:18 +01:00
Serhiy Storchaka
632a77e6a3
Issue #22364 : Improved some re error messages using regex for hints.
2015-03-25 21:03:47 +02:00
Serhiy Storchaka
7665be6087
Issue #21802 : The reader in BufferedRWPair now is closed even when closing
...
writer failed in BufferedRWPair.close().
2015-03-24 23:21:57 +02:00
Victor Stinner
19276f184f
Issue #23654 : Fix faulthandler._stack_overflow() for the Intel C Compiler (ICC)
...
Issue #23654 : Turn off ICC's tail call optimization for the stack_overflow
generator. ICC turns the recursive tail call into a loop.
Patch written by Matt Frank.
2015-03-23 21:20:27 +01:00
Steve Dower
2ea51c98db
Closes #9445 : Removes detection of GetFinalPathNameByHandle
2015-03-20 21:49:12 -07:00
Steve Dower
ef42dae7fa
Issue #23765 : Remove IsBadStringPtr calls in ctypes
...
Also renames a local to avoid warnings about shadowing
2015-03-24 23:28:54 -07:00
Raymond Hettinger
fef9c1b368
Fix typo
2015-03-24 21:12:57 -07:00
Raymond Hettinger
8dbbae2e52
Minor code and comment cleanups.
2015-03-24 21:01:50 -07:00
Serhiy Storchaka
8be6be427d
Issue #21802 : The reader in BufferedRWPair now is closed even when closing
...
writer failed in BufferedRWPair.close().
2015-03-24 23:23:28 +02:00
Victor Stinner
91afbb6088
Issue #23753 : Move _Py_wstat() from Python/fileutils.c to Modules/getpath.c
...
I expected more users of _Py_wstat(), but in practice it's only used by
Modules/getpath.c. Move the function because it's not needed on Windows.
Windows uses PC/getpathp.c which uses the Win32 API (ex: GetFileAttributesW())
not the POSIX API.
2015-03-24 12:16:28 +01:00
Victor Stinner
f329878e74
Issue #23753 : Python doesn't support anymore platforms without stat() or
...
fstat(), these functions are always required.
Remove HAVE_STAT and HAVE_FSTAT defines, and stop supporting DONT_HAVE_STAT and
DONT_HAVE_FSTAT.
2015-03-24 10:27:50 +01:00
Raymond Hettinger
551350a79f
Improve and fix-up comments.
2015-03-24 00:19:53 -07:00
Raymond Hettinger
0f1451c8c0
Issue 23744: Minor speed-up for deque.__bool__().
2015-03-23 23:23:55 -07:00
Victor Stinner
d1f3a002c3
Merge 3.4 (faulthandler ICC)
2015-03-23 21:21:00 +01:00
Serhiy Storchaka
f07a4b663d
Issue #21526 : Tkinter now supports new boolean type in Tcl 8.5.
2015-03-23 00:47:45 +02:00
Victor Stinner
efde146b0c
Issue #23571 : _Py_CheckFunctionResult() now gives the name of the function
...
which returned an invalid result (result+error or no result without error) in
the exception message.
Add also unit test to check that the exception contains the name of the
function.
Special case: the final _PyEval_EvalFrameEx() check doesn't mention the
function since it didn't execute a single function but a whole frame.
2015-03-21 15:04:43 +01:00
Raymond Hettinger
6921c13bbb
Minor nit. Make the rotate() success/fail tests consistent.
2015-03-21 02:03:40 -07:00
Raymond Hettinger
ac13ad6a32
For safety, wait to decref deleted values until the deque state has been restored.
2015-03-21 01:53:16 -07:00
Raymond Hettinger
0f6f94778a
Fix minor formatting nits and remove unnecessary comment.
2015-03-21 01:42:10 -07:00
Raymond Hettinger
32ea16577d
Issue 23704: Add index(), copy(), and insert() to deques. Register deques as a MutableSequence.
2015-03-21 01:37:37 -07:00
Raymond Hettinger
39dadf7abf
Issue 23705: Improve the performance of __contains__ checks for deques.
2015-03-20 16:38:56 -07:00
Serhiy Storchaka
17d3a58e39
Issue #22832 : Tweaked parameter names for fcntl module to better match
...
official POSIX documentation. Updated the documenttion for Python 3.
Patch by Alex Shkop.
2015-03-20 20:04:21 +02:00
Victor Stinner
a453cd8d85
Issue #23715 : signal.sigwaitinfo() and signal.sigtimedwait() are now retried
...
when interrupted by a signal not in the *sigset* parameter, if the signal
handler does not raise an exception. signal.sigtimedwait() recomputes the
timeout with a monotonic clock when it is retried.
Remove test_signal.test_sigwaitinfo_interrupted() because sigwaitinfo() doesn't
raise InterruptedError anymore if it is interrupted by a signal not in its
sigset parameter.
2015-03-20 12:54:28 +01:00
Victor Stinner
f50e187724
Fix compiler warnings: comparison between signed and unsigned numbers
2015-03-20 11:32:24 +01:00
Victor Stinner
fbd6f9ed12
Issue #23696 : Chain ZipImportError to the OSError
2015-03-20 10:52:25 +01:00
Victor Stinner
99953006df
Issue #23709 , #23001 : ossaudiodev now uses Py_ssize_t for sizes instead of int
...
The module is now also "SSIZE_T clean" (for PyArg_Parse...() functions) since
it switched to Py_buffer ("y*" argument format).
2015-03-20 10:37:34 +01:00
Victor Stinner
716a74ea22
Issue #23001 : Fix typo
2015-03-20 10:24:18 +01:00
Serhiy Storchaka
8490f5acfe
Issue #23001 : Few functions in modules mmap, ossaudiodev, socket, ssl, and
...
codecs, that accepted only read-only bytes-like object now accept writable
bytes-like object too.
2015-03-20 09:00:36 +02:00
Victor Stinner
0eac13052c
Issue #23646 : Fix test_threading on Windows
2015-03-20 03:06:12 +01:00
Victor Stinner
9a8089b32a
Issue #23646 : Enhance precision of time.sleep() and socket timeout when
...
interrupted by a signal
Add a new _PyTime_AddDouble() function and remove _PyTime_ADD_SECONDS() macro.
The _PyTime_ADD_SECONDS only supported an integer number of seconds, the
_PyTime_AddDouble() has subsecond resolution.
2015-03-20 01:42:20 +01:00
Victor Stinner
4fa99cdb4c
Issue #23709 : The ossaudiodev module now retries read/write when interrupted by
...
a signal (PEP 475).
Use he new _Py_read() and _Py_write() functions.
2015-03-20 00:27:28 +01:00
Victor Stinner
54799672da
Issue #23708 : select.devpoll now retries its internal write() when interrupted
...
by a signal (EINTR).
Modify devpoll_flush() to use _Py_write() instead of calling directly write().
2015-03-19 23:33:09 +01:00
Victor Stinner
66aab0c4b5
Issue #23708 : Add _Py_read() and _Py_write() functions to factorize code handle
...
EINTR error and special cases for Windows.
These functions now truncate the length to PY_SSIZE_T_MAX to have a portable
and reliable behaviour. For example, read() result is undefined if counter is
greater than PY_SSIZE_T_MAX on Linux.
2015-03-19 22:53:20 +01:00
Victor Stinner
79d68f929d
Issue #23646 : If time.sleep() is interrupted by a signal, the sleep is now
...
retried with the recomputed delay, except if the signal handler raises an
exception (PEP 475).
Modify also test_signal to use a monotonic clock instead of the system clock.
2015-03-19 21:54:09 +01:00
Serhiy Storchaka
009b811d67
Removed unintentional trailing spaces in non-external and non-generated C files.
2015-03-18 21:53:15 +02:00
Victor Stinner
cb7e5f6f08
Merge 3.4 (tracemalloc typo)
2015-03-18 16:05:32 +01:00
Victor Stinner
444f124fcf
_tracemalloc.c: Fix typo
2015-03-18 16:05:18 +01:00
Victor Stinner
e371b3d21a
Fix compiler warning in mmapmodule.c (compare signed/unsigned integers)
2015-03-18 15:04:34 +01:00
Victor Stinner
5200f55024
Issue #19428 : Handle PyMarshal_Read*() errors in run_pyc_file()
...
Detect also earlier PyMarshal_Read*() errors in zipimport.
2015-03-18 13:56:25 +01:00
Victor Stinner
e42ccd2bfd
Issue #23694 : Enhance _Py_fopen(), it now raises an exception on error
...
* If fopen() fails, OSError is raised with the original filename object.
* The GIL is now released while calling fopen()
2015-03-18 01:39:23 +01:00
Victor Stinner
a555cfcb73
Issue #23694 : Enhance _Py_open(), it now raises exceptions
...
* _Py_open() now raises exceptions on error. If open() fails, it raises an
OSError with the filename.
* _Py_open() now releases the GIL while calling open()
* Add _Py_open_noraise() when _Py_open() cannot be used because the GIL is not
held
2015-03-18 00:22:14 +01:00
Victor Stinner
f024d263b4
Issue #23685 : Fix usage of PyMODINIT_FUNC in _json, _scproxy, nis, pyexpat
...
_codecs_cn, _codecs_hk, _codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw
modules.
pyexpat.c doesn't need to redeclare PyMODINIT_FUNC, it's already declared in
Include/pyport.h.
2015-03-17 17:48:27 +01:00
Victor Stinner
0c2fd89777
Revert changeset d927047b1d8eb87738676980a24930d053ba2150
...
Sorry, it was a mistake, the patch is still under review: issue #23646 .
2015-03-17 10:49:17 +01:00
Serhiy Storchaka
a60c2fe480
Issue #23641 : Cleaned out legacy dunder names from tests and docs.
...
Fixed 2 to 3 porting bug in pynche.ColorDB.
2015-03-12 21:56:08 +02:00
Victor Stinner
945c82eea3
test
2015-03-12 16:19:01 +01:00
Serhiy Storchaka
c2ccce791c
Issue #23641 : Cleaned out legacy dunder names from tests and docs.
...
Fixed 2 to 3 porting bug in pynche.ColorDB.
Added few tests for __truediv__, __floordiv__ and __matmul__.
2015-03-12 22:01:30 +02:00
Victor Stinner
95bb714ff7
Issue #23566 : enable(), register(), dump_traceback() and dump_traceback_later()
...
functions of faulthandler now accept file descriptors. Patch by Wei Wu.
2015-03-12 15:32:03 +01:00
Steve Dower
8acde7dcce
Issue #23524 : Change back to using Windows errors for _Py_fstat instead of the errno shim.
2015-03-07 18:14:07 -08:00
Victor Stinner
35a97c0bed
Issue #22524 : Fix os.scandir() for platforms which don't have a d_type field in
...
the dirent structure (ex: OpenIndiana).
2015-03-08 02:59:09 +01:00
Victor Stinner
6036e4431d
Issue #22524 : New os.scandir() function, part of the PEP 471: "os.scandir()
...
function -- a better and faster directory iterator". Patch written by Ben
Hoyt.
2015-03-08 01:58:04 +01:00
Victor Stinner
4a7cc88472
Issue #23571 : PyObject_Call(), PyCFunction_Call() and call_function() now
...
raise a SystemError if a function returns a result and raises an exception.
The SystemError is chained to the previous exception.
Refactor also PyObject_Call() and PyCFunction_Call() to make them more readable.
Remove some checks which became useless (duplicate checks).
Change reviewed by Serhiy Storchaka.
2015-03-06 23:35:27 +01:00
Steve Dower
d81431f587
Issue #23524 : Replace _PyVerify_fd function with calling _set_thread_local_invalid_parameter_handler on every thread.
2015-03-06 14:47:02 -08:00