| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
I forgot to rename it in my previous refactoring of pytime.c.
 | 
| | 
| 
| 
|  | 
compiling AST from Python objects.
 | 
| |\   | 
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
This avoids possible buffer overreads when int(), float(), compile(), exec()
and eval() are passed bytes-like objects. Similar code is removed from the
complex() constructor, where it was not reachable.
Patch by John Leitch, Serhiy Storchaka and Martin Panter.
 | 
| | | 
| | 
| | 
| | 
| | 
| |  | 
requested name doesn't exist in globals: clear the KeyError exception before
calling PyObject_GetItem(). Fail also if the raised exception is not a
KeyError.
 | 
| |\ \  
| |/   | 
 | 
| | | 
| | 
| | 
| | 
| | 
| |  | 
This changes the main documentation, doc strings, source code comments, and a
couple error messages in the test suite. In some cases the word was removed
or edited some other way to fix the grammar.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Add "#ifdef WITH_THREAD" around cals to:
* PyGILState_Check()
* _PyImport_AcquireLock()
* _PyImport_ReleaseLock()
 | 
| |\ \  
| |/   | 
 | 
| | | 
| | 
| | 
| |  | 
Also factored out some test cases into a new PtyTests class.
 | 
| |\ \  
| |/   | 
 | 
| | |  | 
 | 
| |\ \  
| |/  
| |   
| |    | 
longer formatted twice.
 | 
| | | 
| | 
| | 
| |  | 
longer formatted twice.
 | 
| |\ \  
| |/   | 
 | 
| | | 
| | 
| | 
| | 
| |  | 
getentropy() is blocking, whereas os.urandom() should not block. getentropy()
is supported since Solaris 11.3.
 | 
| | | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| | | 
| | 
| | 
| |  | 
the line number and col offset of the AST node (closes #25131)
 | 
| | | 
| | 
| | 
| | 
| |  | 
_PyTime_Divide() rounding was wrong: copy code from Python default which has
now much better unit tests.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| | | 
| | 
| | 
| |  | 
import_init() imports the "_imp" module, not the "imp" module.
 | 
| | |  | 
 | 
| |\ \   | 
 | 
| | | | 
| | | 
| | | 
| | |  | 
by the warnings.warn(stacklevel=) parameter.
 | 
| |\ \ \  
| | |/  
| |/|    | 
 | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | | 
| | |  | 
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.
 | 
| | | | 
| | | 
| | | 
| | |  | 
Patch by Louis Dassy.
 | 
| | | | 
| | | 
| | | 
| | | 
| | |  | 
Handle PyCapsule_Import() failure (exception) in PyCodec_NameReplaceErrors():
return immedialty NULL.
 | 
| | | | 
| | | 
| | | 
| | | 
| | |  | 
I was not supposed to commit the function with the name pymonotonic_new(). I
forgot to rename it.
 | 
| | |/  
|/|   
| |   
| |   
| |   
| |   
| |   
| |   
| |   
| |    | 
Don't check anymore at runtime that the monotonic clock doesn't go backward.
Yes, it happens. It occurs sometimes each month on a Debian buildbot slave
running in a VM.
The problem is that Python cannot do anything useful if a monotonic clock goes
backward. It was decided in the PEP 418 to not fix the system, but only expose
the clock provided by the OS.
 | 
| | |  | 
 | 
| | |  | 
 | 
| | | 
| | 
| | 
| |  | 
is disabled.  Patch by Petr Viktorin.
 | 
| | | 
| | 
| | 
| | 
| | 
| |  | 
ImportError if __name__ is not defined on a package.
Thanks to Armin Rigo for the bug report and diagnosing the cause.
 | 
| | |  | 
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
See the latest version of getrandom() manual page:
http://man7.org/linux/man-pages/man2/getrandom.2.html#NOTES
    The behavior when a call to getrandom() that is blocked while reading from
    /dev/urandom is interrupted by a signal handler depends on the
    initialization state of the entropy buffer and on the request size, buflen.
    If the entropy is not yet initialized, then the call will fail with the
    EINTR error.  If the entropy pool has been initialized and the request size
    is large (buflen > 256), the call either succeeds, returning a partially
    filled buffer, or fails with the error EINTR.  If the entropy pool has been
    initialized and the request size is small (buflen <= 256), then getrandom()
    will not fail with EINTR.  Instead, it will return all of the bytes that
    have been requested.
Note: py_getrandom() calls getrandom() with flags=0.
 | 
| | |  | 
 | 
| | |  | 
 | 
| | |  | 
 | 
| | |  | 
 | 
| | |  | 
 | 
| | |  | 
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Summary of changes:
1. Coroutines now have a distinct, separate from generators
   type at the C level: PyGen_Type, and a new typedef PyCoroObject.
   PyCoroObject shares the initial segment of struct layout with
   PyGenObject, making it possible to reuse existing generators
   machinery.  The new type is exposed as 'types.CoroutineType'.
   As a consequence of having a new type, CO_GENERATOR flag is
   no longer applied to coroutines.
2. Having a separate type for coroutines made it possible to add
   an __await__ method to the type.  Although it is not used by the
   interpreter (see details on that below), it makes coroutines
   naturally (without using __instancecheck__) conform to
   collections.abc.Coroutine and collections.abc.Awaitable ABCs.
   [The __instancecheck__ is still used for generator-based
   coroutines, as we don't want to add __await__ for generators.]
3. Add new opcode: GET_YIELD_FROM_ITER.  The opcode is needed to
   allow passing native coroutines to the YIELD_FROM opcode.
   Before this change, 'yield from o' expression was compiled to:
      (o)
      GET_ITER
      LOAD_CONST
      YIELD_FROM
   Now, we use GET_YIELD_FROM_ITER instead of GET_ITER.
   The reason for adding a new opcode is that GET_ITER is used
   in some contexts (such as 'for .. in' loops) where passing
   a coroutine object is invalid.
4. Add two new introspection functions to the inspec module:
   getcoroutinestate(c) and getcoroutinelocals(c).
5. inspect.iscoroutine(o) is updated to test if 'o' is a native
   coroutine object.  Before this commit it used abc.Coroutine,
   and it was requested to update inspect.isgenerator(o) to use
   abc.Generator; it was decided, however, that inspect functions
   should really be tailored for checking for native types.
6. sys.set_coroutine_wrapper(w) API is updated to work with only
   native coroutines.  Since types.coroutine decorator supports
   any type of callables now, it would be confusing that it does
   not work for all types of coroutines.
7. Exceptions logic in generators C implementation was updated
   to raise clearer messages for coroutines:
   Before: TypeError("generator raised StopIteration")
   After: TypeError("coroutine raised StopIteration")
 | 
| |\ \  
| |/   | 
 | 
| | |  | 
 | 
| |\ \  
| |/  
| |   
| |    | 
Patch by Michael Ensslin.
 | 
| | | 
| | 
| | 
| |  | 
Patch by Michael Ensslin.
 | 
| |\ \  
| |/   | 
 | 
| | |  | 
 |