| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Flushing sys.stdout and sys.stderr in Py_FatalError() can call again
Py_FatalError(). Add a reentrant flag to detect this case and just abort at the
second call.
|
|
|
|
|
| |
It should help to see exceptions when stderr if buffered: PyErr_Display() calls
sys.stderr.write(), it doesn't write into stderr file descriptor directly.
|
|
|
|
|
|
|
|
|
| |
* Display the current Python stack if an exception was raised but the exception
has no traceback
* Disable faulthandler if an exception was raised (before it was only disabled
if no exception was raised)
* To display the current Python stack, call PyGILState_GetThisThreadState()
which works even if the GIL was released
|
| |
|
|
|
|
|
|
|
|
| |
- Issue #21274: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.
- Issue #21276: posixmodule: Don't define USE_XATTRS on KFreeBSD and the Hurd.
- Issue #21275: Fix a socket test on KFreeBSD.
|
|
|
|
|
| |
regression: don't clear anymore the state of Python threads early during the
Python shutdown.
|
| |
|
|\
| |
| |
| |
| | |
cases when multibyte characters are in line (before "^"). This still not
works correctly with wide East Asian characters.
|
| |
| |
| |
| |
| | |
cases when multibyte characters are in line (before "^"). This still not
works correctly with wide East Asian characters.
|
| | |
|
| |
| |
| |
| |
| |
| | |
tracemalloc in objects destructor
Replace atexit handler with an harcoded C function _PyTraceMalloc_Fini().
|
| | |
|
| |
| |
| |
| | |
Python now uses SipHash24 on all major platforms.
|
|\ \
| |/
| |
| |
| | |
the size of the env_home buffer, not PATH_MAX+1. env_home is declared using
MAXPATHLEN+1, and PATH_MAX is not declared on IRIX.
|
| |
| |
| |
| |
| | |
the env_home buffer, not PATH_MAX+1. env_home is declared using MAXPATHLEN+1,
and PATH_MAX is not declared on IRIX.
|
| |
| |
| |
| | |
Patch written by Andrei Dorian Duma.
|
| | |
|
| |
| |
| |
| |
| | |
shutdown to call objects destructors. So "unclosed file" resource warnings are
now corretly emitted for daemon threads.
|
| |
| |
| |
| |
| |
| |
| | |
are used.
Move also _Py_IDENTIFIER() defintions to the top in modified files to remove
identifiers duplicated in the same file.
|
| |
| |
| |
| |
| |
| | |
Use aslo PyUnicode_FromFormat() to format the line so only one call to
PyFile_WriteObject() is needed. tb_displayline() of Python/traceback.c has
similar implementation.
|
| |
| |
| |
| |
| |
| |
| | |
_PyUnicode_CompareWithId() is faster than PyUnicode_CompareWithASCIIString()
when both strings are equal and interned.
Add also _PyId_builtins identifier for "builtins" common string.
|
| |
| |
| |
| | |
Replace _PyUnicode_AsString()+strcmp() with PyUnicode_CompareWithASCIIString().
|
| |
| |
| |
| |
| |
| |
| | |
instead of creating temporary Unicode string objects
Add also more identifiers in pythonrun.c to avoid temporary Unicode string
objets for the interactive interpreter.
|
| |
| |
| |
| |
| | |
Only decode the filename once. PyRun_InteractiveOneObject() uses an identifier
for "<string>" string, so the byte string is only decoded once.
|
| |
| |
| |
| | |
key from sys._xoptions
|
|\ \
| |/
| |
| | |
Python executable and not removed by the linker's optimizer.
|
| |
| |
| |
| | |
Python executable and not removed by the linker's optimizer.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- don't call PyErr_NoMemory with interpreter is not initialised
- note that it's OK to call _PyMem_RawStrDup here
- don't include this in the limited API
- capitalise "IO"
- be explicit that a non-zero return indicates an error
- include versionadded marker in docs
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This new pre-initialization API allows embedding
applications like Blender to force a particular
encoding and error handler for the standard IO streams.
Also refactors Modules/_testembed.c to let us start
testing multiple embedding scenarios.
(Initial patch by Bastien Montagne)
|
|\ \
| |/
| |
| | |
raise an exception.
|
| |
| |
| |
| | |
raise an exception.
|
| | |
|
| |
| |
| |
| | |
descriptor, so as to avoid using many file descriptors when run in parallel from multiple threads.
|
| |
| |
| |
| | |
PATH_MAX is not available on "MIPS IRIX 6.5.30 [SB] 3.x" buildbot
|
| |
| |
| |
| |
| | |
are now created non-inheritable; add functions os.get/set_inheritable(),
os.get/set_handle_inheritable() and socket.socket.get/set_inheritable().
|
| |
| |
| |
| | |
filenames anymore on Windows.
|
| |
| |
| |
| | |
sub-interpreter is shutdown (it would previously dump a fatal error).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-I
Run Python in isolated mode. This also implies -E and -s. In isolated mode
sys.path contains neither the script’s directory nor the user’s
site-packages directory. All PYTHON* environment variables are ignored,
too. Further restrictions may be imposed to prevent the user from
injecting malicious code.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
PyStructSequence_InitType() except that it has a return value (0 on success,
-1 on error).
* PyStructSequence_InitType2() now raises MemoryError on memory allocation failure
* Fix also some calls to PyDict_SetItemString(): handle error
|
| |
| |
| |
| | |
PyOS_InitInterrupts() can raise error when importing the signal module
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
structseq.c
_PyDict_GetItemId() is more efficient: it only builds the Unicode string once.
Identifiers (dictionary keys) are now created at Python initialization, and if
the creation failed, Python does exit with a fatal error.
Before, PyDict_GetItemString() failure was not handled: structseq_new() could
call PyObject_GC_NewVar() with a negative size, and structseq_dealloc() could
also crash.
|
| |
| |
| |
| |
| | |
Replace strdup() with _PyMem_RawStrdup() or _PyMem_Strdup(), depending if the
GIL is held or not.
|
| |
| |
| |
| |
| |
| |
| | |
PyMem_Malloc() or PyObject_Malloc().
For example, PyCFunction_Fini() calls PyObject_GC_Del() which calls
PyObject_FREE().
|
| |
| |
| |
| | |
garbage-collected at shutdown.
|
|\ \
| |/
| |
| | |
(thanks Arfrever for reporting).
|