summaryrefslogtreecommitdiffstats
path: root/Modules/timemodule.c
Commit message (Collapse)AuthorAgeFilesLines
* timemodule.c: Cast PyUnicode_AsUTF8() to char* (#1294)Victor Stinner2017-04-261-1/+1
| | | | | | | | | | bpo-28769 changed PyUnicode_AsUTF8() return type from const char* to char* in Python 3.7, but tm_zone field type of the tm structure is char* on FreeBSD. Cast PyUnicode_AsUTF8() to char* in gettmarg() to fix the warning: Modules/timemodule.c:443:20: warning: assigning to 'char *' from 'const char *' discards qualifiers
* tmtotuple(): use time_t for gmtoff (#1276)Victor Stinner2017-04-241-3/+3
| | | | | | | timegm() return type is time_t, not int. Use time_t to prevent the following compiler warning on Windows: timemodule.c: warning C4244: '=': conversion from 'time_t' to 'int', possible loss of data
* Only define get_zone() and get_gmtoff() if needed (#1193)Victor Stinner2017-04-201-0/+2
| | | | | | | | | Only define the get_zone() and get_gmtoff() private functions in the time module if these functions are needed to initialize the module. The change fixes the following warnings on AIX: Modules/timemodule.c:1175:1: warning: 'get_gmtoff' defined but not used [-Wunused-function] Modules/timemodule.c:1164:1: warning: 'get_zone' defined but not used [-Wunused-function]
* Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE whereverSerhiy Storchaka2017-01-231-4/+2
| | | | possible. Patch is writen with Coccinelle.
* Fixes maximum usable length of buffer for formatting time zone in localtime().Steve Dower2016-12-141-1/+1
|\
| * Fixes maximum usable length of buffer for formatting time zone in localtime().Steve Dower2016-12-141-1/+1
| |
* | time_strptime() uses PyObject_Call()Victor Stinner2016-12-081-7/+13
|/ | | | | | Issue #28915: Use PyObject_Call() to pass a tuple of positional arguments, instead of relying on _PyObject_CallMethodId() weird behaviour to unpack the tuple.
* Replaced outdated macros _PyUnicode_AsString and _PyUnicode_AsStringAndSizeSerhiy Storchaka2016-11-201-1/+1
| | | | with PyUnicode_AsUTF8 and PyUnicode_AsUTF8AndSize.
* Issue #28148: Stop using localtime() and gmtime() in the time module.Alexander Belopolsky2016-09-281-41/+14
| | | | | | Introduced platform independent _PyTime_localtime API that is similar to POSIX localtime_r, but available on all platforms. Patch by Ed Schouten.
* more granular configure checks for clock_* functions (closes #28081)Benjamin Peterson2016-09-141-3/+11
|
* Closes #25283: Make tm_gmtoff and tm_zone available on all platforms.Alexander Belopolsky2016-09-121-33/+81
|
* Issue #22624: Python 3 requires clock() to buildVictor Stinner2016-07-081-0/+1
|
* Issue #25923: Added more const qualifiers to signatures of static and ↵Serhiy Storchaka2015-12-251-1/+1
| | | | private functions.
* Issue #25923: Added the const qualifier to static constant arrays.Serhiy Storchaka2015-12-251-2/+2
|
* Issue #25092: Fix datetime.strftime() failure when errno was already set to ↵Steve Dower2015-09-221-0/+3
| | | | EINVAL.
* Issue #25029: MemoryError in test_strptimeSteve Dower2015-09-091-13/+7
|
* Issue #24917: time_strftime() buffer over-read.Steve Dower2015-09-071-6/+10
|
* Backing out 09b62202d9b7; the tests fail on Linux, and it needs a re-think.Larry Hastings2015-09-061-12/+0
|
* Issue #24917: time_strftime() Buffer Over-read. Patch by John Leitch.Steve Dower2015-09-051-0/+12
|
* Issue 24244: Prevents termination when an invalid format string is ↵Steve Dower2015-05-221-7/+2
| | | | encountered on Windows.
* PEP 475: on EINTR, retry the function even if the timeout is equals to zeroVictor Stinner2015-03-301-1/+1
| | | | | | | | | Retry: * signal.sigtimedwait() * threading.Lock.acquire() * threading.RLock.acquire() * time.sleep()
* Issue #22117: Replace usage of _PyTime_ROUND_UP with _PyTime_ROUND_CEILINGVictor Stinner2015-03-301-3/+3
| | | | | All these functions only accept positive timeouts, so this change has no effect in practice.
* Issue #22117: Fix usage of _PyTime_AsTimeval()Victor Stinner2015-03-301-4/+1
| | | | | Add _PyTime_AsTimeval_noraise() function. Call it when it's not possible (or not useful) to raise a Python exception on overflow.
* Issue #22117: Add the new _PyTime_ROUND_FLOOR rounding method for the datetimeVictor Stinner2015-03-281-2/+2
| | | | | module. time.clock_settime() now uses this rounding method instead of _PyTime_ROUND_DOWN to handle correctly dates before 1970.
* Issue #22117: Use the _PyTime_t API for time.clock_settime()Victor Stinner2015-03-281-5/+5
| | | | Remove also the now unused _PyTime_AddDouble() function.
* Issue #22117: Write unit tests for _PyTime_AsTimeval()Victor Stinner2015-03-281-1/+4
| | | | | | | * _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
* Issue #22117: time.time() now uses the new _PyTime_t APIVictor Stinner2015-03-271-3/+5
| | | | * Add _PyTime_GetSystemClockWithInfo()
* Issue #22117: time.monotonic() now uses the new _PyTime_t APIVictor Stinner2015-03-271-3/+5
| | | | | | * Add _PyTime_FromNanoseconds() * Add _PyTime_AsSecondsDouble() * Add unit tests for _PyTime_AsSecondsDouble()
* Issue #22117: Fix rounding in _PyTime_FromSecondsObject()Victor Stinner2015-03-271-1/+1
| | | | | | * Rename _PyTime_FromObject() to _PyTime_FromSecondsObject() * Add _PyTime_AsNanosecondsObject() and _testcapi.pytime_fromsecondsobject() * Add unit tests
* Issue #22117: Add a new Python timestamp format _PyTime_t to pytime.hVictor Stinner2015-03-271-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Issue #23646: Fix test_threading on WindowsVictor Stinner2015-03-201-1/+1
|
* Issue #23646: Enhance precision of time.sleep() and socket timeout whenVictor Stinner2015-03-201-2/+2
| | | | | | | | 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.
* Issue #23646: If time.sleep() is interrupted by a signal, the sleep is nowVictor Stinner2015-03-191-51/+56
| | | | | | | 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.
* Revert changeset d927047b1d8eb87738676980a24930d053ba2150Victor Stinner2015-03-171-69/+49
| | | | Sorry, it was a mistake, the patch is still under review: issue #23646.
* testVictor Stinner2015-03-121-49/+69
|
* Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), ↵Steve Dower2014-11-221-13/+0
| | | | which will be used for the official 3.5 release.
* Issue #22592: Drop support of the Borland C compiler to build PythonVictor Stinner2014-10-221-9/+2
| | | | The distutils module still supports it to build extensions.
* Issue #22043: time.monotonic() is now always availableVictor Stinner2014-09-021-135/+6
| | | | | threading.Lock.acquire(), threading.RLock.acquire() and socket operations now use a monotonic clock, instead of the system clock, when a timeout is used.
* Issue #22043: Oops, fix perf_counter() on UNIX if no monotonic clock isVictor Stinner2014-08-291-2/+1
| | | | available (unlikely)
* Issue #22043: Simplify time.perf_counter() on WindowsVictor Stinner2014-08-291-30/+16
| | | | | | QueryPerformanceFrequency() cannot fail on Windows XP and later according to its documentation: raise an exception on error and drop the fallback to the system clock.
* Issue #22043: _PyTime_Init() now checks if the system clock works.Victor Stinner2014-08-291-1/+4
| | | | | | | | | Other changes: * The whole _PyTime API is private (not defined if Py_LIMITED_API is set) * _PyTime_gettimeofday_info() also returns -1 on error * Simplify PyTime_gettimeofday(): only use clock_gettime(CLOCK_REALTIME) or gettimeofday() on UNIX. Don't fallback to ftime() or time() anymore.
* Issue #22287: On UNIX, _PyTime_gettimeofday() now usesVictor Stinner2014-08-291-22/+0
| | | | | | clock_gettime(CLOCK_REALTIME) if available. As a side effect, Python now depends on the librt library on Solaris and on Linux (only with glibc older than 2.17).
* timemodule.c: Replace PyExc_IOError with PyExc_OSErrorVictor Stinner2014-07-311-5/+5
|
* Issue #19748: On AIX, time.mktime() now raises an OverflowError for yearVictor Stinner2014-02-211-0/+11
| | | | outsize range [1902; 2037].
* Issue #20320: select.select() and select.kqueue.control() now round the timeoutVictor Stinner2014-02-161-2/+2
| | | | | | aways from zero, instead of rounding towards zero. It should make test_asyncio more reliable, especially test_timeout_rounding() test.
* Issue #19634: time.strftime("%y") now raises a ValueError on Solaris when givenVictor Stinner2013-11-231-1/+1
| | | | a year before 1900.
* Issue #19634: Fix time_strftime() on AIX, format is a wchar_t* not a PyObject*Victor Stinner2013-11-181-2/+1
|
* Issue #19634: time.strftime("%y") now raises a ValueError on AIX when given aVictor Stinner2013-11-171-0/+14
| | | | year before 1900.
* Issue13674 Correct crash with strftime %y format under WindowsTim Golden2013-11-121-0/+7
|\
| * Issue13674 Correct crash with strftime %y format under WindowsTim Golden2013-11-121-0/+7
| |