| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Issue #26058: Add a new private version to the builtin dict type, incremented
at each dictionary creation and at each dictionary change.
Implementation of the PEP 509.
|
| |
|
| |
|
|
|
|
| |
types (#17884)
|
| |
|
| |
|
|
|
|
| |
Directly pass NULL rather than an empty string.
|
| |
|
| |
|
|
|
|
| |
positional-only and keyword parameters in the same function.
|
|\
| |
| |
| | |
format unit.
|
| |
| |
| |
| | |
format unit.
|
|\ \
| |/
| |
| | |
in PyArg_ParseTuple().
|
| |
| |
| |
| | |
in PyArg_ParseTuple().
|
| | |
|
| |
| |
| |
| | |
unscathed to the C-defined function. Now it is converted to exact dict.
|
| | |
|
| |
| |
| |
| | |
Try to debug random failure on buildbots.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Issue #26530:
* Add C functions _PyTraceMalloc_Track() and _PyTraceMalloc_Untrack() to track
memory blocks using the tracemalloc module.
* Add _PyTraceMalloc_GetTraceback() to get the traceback of an object.
|
| |
| |
| |
| |
| | |
Issue #26563: Debug hooks on Python memory allocators now raise a fatal error
if functions of the PyMem_Malloc() family are called without holding the GIL.
|
| |
| |
| |
| |
| | |
Issue #26558: The debug hook of PyObject_Malloc() now checks that the GIL is
held when the function is called.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Issue #26516:
* Add PYTHONMALLOC environment variable to set the Python memory
allocators and/or install debug hooks.
* PyMem_SetupDebugHooks() can now also be used on Python compiled in release
mode.
* The PYTHONMALLOCSTATS environment variable can now also be used on Python
compiled in release mode. It now has no effect if set to an empty string.
* In debug mode, debug hooks are now also installed on Python memory allocators
when Python is configured without pymalloc.
|
|\ \
| |/
| |
| | |
of PyArg_Parse*() functions.
|
| |
| |
| |
| | |
of PyArg_Parse*() functions.
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Filter values which would overflow when converted to a C time_t type.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Known limitations of the current implementation:
- documentation changes are incomplete
- there's a reference leak I haven't tracked down yet
The leak is most visible by running:
./python -m test -R3:3 test_importlib
However, you can also see it by running:
./python -X showrefcount
Importing the array or _testmultiphase modules, and
then deleting them from both sys.modules and the local
namespace shows significant increases in the total
number of active references each cycle. By contrast,
with _testcapi (which continues to use single-phase
initialisation) the global refcounts stabilise after
a couple of cycles.
|
| | |
|
| |
| |
| |
| | |
docstrings.
|
| |
| |
| |
| |
| | |
Fix also _Py_InitializeEx_Private(): initialize time before initializing
import, import_init() uses the _PyTime API (for thread locks).
|
| |
| |
| |
| |
| |
| | |
_PyTime_AsMicroseconds() rounding.
Add also unit tests.
|
| |
| |
| |
| | |
Use _PyTime_ROUND_FLOOR and _PyTime_ROUND_CEILING instead.
|
| |
| |
| |
| | |
Add also more tests for ROUNd_FLOOR.
|
| |
| |
| |
| |
| | |
Add _PyTime_AsTimeval_noraise() function. Call it when it's not possible (or
not useful) to raise a Python exception on overflow.
|
| |
| |
| |
| |
| | |
* Remove _PyTime_gettimeofday()
* Add _PyTime_GetSystemClock()
|
| |
| |
| |
| |
| | |
module. time.clock_settime() now uses this rounding method instead of
_PyTime_ROUND_DOWN to handle correctly dates before 1970.
|
| |
| |
| |
| |
| |
| |
| | |
* _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
|
| |
| |
| |
| |
| | |
* Add _PyTime_AsTimespec()
* Add unit tests for _PyTime_AsTimespec()
|
| |
| |
| |
| |
| |
| | |
* Add _PyTime_FromNanoseconds()
* Add _PyTime_AsSecondsDouble()
* Add unit tests for _PyTime_AsSecondsDouble()
|
| |
| |
| |
| |
| |
| | |
* Rename _PyTime_FromObject() to _PyTime_FromSecondsObject()
* Add _PyTime_AsNanosecondsObject() and _testcapi.pytime_fromsecondsobject()
* Add unit tests
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|