Commit Graph

4884 Commits

Author SHA1 Message Date
Victor Stinner f7d2471260 Merge 3.5 (sys.setrecursionlimit) 2015-10-13 00:16:07 +02:00
Victor Stinner 50856d5ae7 sys.setrecursionlimit() now raises RecursionError
Issue #25274: sys.setrecursionlimit() now raises a RecursionError if the new
recursion limit is too low depending at the current recursion depth. Modify
also the "lower-water mark" formula to make it monotonic. This mark is used to
decide when the overflowed flag of the thread state is reset.
2015-10-13 00:11:21 +02:00
Victor Stinner bc5b80bac1 Close #24784: Fix compilation without thread support
Add "#ifdef WITH_THREAD" around cals to:

* PyGILState_Check()
* _PyImport_AcquireLock()
* _PyImport_ReleaseLock()
2015-10-11 09:54:42 +02:00
Victor Stinner 92f0113701 Close #24784: Fix compilation without thread support
Add "#ifdef WITH_THREAD" around cals to:

* PyGILState_Check()
* _PyImport_AcquireLock()
* _PyImport_ReleaseLock()
2015-10-11 09:54:42 +02:00
Martin Panter 5344da5c0d Issue #24402: Merge input() fix from 3.5 2015-10-10 02:09:41 +00:00
Martin Panter e02f8fc44d Issue #24402: Merge input() fix from 3.4 into 3.5 2015-10-10 01:55:23 +00:00
Martin Panter c9a6ab56cf Issue #24402: Fix input() when stdout.fileno() fails; diagnosed by Eryksun
Also factored out some test cases into a new PtyTests class.
2015-10-10 01:25:38 +00:00
Raymond Hettinger bd5f0e8c1c Hoist constant expression out of the inner loop. 2015-10-09 01:34:08 -04:00
Raymond Hettinger 5098b58381 Make comparison more consistent 2015-10-09 00:42:47 -04:00
Martin Panter c2432f6edb One more typo in a comment 2015-10-07 11:15:15 +00:00
Martin Panter 585a6acfef Merge typo fixes from 3.5 2015-10-07 11:13:55 +00:00
Martin Panter 3f930dcd87 Merge typo fixes from 3.4 into 3.5 2015-10-07 11:01:47 +00:00
Martin Panter 9955a373a8 Various minor typos in documentation and comments 2015-10-07 10:26:23 +00:00
Victor Stinner 13f7fc5771 Update importlib_external.h 2015-10-01 22:06:54 +02:00
Serhiy Storchaka 0b40aab6f0 Issue #25280: Import trace messages emitted in verbose (-v) mode are no
longer formatted twice.
2015-10-01 11:40:22 +03:00
Serhiy Storchaka f731bc09fa Issue #25280: Import trace messages emitted in verbose (-v) mode are no
longer formatted twice.
2015-10-01 11:08:50 +03:00
Victor Stinner 0e25a8f225 Merge 3.5 2015-10-01 10:01:31 +02:00
Victor Stinner 861f067201 Merge 3.4 (os.urandom) 2015-10-01 10:00:23 +02:00
Victor Stinner 78cc2e8968 Issue #25003: os.urandom() doesn't use getentropy() on Solaris because
getentropy() is blocking, whereas os.urandom() should not block. getentropy()
is supported since Solaris 11.3.
2015-10-01 09:59:32 +02:00
Victor Stinner 4d45be776c Merge 3.5 2015-10-01 09:51:02 +02:00
Victor Stinner bae2d6203f Issue #25003: On Solaris 11.3 or newer, os.urandom() now uses the getrandom()
function instead of the getentropy() function. The getentropy() function is
blocking to generate very good quality entropy, os.urandom() doesn't need such
high-quality entropy.
2015-10-01 09:47:30 +02:00
Victor Stinner b7a8af20ff Fix _PyTime_AsTimevalStruct_impl() on OpenBSD
On the x86 OpenBSD 5.8 buildbot, the integer overflow check is ignored. Copy
the tv_sec variable into a Py_time_t variable instead of "simply" casting it to
Py_time_t, to fix the integer overflow check.
2015-10-01 08:44:03 +02:00
Victor Stinner c29f399e7e Backout change 28d3bcb1bad6: "Try to fix _PyTime_AsTimevalStruct_impl() on
OpenBSD", I'm not sure that the change was really needed. I read the test
result of an old build because the OpenBSD was 100 builds late.
2015-09-30 22:50:12 +02:00
Victor Stinner c51d244fc9 Issue #25171: Fix compilation issue on OpenBSD in random.c
Patch written by Remi Pointel.
2015-09-30 22:06:51 +02:00
Victor Stinner 449b271799 Issue #18174: Explain why is_valid_fd() uses dup() instead of fstat() 2015-09-29 13:59:50 +02:00
Victor Stinner 2bfed53b88 Try to fix _PyTime_AsTimevalStruct_impl() on OpenBSD
It looks like the check for integer overflow doesn't work on x86 OpenBSD 5.8.
2015-09-29 13:41:46 +02:00
Benjamin Peterson 00d4442979 merge 3.5 (#25131) 2015-09-25 22:44:55 -07:00
Benjamin Peterson 58b53953f8 make opening brace of container literals and comprehensions correspond to the line number and col offset of the AST node (closes #25131) 2015-09-25 22:44:43 -07:00
Brett Cannon 1dae0c68dd Issue #25186: Remove duplicated function from importlib._bootstrap_external 2015-09-25 13:05:13 -07:00
Eric V. Smith 1e5fcc3dea Fixed error creation if the problem is an empty expression in an f-string: use ast_error instead of PyErr_SetString. 2015-09-24 08:52:04 -04:00
Eric V. Smith 1d44c41b0c Move f-string compilation of the expression earlier, before the conversion character and format_spec are checked. This allows for error messages that more closely match what a user would expect. 2015-09-23 07:49:00 -04:00
Eric V. Smith 5567f89c6f Issue #24779: Remove unused rawmode parameter to unicode_decode. 2015-09-21 13:36:09 -04:00
Eric V. Smith 235a6f0984 Issue #24965: Implement PEP 498 "Literal String Interpolation". Documentation is still needed, I'll open an issue for that. 2015-09-19 14:51:32 -04:00
Victor Stinner 3abf44e48f Issue #25003: On Solaris 11.3 or newer, os.urandom() now uses the getrandom()
function instead of the getentropy() function. The getentropy() function is
blocking to generate very good quality entropy, os.urandom() doesn't need such
high-quality entropy.
2015-09-18 15:38:37 +02:00
Victor Stinner ec26f83f2e Issue #25155: Fix _PyTime_Divide() rounding
_PyTime_Divide() rounding was wrong: copy code from Python default which has
now much better unit tests.
2015-09-18 14:21:14 +02:00
Victor Stinner 9a8b177e60 Issue #25155: Add _PyTime_AsTimevalTime_t() function
On Windows, the tv_sec field of the timeval structure has the type C long,
whereas it has the type C time_t on all other platforms. A C long has a size of
32 bits (signed inter, 1 bit for the sign, 31 bits for the value) which is not
enough to store an Epoch timestamp after the year 2038.

Add the _PyTime_AsTimevalTime_t() function written for datetime.datetime.now():
convert a _PyTime_t timestamp to a (secs, us) tuple where secs type is time_t.
It allows to support dates after the year 2038 on Windows.

Enhance also _PyTime_AsTimeval_impl() to detect overflow on the number of
seconds when rounding the number of microseconds.
2015-09-18 13:36:17 +02:00
Victor Stinner 1e2b6882fc Issue #25155: Add _PyTime_AsTimevalTime_t() function
On Windows, the tv_sec field of the timeval structure has the type C long,
whereas it has the type C time_t on all other platforms. A C long has a size of
32 bits (signed inter, 1 bit for the sign, 31 bits for the value) which is not
enough to store an Epoch timestamp after the year 2038.

Add the _PyTime_AsTimevalTime_t() function written for datetime.datetime.now():
convert a _PyTime_t timestamp to a (secs, us) tuple where secs type is time_t.
It allows to support dates after the year 2038 on Windows.

Enhance also _PyTime_AsTimeval_impl() to detect overflow on the number of
seconds when rounding the number of microseconds.
2015-09-18 13:23:02 +02:00
Victor Stinner 3e30fd7c59 Merge 3.5 (imp/_imp) 2015-09-18 09:12:08 +02:00
Victor Stinner cd6e69439c Issue #25160: Fix import_init() comments and messages
import_init() imports the "_imp" module, not the "imp" module.
2015-09-18 09:11:57 +02:00
Benjamin Peterson 7920b7063d merge 3.5 (#25060) 2015-09-10 21:11:26 -07:00
Benjamin Peterson b685515039 compute stack effect of BUILD_MAP correctly (closes #25060) 2015-09-10 21:02:39 -07:00
Victor Stinner 51b9398444 pytime: oops, fix typos on Windows 2015-09-10 16:00:06 +02:00
Victor Stinner c60542b12b pytime: add _PyTime_check_mul_overflow() macro to avoid undefined behaviour
Overflow test in test_FromSecondsObject() fails on FreeBSD 10.0 buildbot which
uses clang. clang implements more aggressive optimization which gives
different result than GCC on undefined behaviours.

Check if a multiplication will overflow, instead of checking if a
multiplicatin had overflowed, to avoid undefined behaviour.

Add also debug information if the test on overflow fails.
2015-09-10 15:55:07 +02:00
Victor Stinner ff0ed3e71c New try to fix test_time.test_AsSecondsDouble() on x86 buildbots.
Use volatile keyword in _PyTime_AsSecondsDouble()
2015-09-10 13:25:17 +02:00
Victor Stinner 1efbebaac2 Try to fix test_time.test_AsSecondsDouble() on "x86 Gentoo Non-Debug with X 3.x" buildbot
Use volatile keyword in _PyTime_Round()
2015-09-10 11:48:00 +02:00
Victor Stinner 9c72f9b30a Fix test_time on Windows
* Filter values which would overflow on conversion to the C long type
  (for timeval.tv_sec).
* Adjust also the message of OverflowError on PyTime conversions
* test_time: add debug information if a timestamp conversion fails
2015-09-10 09:10:14 +02:00
Victor Stinner 3e2c8d84c6 test_time: rewrite PyTime API rounding tests
Drop all hardcoded tests. Instead, reimplement each function in Python, usually
using decimal.Decimal for the rounding mode.

Add much more values to the dataset. Test various timestamp units from
picroseconds to seconds, in integer and float.

Enhance also _PyTime_AsSecondsDouble().
2015-09-09 22:32:48 +02:00
Victor Stinner 9ae47dfbd9 pytime: add _PyTime_Round() helper to factorize code 2015-09-09 22:28:58 +02:00
Victor Stinner ce6aa749b4 Make _PyTime_RoundHalfEven() private again 2015-09-09 22:28:09 +02:00
Victor Stinner 7667f58151 Issue #23517: fromtimestamp() and utcfromtimestamp() methods of
datetime.datetime now round microseconds to nearest with ties going to nearest
even integer (ROUND_HALF_EVEN), as round(float), instead of rounding towards
-Infinity (ROUND_FLOOR).

pytime API: replace _PyTime_ROUND_HALF_UP with _PyTime_ROUND_HALF_EVEN. Fix
also _PyTime_Divide() for negative numbers.

_PyTime_AsTimeval_impl() now reuses _PyTime_Divide() instead of reimplementing
rounding modes.
2015-09-09 01:02:23 +02:00