| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
(cherry picked from commit a8eb58546b37a7cd5f332f019bb07388f5212c2d)
Co-authored-by: A. Jesse Jiryu Davis <jesse@emptysquare.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(GH-5337) (#6536)
When an unawaited coroutine is collected very late in shutdown --
like, during the final GC at the end of PyImport_Cleanup -- then it
was triggering an interpreter abort, because we'd try to look up the
"warnings" module and not only was it missing (we were prepared for
that), but the entire module system was missing (which we were not
prepared for).
I've tried to fix this at the source, by making the utility function
get_warnings_attr robust against this in general. Note that it already
has the convention that it can return NULL without setting an error,
which is how it signals that the attribute it was asked to fetch is
missing, and that all callers already check for NULL returns.
There's a similar check for being late in shutdown at the top of
warn_explicit, which might be unnecessary after this fix, but I'm not
sure so I'm going to leave it..
(cherry picked from commit dba976b8a28d6e5daa66ef31a6a7c694a9193f6a)
Co-authored-by: Nathaniel J. Smith <njs@pobox.com>
|
|
|
|
|
|
|
| |
(GH-7269)
(cherry picked from commit a5c42284e69fb309bdd17ee8c1c120d1be383012)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
The hash implementation casts the input pointer to uint64_t* and directly reads
from this, which may cause unaligned accesses. Use memcpy() instead so this code
will not crash with SIGBUS on sparc.
https://bugs.gentoo.org/show_bug.cgi?id=636400
(cherry picked from commit 1e2ec8a996daec65d8d5a3d43b66a9909c6d0653)
Co-authored-by: Rolf Eike Beer <eike@sf-mail.de>
|
|
|
|
|
|
| |
(GH-6604)
(cherry picked from commit e9d9494d6b2a5e0c2d48d22c7f0d5e95504b4f7e)
|
|
|
|
|
| |
(cherry picked from commit 3a9ccee0e5dbf7d67f5ab79f6095755969db117c)
Co-authored-by: Marcel Plch <gmarcel.plch@gmail.com>
|
|
|
|
|
| |
(cherry picked from commit 0c1c4563a65ac451021d927058e4f25013934eb2)
Co-authored-by: INADA Naoki <methane@users.noreply.github.com>
|
|
|
|
|
|
| |
when __aenter__() or __aexit__() return non-awaitable object.
(cherry picked from commit a68f2f0578bbf812fa2264d0e0bb388340d6e230)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
|
|
|
|
|
|
| |
(GH-6321)
(cherry picked from commit a95d98607efe0c43475b354543e49bf8e240bc6f)
|
|
|
|
|
|
| |
(GH-6154). (GH-6199)
(cherry picked from commit b9744e924ca07ba7db977e5958b91cd8db565632)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fstat may block for long time if the file descriptor is on a
non-responsive NFS server, hanging all threads. Most fstat() calls are
handled by _Py_fstat(), releasing the GIL internally, but but
_Py_fstat_noraise() does not release the GIL, and most calls release the
GIL explicitly around it.
This patch fixes last 2 calls to _Py_fstat_no_raise(), avoiding hangs
when calling:
- mmap.mmap()
- os.urandom()
- random.seed()
(cherry picked from commit 4484f9dca9149da135bbae035f10a50d20d1cbbb)
Co-authored-by: Nir Soffer <nirsof@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
(GH-6060)
and remove redundant code.
(cherry picked from commit 67ee07795bcd84b679c000780212d4d81a1490a3)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
(cherry picked from commit 9e94c0d3c78d1bc582c865240ed9353fe9689b2a)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
|
|
|
|
|
| |
(#5504)" (#5911)
This reverts commit a71397fb6603d0fe673acd7765c74699cd28fe7b.
|
|
|
|
|
|
|
| |
This function expects the destination buffer size to be given
in wide characters, not bytes.
(cherry picked from commit b3b4a9d3001f1fc7df8efcccdce081de54fa5eab)
Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
(GH-5563)
Fix a rare but potential pre-exec child process deadlock in subprocess on POSIX systems when marking file descriptors inheritable on exec in the child process. This bug appears to have been introduced in 3.4 with the inheritable file descriptors support.
This also changes Python/fileutils.c `set_inheritable` to use the "slow" two `fcntl` syscall path instead of the "fast" single `ioctl` syscall path when asked to be async signal safe (by way of being asked not to raise exceptions). `ioctl` is not a POSIX async-signal-safe approved function.
ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
(cherry picked from commit c1e46e94de38a92f98736af9a42d89c3975a9919)
Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
| |
Fix typos found by codespell in docs, docstrings, and comments.
Fixes for the following files were in post-3.6 code and not backported:
Lib/ctypes/_aix.py (new), Lib/test/test_concurrent_futures.py,
Modules/_asynciomodule.c, Modules/_pickle.c, Objects/obmalloc.c.
(cherry picked from commit c3d9508ff22ece9a96892b628dd5813e2fb0cd80)
|
|
|
|
|
|
|
|
|
|
| |
* Make sure ``__spec__.loader`` matches ``__loader__`` for namespace packages.
* Make sure ``__spec__.origin` matches ``__file__`` for namespace packages.
https://bugs.python.org/issue32303
https://bugs.python.org/issue32305.
(cherry picked from commit bbbcf8693b876daae4469765aa62f8924f39a7d2)
Co-authored-by: Barry Warsaw <barry@python.org>
|
|
|
|
|
|
|
|
| |
Clarify that the level argument is used to determine whether to
perform absolute or relative imports: 0 is absolute, while a positive number
is the number of parent directories to search relative to the current module.
(cherry picked from commit 461d225b195eec5269f317323b41115516144c41)
Co-authored-by: oldk <oldk1331@users.noreply.github.com>
|
|
|
|
|
| |
The comment for PyThread_allocate_lock says "It has too be implemented ...".
There was an extra "o" in ".. to be implemented.."
(cherry picked from commit 6027802ca7fae118bce6afead51d01a174600d40)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On FreeBSD and Solaris, os.strerror() now always decode the byte
string from the current locale encoding, rather than using
ASCII/surrogateescape in some cases.
Changes:
* Add _Py_DecodeLocaleEx() and _Py_EncodeLocaleEx() which has an
additional current_locale parameter.
* PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize() and
* PyUnicode_EncodeLocale() now always use the current locale
* encoding, instead of using Py_DecodeLocale()/Py_EncodeLocale().
* Document encoding in Py_DecodeLocale() and Py_EncodeLocale()
documentations.
* Add USE_FORCE_ASCII define to not define
decode_ascii_surrogateescape() on Android.
|
|
|
|
|
|
|
|
|
|
| |
* Add _Py_GetLocaleconvNumeric() function: decode decimal_point and
thousands_sep fields of localeconv() from the LC_NUMERIC encoding,
rather than decoding from the LC_CTYPE encoding.
* Modify locale.localeconv() and "n" formatter of str.format() (for
int, float and complex to use _Py_GetLocaleconvNumeric()
internally.
(cherry picked from commit cb064fc2321ce8673fe365e9ef60445a27657f54)
|
|
|
| |
(cherry picked from commit 65f2a6dcc2bc28a8566b74c8e9273f982331ec48)
|
|
|
|
| |
It was introduced in bpo-27169.
(cherry picked from commit bd6ec4d79e8575df3d08f8a89ba721930032714c)
|
|
|
| |
Fix a compiler warning.
|
|
|
|
|
|
|
| |
It no longer spends much time doing complex calculations and no
longer consumes much memory for creating large constants that will
be dropped later.
This fixes also bpo-21074.
|
|
|
|
|
|
| |
time. (GH-4880) (#4882)
This fixes also bpo-22091..
(cherry picked from commit 3325a6780c81f1ea51190370b5454879c4862a37)
|
|
|
|
| |
sys.flags.hash_randomization is now properly set to 0 when hash
randomization is turned off by PYTHONHASHSEED=0.
|
|
|
|
|
|
|
|
|
| |
Previously, CO_NOFREE was set in the compiler, which meant
it could end up being set incorrectly when code objects
were created directly. Setting it in the constructor based
on freevars and cellvars ensures it is always accurate,
regardless of how the code object is defined.
(cherry picked from commit 078f1814f1a4413a2a0fdb8cf4490ee0fc98ef34)
|
|
|
| |
(cherry picked from commit a561862048555d555fa4850eaf832ae5474c7e1f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When PyGILState_Ensure() is called in a non-Python thread before
PyEval_InitThreads(), only call PyEval_InitThreads() after calling
PyThreadState_New() to fix a crash.
Add an unit test in test_embed.
Enhance also embedded tests, backport from master:
* Add test_pre_initialization_api()
* Set PYTHONIOENCODING environment variable in
test_forced_io_encoding()
(cherry picked from commit b4d1e1f7c1af6ae33f0e371576c8bcafedb099db)
|
|
|
|
|
|
|
|
| |
TYPE_INT64 code from marshal." (GH-4381) (#4405)
Simplify the reverted code.
This reverts commit e9bbe8b87ba2874efba0474af5cc7d5941dbf742.
(cherry picked from commit 00987f6230fcdbecc8d9ab4b2b9fae8f99a1a4a9)
|
|
|
|
|
|
|
|
|
|
|
|
| |
(PyTraceBack_Print()). (GH-4289) (#4406)
* Setting sys.tracebacklimit to 0 or less now suppresses printing tracebacks.
* Setting sys.tracebacklimit to None now causes using the default limit.
* Setting sys.tracebacklimit to an integer larger than LONG_MAX now means using
the limit LONG_MAX rather than the default limit.
* Fixed integer overflows in the case of more than 2**31 traceback items on
Windows.
* Fixed output errors handling..
(cherry picked from commit edad8eebeee3c99e324a7f1ac5073167c2b0b54d)
|
|
|
|
|
| |
(#4379)
(cherry picked from commit e0582a37c8d1776a2fd4968e9216f3a05f780276)
|
|
|
|
|
| |
(#4135)
(cherry picked from commit 56d1f5ca32892c7643eb8cee49c40c1644f1abfe)
|
|
|
|
|
|
|
|
| |
(GH-4118) (#4128)
BytesWarning no longer emitted when the fromlist argument of
__import__() or the __all__ attribute of the module contain bytes
instances..
(cherry picked from commit 41c56940c6edf3ea169332a6b039b6c8796f0475)
|
|
|
| |
(cherry picked from commit 66caacf2f0d6213b049a3097556e28e30440b900)
|
|
|
|
| |
and in codecs.escape_decode() when decode an escaped non-ascii byte.
(cherry picked from commit 56cb465cc93dcb35aaf7266ca3dbe2dcff1fac5f)
|
|
|
|
|
| |
is a small negative value. (GH-4003). (#4022)
(cherry picked from commit 2c15b29aea5d6b9c61aa42d2c24a07ff1edb4b46)
|
|
|
|
|
| |
(GH-4014) (#4024)
(cherry picked from commit de86073a761cd3539aaca6f886a1f55effc0d9da)
|
|
|
|
|
|
| |
(GH-4002) (#4004)
Patch by Pablo.
(cherry picked from commit 28773ca7a7aa58a28e42a9eb0066acf71b5a8dc4)
|
|
|
|
|
| |
sys.modules. (GH-3834). (#3923)
(cherry picked from commit f07e2b64df6304a36fb5e29397d3c77a7ba17704)
|
|
|
| |
(cherry picked from commit a8ed11742b4c2115597977ce04fa8e043d9e0792)
|
|
|
|
|
| |
unicodedata.normalize(). (GH-3767) (#3836)
(cherry picked from commit 7dc46d8cf5854d9f4ce3271b29c21aea4872e8ad)
|
|
|
|
|
|
| |
(GH-3803) (#3829)
(forgot to remove it in GH-3219)
(cherry picked from commit 8b4ff53c440dfcde40fbeb02c5e666c85190528f)
|
|
|
|
|
|
|
|
|
|
|
| |
Class execution requires that __prepare__() methods return
a proper execution namespace. Check for that immediately
after calling __prepare__(), rather than passing it through
to the code execution machinery and potentially triggering
SystemError (in debug builds) or a cryptic TypeError
(in release builds).
Patch by Oren Milman.
(cherry picked from commit 5837d0418f47933b2e3c139bdee8a79c248a943c)
|
|
|
|
|
| |
warnings.warn_explicit. (GH-3219) (#3775)
(cherry picked from commit 91fb0afe181986b48abfc6092dcca912b39de51d)
|
|
|
|
|
| |
__name__ attribute. (GH-3620). (#3773)
(cherry picked from commit 6db7033192cd537ca987a65971acb01206c3ba82)
|
|
|
|
|
| |
bad __name__ global. (GH-3717) (#3730)
(cherry picked from commit 5d3e80021ab33360191eb0fbff34e0246c913884)
|
|
|
|
|
| |
spec.name is not a string. (GH-3257) (#3653)
(cherry picked from commit 9974e1bcf3d0cec9b38b39b39b7ec8a1ebd9ef54)
|
|
|
|
|
| |
of an exception with a bad __module__ attribute. (GH-3539) (#3556)
(cherry picked from commit f6e61df01536493f1280cd07639c7ff9bffb2cdc)
|