- 25 Nis, 2018 1 kayıt (commit)
-
-
Miss Islington (bot) yazdı
(cherry picked from commit e9d9494d) Co-authored-by:
Serhiy Storchaka <storchaka@gmail.com>
-
- 29 Ock, 2018 1 kayıt (commit)
-
-
Benjamin Peterson yazdı
When the C imp module became _imp in 6f44d66b, the initialization function should have been renamed from PyInit_imp to PyInit__imp.
-
- 16 Ara, 2017 1 kayıt (commit)
-
-
Benjamin Peterson yazdı
As a result of 92a3c6f4, 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.
-
- 12 Ara, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Fix the warning: Python/import.c: warning: comparison between signed and unsigned integer expressions if ((i + n + 1) <= PY_SSIZE_T_MAX / sizeof(struct _inittab)) {
-
- 09 Ara, 2017 2 kayıt (commit)
-
-
Benjamin Peterson yazdı
-
Benjamin Peterson yazdı
Python now supports checking bytecode cache up-to-dateness with a hash of the source contents rather than volatile source metadata. See the PEP for details. While a fairly straightforward idea, quite a lot of code had to be modified due to the pervasiveness of pyc implementation details in the codebase. Changes in this commit include: - The core changes to importlib to understand how to read, validate, and regenerate hash-based pycs. - Support for generating hash-based pycs in py_compile and compileall. - Modifications to our siphash implementation to support passing a custom key. We then expose it to importlib through _imp. - Updates to all places in the interpreter, standard library, and tests that manually generate or parse pyc files to grok the new format. - Support in the interpreter command line code for long options like --check-hash-based-pycs. - Tests and documentation for all of the above.
-
- 08 Ara, 2017 1 kayıt (commit)
-
-
Neil Schemenauer yazdı
-
- 06 Ara, 2017 2 kayıt (commit)
-
-
Victor Stinner yazdı
PyImport_ExtendInittab() now uses PyMem_RawRealloc() rather than PyMem_Realloc(). PyImport_ExtendInittab() can be called before Py_Initialize() whereas only the PyMem_Raw allocator is supposed to be used before Py_Initialize(). Add _PyImport_Fini2() to release the memory allocated by PyImport_ExtendInittab() at exit. PyImport_ExtendInittab() now forces the usage of the default raw allocator, to be able to release memory in _PyImport_Fini2(). Don't export these functions anymore to be C API, only to Py_BUILD_CORE: * _PyExc_Fini() * _PyImport_Fini() * _PyGC_DumpShutdownStats() * _PyGC_Fini() * _PyType_Fini() * _Py_HashRandomization_Fini()
-
Victor Stinner yazdı
Remove also the initstr variable, unused since the commit e69f0df4 pushed in 2012: "bpo-13959: Re-implement imp.find_module() in Lib/imp.py"
-
- 03 Ara, 2017 1 kayıt (commit)
-
-
Neil Schemenauer yazdı
Add import_find_and_load() helper function. The addition of the importtime option has made PyImport_ImportModuleLevelObject() large and so using a helper seems worthwhile. It also makes it clearer that abs_name is the only argument needed by _find_and_load().
-
- 21 Kas, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Py_Main() now handles two more -X options: * -X showrefcount: new _PyCoreConfig.show_ref_count field * -X showalloccount: new _PyCoreConfig.show_alloc_count field
-
- 16 Kas, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Parse more env vars in Py_Main(): * Add more options to _PyCoreConfig: * faulthandler * tracemalloc * importtime * Move code to parse environment variables from _Py_InitializeCore() to Py_Main(). This change fixes a regression from Python 3.6: PYTHONUNBUFFERED is now read before calling pymain_init_stdio(). * _PyFaulthandler_Init() and _PyTraceMalloc_Init() now take an argument to decide if the module has to be enabled at startup. * tracemalloc_start() is now responsible to check the maximum number of frames. Other changes: * Cleanup Py_Main(): * Rename some pymain_xxx() subfunctions * Add pymain_run_python() subfunction * Cleanup Py_NewInterpreter() * _PyInterpreterState_Enable() now reports failure * init_hash_secret() now considers pyurandom() failure as an "user error": don't fail with abort(). * pymain_optlist_append() and pymain_strdup() now sets err on memory allocation failure.
-
- 15 Kas, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
* Don't use "Python runtime" anymore to parse command line options or to get environment variables: pymain_init() is now a strict separation. * Use an error message rather than "crashing" directly with Py_FatalError(). Limit the number of calls to Py_FatalError(). It prepares the code to handle errors more nicely later. * Warnings options (-W, PYTHONWARNINGS) and "XOptions" (-X) are now only added to the sys module once Python core is properly initialized. * _PyMain is now the well identified owner of some important strings like: warnings options, XOptions, and the "program name". The program name string is now properly freed at exit. pymain_free() is now responsible to free the "command" string. * Rename most methods in Modules/main.c to use a "pymain_" prefix to avoid conflits and ease debug. * Replace _Py_CommandLineDetails_INIT with memset(0) * Reorder a lot of code to fix the initialization ordering. For example, initializing standard streams now comes before parsing PYTHONWARNINGS. * Py_Main() now handles errors when adding warnings options and XOptions. * Add _PyMem_GetDefaultRawAllocator() private function. * Cleanup _PyMem_Initialize(): remove useless global constants: move them into _PyMem_Initialize(). * Call _PyRuntime_Initialize() as soon as possible: _PyRuntime_Initialize() now returns an error message on failure. * Add _PyInitError structure and following macros: * _Py_INIT_OK() * _Py_INIT_ERR(msg) * _Py_INIT_USER_ERR(msg): "user" error, don't abort() in that case * _Py_INIT_FAILED(err)
-
- 07 Kas, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
-
- 02 Kas, 2017 1 kayıt (commit)
-
-
Barry Warsaw yazdı
Support PYTHONPROFILEIMPORTTIME envvar equivalent to -X importtime
-
- 16 Eki, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
* Rewrite win_perf_counter() to only use integers internally. * Add _PyTime_MulDiv() which compute "ticks * mul / div" in two parts (int part and remaining) to prevent integer overflow. * Clock frequency is checked at initialization for integer overflow. * Enhance also pymonotonic() to reduce the precision loss on macOS (mach_absolute_time() clock).
-
- 12 Eki, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
time.clock() and time.perf_counter() now use again C double internally. Remove also _PyTime_GetWinPerfCounterWithInfo(): use _PyTime_GetPerfCounterDoubleWithInfo() instead on Windows.
-
- 10 Eki, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
* Add _PyTime_GetPerfCounter() * Use _PyTime_GetPerfCounter() for -X importtime
-
- 03 Eki, 2017 1 kayıt (commit)
-
-
INADA Naoki yazdı
It shows show import time of each module. It's useful for optimizing startup time. Typical usage: python -X importtime -c 'import requests'
-
- 29 Eyl, 2017 1 kayıt (commit)
-
-
Christian Heimes yazdı
Importlib was instrumented with two dtrace probes to profile import timing. Signed-off-by:
Christian Heimes <christian@python.org>
-
- 15 Eyl, 2017 1 kayıt (commit)
-
-
Eric Snow yazdı
The concrete PyDict_* API is used to interact with PyInterpreterState.modules in a number of places. This isn't compatible with all dict subclasses, nor with other Mapping implementations. This patch switches the concrete API usage to the corresponding abstract API calls. We also add a PyImport_GetModule() function (and some other helpers) to reduce a bunch of code duplication.
-
- 14 Eyl, 2017 2 kayıt (commit)
-
-
Eric Snow yazdı
A bunch of code currently uses PyInterpreterState.modules directly instead of PyImport_GetModuleDict(). This complicates efforts to make changes relative to sys.modules. This patch switches to using PyImport_GetModuleDict() uniformly. Also, a number of related uses of sys.modules are updated for uniformity for the same reason. Note that this code was already reviewed and merged as part of #1638. I reverted that and am now splitting it up into more focused parts.
-
Eric Snow yazdı
PR #1638, for bpo-28411, causes problems in some (very) edge cases. Until that gets sorted out, we're reverting the merge. PR #3506, a fix on top of #1638, is also getting reverted.
-
- 08 Eyl, 2017 1 kayıt (commit)
-
-
Eric Snow yazdı
* group the (stateful) runtime globals into various topical structs * consolidate the topical structs under a single top-level _PyRuntimeState struct * add a check-c-globals.py script that helps identify runtime globals Other globals are excluded (see globals.txt and check-c-globals.py).
-
- 07 Eyl, 2017 1 kayıt (commit)
-
-
Antoine Pitrou yazdı
* Remove Setup.config * Always define WITH_THREAD for compatibility.
-
- 04 Eyl, 2017 1 kayıt (commit)
-
-
Eric Snow yazdı
sys.modules is the one true source.
-
- 12 Tem, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
instead of failing with SystemError. Relative import from non-package now fails with ImportError rather than SystemError.
-
- 10 Tem, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
* Rewrite importlib _get_module_lock(): it is now responsible to hold the imp lock directly. * _find_and_load() now holds the module lock to check if name is in sys.modules to prevent a race condition
-
- 06 Tem, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
-
- 15 Haz, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
In rare circumstances PyImport_Import() could return NULL without raising an error.
-
- 28 May, 2017 1 kayıt (commit)
-
-
Antoine Pitrou yazdı
* Doc nits for bpo-16500 * Fix more references
-
- 23 Mar, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
* bpo-6532: Make the thread id an unsigned integer. From C API side the type of results of PyThread_start_new_thread() and PyThread_get_thread_ident(), the id parameter of PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState changed from "long" to "unsigned long". * Restore a check in thread_get_ident().
-
- 08 Mar, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
-
- 04 Şub, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
-
- 23 Ock, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
possible. Patch is writen with Coccinelle.
-
- 09 Ara, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #28915: Replace _PyObject_CallMethodId() with _PyObject_CallMethodIdObjArgs() in various modules when the format string was only made of "O" formats, PyObject* arguments. _PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and doesn't have to parse a format string.
-
- 04 Ara, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like _PyObject_CallArg1() uses more stack memory than PyObject_CallFunctionObjArgs().
-
- 01 Ara, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
* PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func) * PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg) PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires extra work to "parse" C arguments to build a C array of PyObject*. _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack. This change is part of the fastcall project. The change on listsort() is related to the issue #23507.
-
- 20 Kas, 2016 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
UTF-8 represenatation of Unicode objects.
-
- 16 Kas, 2016 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
The latter function is more readable, faster and doesn't raise exceptions.
-