Commit Graph

4845 Commits

Author SHA1 Message Date
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
Steve Dower
45fd95155f Merge from 3.5 2015-09-06 22:31:26 -07:00
Steve Dower
f35bd306ff Merge from 3.5.0 branch. 2015-09-06 22:27:42 -07:00
Serhiy Storchaka
56f6e76c68 Issue #15989: Fixed some scarcely probable integer overflows.
It is very unlikely that they can occur in real code for now.
2015-09-06 21:25:30 +03:00
Larry Hastings
714e49371b Issue #24305: Prevent import subsystem stack frames from being counted
by the warnings.warn(stacklevel=) parameter.
2015-09-06 00:39:37 -07:00
Victor Stinner
adfefa527a Issue #23517: Fix implementation of the ROUND_HALF_UP rounding mode in
datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp().
microseconds sign should be kept before rounding.
2015-09-04 23:57:25 +02:00
Victor Stinner
d05f49924d Merge 3.5 (create_stdio) 2015-09-04 17:30:48 +02:00
Victor Stinner
874dbe895d Merge 3.4 (create_stdio) 2015-09-04 17:29:57 +02:00
Victor Stinner
6fb5bae252 Fix race condition in create_stdio()
Issue #24891: Fix a race condition at Python startup if the file descriptor
of stdin (0), stdout (1) or stderr (2) is closed while Python is creating
sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set
to None if the creation of the object failed, instead of raising an OSError
exception. Initial patch written by Marco Paolini.
2015-09-04 17:27:49 +02:00
Victor Stinner
5786aef382 Don't abuse volatile keyword in pytime.c
Only use it on the most important number. This change fixes also a compiler
warning on modf().
2015-09-03 16:33:16 +02:00
Victor Stinner
29ee6745af Enhance _PyTime_AsTimespec()
Ensure that the tv_nsec field is set, even if the function fails
with an overflow.
2015-09-03 16:25:45 +02:00
Victor Stinner
fbb215cb24 Merge 3.5 (namereplace) 2015-09-03 16:20:01 +02:00
Victor Stinner
38b8ae0f5b Issue #24993: Handle import error in namereplace error handler
Handle PyCapsule_Import() failure (exception) in PyCodec_NameReplaceErrors():
return immedialty NULL.
2015-09-03 16:19:40 +02:00
Victor Stinner
00723e0353 Fix ast_for_atom()
Clear PyObject_Str() exception if it failed, ast_error() should not be called
with an exception set.
2015-09-03 12:57:11 +02:00
Victor Stinner
5a682c9ca5 Merge 3.5 (monotonic) 2015-09-03 00:15:23 +02:00