| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rework the code choosing BLAKE2 code paths from using the optimized
variant on all x86_64 machines to using it when SSSE3 or better
supported instructions sets are available.
Firstly, this solves the problem of using pure SSE2 code path on x86_64
machines. As reported in the bug, this code is slower than the reference
code on all tested x86_64 machines. Furthermore, on Athlon64 that lacks
SSSE3, it is even 2.5 times slower than the reference code! Checking
for SSSE3 therefore ensures that the optimized implementation will only
be used when it has a chance of performing better.
Secondly, this makes it possible to use SSSE3+ optimizations on 32-bit
x86 systems. This allows for even 2 times speed gain on modern 32-bit
x86 systems (tested in a 32-bit chroot).
|
|
|
|
|
|
|
|
|
|
| |
Fix the following Coverity warning:
>>> CID 1420038: Control flow issues (DEADCODE)
>>> Execution cannot reach this statement: "res = sem_trywait(self->han...".
321 res = sem_trywait(self->handle);
The deadcode was introduced by the commit
c872d39d324cd6f1a71b73e10406bbaed192d35f.
|
|
|
|
|
| |
integers. (#3947)
Bad remainder in divmod() in intermediate calculations caused an assertion failure.
|
| |
|
|
|
|
| |
semaphore immediately (#4078)
|
|
|
|
| |
zipimport.zipimporter object (GH-3986)
|
|
|
|
|
|
|
|
| |
* bpo-31819: Add AbstractEventLoop.sock_recv_into()
* Add NEWS
* Add doc
|
|
|
|
|
|
|
|
|
| |
more functions (#4026)
Fix timeout rounding in time.sleep(), threading.Lock.acquire() and
socket.socket.settimeout() to round correctly negative timeouts between -1.0 and
0.0. The functions now block waiting for events as expected. Previously, the
call was incorrectly non-blocking.
|
|
|
|
|
|
|
|
|
|
| |
bpo-31803: time.clock() and time.get_clock_info('clock') now emit a
DeprecationWarning warning.
Replace time.clock() with time.perf_counter() in tests and demos.
Remove also hasattr(time, 'monotonic') in test_time since time.monotonic()
is now always available since Python 3.5.
|
|
|
|
|
|
| |
Always pass -1, or INFTIM where defined, to the poll() system call when
a negative timeout is passed to the poll.poll([timeout]) method in the
select module. Various OSes throw an error with arbitrary negative
values.
|
|
|
|
| |
small negative value. (#4003)
|
|
|
|
|
| |
Freeze all the objects tracked by gc - move them to a permanent generation
and ignore all the future collections. This can be used before a POSIX
fork() call to make the gc copy-on-write friendly or to speed up collection.
|
|
|
|
|
|
|
|
| |
* Rewrite win_perf_counter() to only use integers internally.
* Add _PyTime_MulDiv() which compute "ticks * mul / div"
in two parts (int part and remaining) to prevent integer overflow.
* Clock frequency is checked at initialization for integer overflow.
* Enhance also pymonotonic() to reduce the precision loss on macOS
(mach_absolute_time() clock).
|
| |
|
|
|
|
|
|
| |
The _PyTime API handles detects overflow and is well tested.
Document that the signal will only be sent once if internal is equal
to zero.
|
|
|
| |
LoadLibrary("SHELL32") is not vulnerable to DLL hijacking.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
time.clock() and time.perf_counter() now use again C double
internally.
Remove also _PyTime_GetWinPerfCounterWithInfo(): use
_PyTime_GetPerfCounterDoubleWithInfo() instead on Windows.
|
|
|
|
|
| |
* Separated functions and constants descriptions in sections.
* Added a note about the limitations of timezone constants.
* Removed redundant lists from the module docstring.
|
|
|
|
| |
Element.text and Element.tail (#3924)
|
|
|
|
| |
more than once (GH-3944)
|
|
|
|
|
| |
* Add _PyTime_GetPerfCounter()
* Use _PyTime_GetPerfCounter() for -X importtime
|
|
|
|
|
|
| |
bpo-31701: On Windows, faulthandler.enable() now ignores MSC and COM
exceptions.
|
|
|
|
| |
(GH-3919)
|
|
|
|
| |
always return a list (#3840)
|
|
|
|
|
|
|
|
|
| |
See PEP 539 for details.
Highlights of changes:
- Add Thread Specific Storage (TSS) API
- Document the Thread Local Storage (TLS) API as deprecated
- Update code that used TLS API to use TSS API
|
| |
|
|
|
| |
Implementations of these operations are virtually identical.
|
| |
|
|
|
|
|
| |
when pass a string larger than 2 GiB.
Decrease memory requirements for Tcl's bigmem tests.
|
| |
|
|
|
|
|
| |
On macOS, use uuid_generate_time() instead of
uuid_generate_time_safe() of libuuid, since uuid_generate_time_safe()
is not available.
|
|
|
|
|
|
|
| |
bad zlib.decompress() (GH-3784)
While a rare potential failure (it requires swapping out zlib.decompress() itself and forcing it to return a non-bytes object), this change prevents a potential C-level assertion failure and instead substitutes it with an exception.
Thanks to Oren Milman for the patch.
|
| |
|
|
|
|
| |
bpo-11063, bpo-20519: avoid ctypes and improve import time for uuid.
|
|
|
|
| |
bad __abs__() method. (#3596)
|
| |
|
|
|
|
| |
iterators. (#1557)
|
| |
|
|
|
|
| |
case of a bad __dict__. (#3254)
|
|
|
| |
Python requires C implementations provide memmove, so we shouldn't need to check for it. The only place using this configure check was expat, where we can simply always define HAVE_MEMMOVE.
|
|
|
| |
now becames exhausted after advancing the groupby iterator.
|
|
|
|
| |
PyCData_setstate() isn't a dictionary. (#3255)
|
|
|
|
| |
received a bad encoder() argument. (#3643)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#3372)
* Maintain a list of BufferedWriter objects. Flush them on exit.
In Python 3, the buffer and the underlying file object are separate
and so the order in which objects are finalized matters. This is
unlike Python 2 where the file and buffer were a single object and
finalization was done for both at the same time. In Python 3, if
the file is finalized and closed before the buffer then the data in
the buffer is lost.
This change adds a doubly linked list of open file buffers. An atexit
hook ensures they are flushed before proceeding with interpreter
shutdown. This is addition does not remove the need to properly close
files as there are other reasons why buffered data could get lost during
finalization.
Initial patch by Armin Rigo.
* Use weakref.WeakSet instead of WeakKeyDictionary.
* Simplify buffered double-linked list types.
* In _flush_all_writers(), suppress errors from flush().
* Remove NEWS entry, use blurb.
* Take more care when flushing file buffers from atexit.
The previous implementation was not careful enough to avoid
causing issues in multi-threaded cases. Check for buf->ok
and buf->finalizing before actually doing the flush. Also,
increase the refcnt to ensure the object does not disappear.
|
| |
|
|
|
|
|
| |
(#3631)
Affected classes are bytearray, array, deque, defaultdict, count and repeat.
|