| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
* bpo-32379: Faster MRO computation for single inheritance
|
|
|
|
| |
Change atexit behavior and PEP-489 multiphase init support.
|
|
|
|
|
|
|
| |
* Reorganize pymain_main() to make the code more flat
* Clear configurations before pymain_update_sys_path()
* Mark Py_FatalError() and _Py_FatalInitError() with _Py_NO_RETURN
* Replace _PyMain.run_code variable with a new RUN_CODE() macro
* Move _PyMain.cf into a local variable in pymain_run_python()
|
|
|
|
|
|
|
| |
* Add argc and argv to _PyCoreConfig
* _PyMainInterpreterConfig_Read() now builds its argv from
_PyCoreConfig.arg
* Move _PyMain.env_warning_options into _Py_CommandLineDetails
* Reorder pymain_free()
|
|
|
|
| |
Mention that the format-specifier mini language in f-strings
is the same one used by str.format.
|
|
|
|
| |
10 seconds by default.
|
|
|
|
|
|
| |
* Fix #32377: improve __del__ docs and fix mention about resurrection
* Mention that CPython only calls __del__ once.
|
| |
|
|
|
|
|
| |
Implement find_library() support in ctypes/util for AIX.
Add some AIX specific tests.
|
| |
|
| |
|
| |
|
|
|
|
| |
Recent sock.type fix (see bug 32331) makes sock.type checks simpler
in asyncio.
|
|
|
|
|
|
|
|
|
|
|
| |
Fix compiler warnings in Py_FinalizeEx(): only define variables if
they are needed, add #ifdef.
Other cleanup changes:
* _PyWarnings_InitWithConfig() is no more needed: call
_PyWarnings_Init() instead.
* Inline pymain_init_main_interpreter() in its caller. This
subfunction is no more justifed.
|
| |
|
| |
|
|
|
|
|
| |
* main.c: add missing #include <fenv.h> on FreeBSD
* indent also other #ifdef in main.c
* cleanup Programs/python.c
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The last part of test_close_fds() doesn't match its own comment.
The following assertion always holds because fds_to_keep and open_fds
are disjoint by construction.
self.assertFalse(remaining_fds & fds_to_keep & open_fds,
"Some fds not in pass_fds were left open")
Fix the code to match the message in the assertion.
|
| |
|
|
|
| |
It was introduced in bpo-27169.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Windows (#1218)
Even though Python marks any handles it opens as non-inheritable there
is still a race when using `subprocess.Popen` since creating a process
with redirected stdio requires temporarily creating inheritable handles.
By implementing support for `subprocess.Popen(close_fds=True)` we fix
this race.
In order to implement this we use PROC_THREAD_ATTRIBUTE_HANDLE_LIST
which is available since Windows Vista. Which allows to pass an explicit
list of handles to inherit when creating a process.
This commit also adds `STARTUPINFO.lpAttributeList["handle_list"]`
which can be used to control PROC_THREAD_ATTRIBUTE_HANDLE_LIST
directly.
|
|
|
|
|
|
|
|
|
|
| |
Constant folding was moved to AST optimizer.
But compiler may emit LOAD_CONSTs + BUILD_TUPLE.
For example, default arguments can be constant tuple
if all arguments are constant.
This commit makes peephole's tuple folding simple.
It doesn't support nested tuples because nested
tuples are folded by AST optimizer already.
|
| |
|
| |
|
|
|
| |
bpo-32264
|
|
|
|
|
|
| |
* Use fastpath in asyncio.sleep if delay<0
* Add NEWS entry
|
| |
|
| |
|
|
|
| |
Based on tests from #4878
|
|
|
|
|
|
|
|
|
|
| |
Exactly which locale requests will end up giving
you the "C" locale is actually platform dependent.
A blank locale and "POSIX" will translate to "C"
on most Linux distros, but may not do so on other platforms, so this adjusts the way the tests are structured to better account for that.
This is an initial step towards fixing the current
test failure on Cygwin (hence the issue reference)
|
|
|
|
|
|
|
|
|
|
| |
As a result of 92a3c6f493ad411e4cf0acdf305ef4876aa90669, the compiler complains:
Python/import.c:2311:21: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
if ((i + n + 1) <= PY_SSIZE_T_MAX / sizeof(struct _inittab)) {
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This overflow is extremely unlikely to happen, but let's avoid undefined
behavior anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bpo-29240, bpo-32030: If the encoding change (C locale coerced or
UTF-8 Mode changed), Py_Main() now reads again the configuration with
the new encoding.
Changes:
* Add _Py_UnixMain() called by main().
* Rename pymain_free_pymain() to pymain_clear_pymain(), it can now be
called multipled times.
* Rename pymain_parse_cmdline_envvars() to pymain_read_conf().
* Py_Main() now clears orig_argc and orig_argv at exit.
* Remove argv_copy2, Py_Main() doesn't modify argv anymore. There is
no need anymore to get two copies of the wchar_t** argv.
* _PyCoreConfig: add coerce_c_locale and coerce_c_locale_warn.
* Py_UTF8Mode is now initialized to -1.
* Locale coercion (PEP 538) now respects -I and -E options.
|
| |
|
| |
|
|
|
| |
Don't define decode_locale() nor encode_locale() on macOS or Android.
|
| |
|
|
|
| |
Link to the Format Specification Mini Language section from f-strings' documentation.
|
|
|
|
| |
Run the child process with -E option to ignore the PYTHONWARNINGS
environment variable.
|
| |
|
|
|
|
| |
Add types.ClassMethodDescriptorType for unbound class methods.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
arguments. (#4746)
|
|
|
| |
This fixes also bpo-22091.
|
| |
|
| |
|
|
|
|
|
| |
* Implement functionality
* Add documentation
|
|
|
|
| |
(#4872)
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add new fields to _PyMainInterpreterConfig:
* executable
* prefix
* base_prefix
* exec_prefix
* base_exec_prefix
* _PySys_EndInit() now sets sys attributes from
_PyMainInterpreterConfig
|
|
|
|
|
|
|
|
|
|
| |
Each interpreter now has its core_config and main_config copy:
* Add _PyCoreConfig_Copy() and _PyMainInterpreterConfig_Copy()
* Move _PyCoreConfig_Read(), _PyCoreConfig_Clear() and
_PyMainInterpreterConfig_Clear() from Python/pylifecycle.c to
Modules/main.c
* Fix _Py_InitializeEx_Private(): call _PyCoreConfig_ReadEnv() before
_Py_InitializeCore()
|