summaryrefslogtreecommitdiffstats
path: root/Python/pythonrun.c
Commit message (Collapse)AuthorAgeFilesLines
* [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169)Nick Coghlan2017-03-081-2/+17
| | | | | | | | | | | | | | | | | | bpo-27286 fixed a problem where BUILD_MAP_UNPACK_WITH_CALL could be emitted with an incorrect oparg value, causing the eval loop to access the wrong stack entry when attempting to read the function name. The associated magic number change caused significant problems when attempting to upgrade to 3.5.3 for anyone that relies on pre-cached bytecode remaining valid across maintenance releases. This patch restores the ability to import legacy bytecode generated by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to avoid any harmful consequences from the potentially malformed legacy bytecode. Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka, and tests and integration by Nick Coghlan.
* Issue #25677: Correct syntax error caret for indented blocks.Martin Panter2016-12-111-1/+1
| | | | Based on patch by Michael Layzell.
* Issue #28701: Replace _PyUnicode_CompareWithId with _PyUnicode_EqualToASCIIId.Serhiy Storchaka2016-11-161-1/+1
| | | | | | The latter function is more readable, faster and doesn't raise exceptions. Based on patch by Xiang Zhang.
* Issue #27076: Doc, comment and tests spelling fixesMartin Panter2016-05-261-1/+1
| | | | Most fixes to Doc/ and Lib/ directories by Ville Skyttä.
* Issue #22836: Keep exception reports sensible despite errorsMartin Panter2016-02-281-1/+7
|
* Issue #23911: Move path-based bootstrap code to a separate frozen module.Eric Snow2015-05-031-2/+7
|
* Issue #23731: Implement PEP 488.Brett Cannon2015-04-131-4/+1
| | | | | | The concept of .pyo files no longer exists. Now .pyc files have an optional `opt-` tag which specifies if any extra optimizations beyond the peepholer were applied.
* Issue #19428: Handle PyMarshal_Read*() errors in run_pyc_file()Victor Stinner2015-03-181-2/+6
| | | | Detect also earlier PyMarshal_Read*() errors in zipimport.
* Closes #22869: Move PyOS_CheckStack back to pythonrun.cZachary Ware2014-11-221-0/+37
|
* Issue #22869: Remove duplicate stack check from pythonrun.cSteve Dower2014-11-221-37/+0
|
* Issue #22869: Split pythonrun into two modulesNick Coghlan2014-11-201-1471/+1
| | | | | | | - interpreter startup and shutdown code moved to a new pylifecycle.c module - Py_OptimizeFlag moved into the new module with the other global flags
* Issue #20597, #21274: Remove unused definition of PATH_MAX on GNU/Hurd,Victor Stinner2014-11-051-4/+0
| | | | MAXPATHLEN is now preferred.
* Issue #20597: Remove unused definition of PATH_MAX on Windows, MAXPATHLEN isVictor Stinner2014-11-051-1/+0
| | | | now preferred. Patch written by Jeffrey Armstrong.
* Issue #22043: _PyTime_Init() now checks if the system clock works.Victor Stinner2014-08-291-1/+2
| | | | | | | | | Other changes: * The whole _PyTime API is private (not defined if Py_LIMITED_API is set) * _PyTime_gettimeofday_info() also returns -1 on error * Simplify PyTime_gettimeofday(): only use clock_gettime(CLOCK_REALTIME) or gettimeofday() on UNIX. Don't fallback to ftime() or time() anymore.
* Issue #22156: Fix "comparison between signed and unsigned integers" compilerVictor Stinner2014-08-151-1/+1
| | | | warnings in the Python/ subdirectory.
* Issue #21425: Fix flushing of standard streams in the interactive interpreter.Antoine Pitrou2014-05-111-1/+2
|\
| * Issue #21425: Fix flushing of standard streams in the interactive interpreter.Antoine Pitrou2014-05-111-1/+2
| |
* | - Merge 3.4doko@ubuntu.com2014-04-171-0/+4
|\ \ | |/
| * Fixes for KFreeBSD and the Hurd:doko@ubuntu.com2014-04-171-0/+4
| | | | | | | | | | | | | | | | - 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.
| * Issue #20526, #19466: Revert changes of issue #19466 which introduces aVictor Stinner2014-02-131-15/+5
| | | | | | | | | | regression: don't clear anymore the state of Python threads early during the Python shutdown.
* | Issue #19977, #19036: Always include <locale.h> in pythonrun.cVictor Stinner2014-03-181-1/+1
| | | | | | | | to get LC_CTYPE constant on Windows.
* | Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale),Victor Stinner2014-03-181-1/+10
| | | | | | | | | | :py:data:`sys.stdin` and :py:data:`sys.stdout` are now using the ``surrogateescape`` error handler, instead of the ``strict`` error handler.
* | Issue #20526, #19466: Revert changes of issue #19466 which introduces aVictor Stinner2014-02-131-15/+5
|/ | | | | regression: don't clear anymore the state of Python threads early during the Python shutdown.
* Close #20500: Don't trigger PyObject_Str assertion at shutdownNick Coghlan2014-02-091-0/+5
|
* Issue #2382: SyntaxError cursor "^" now is written at correct position in mostSerhiy Storchaka2014-01-211-2/+12
|\ | | | | | | | | cases when multibyte characters are in line (before "^"). This still not works correctly with wide East Asian characters.
| * Issue #2382: SyntaxError cursor "^" now is written at correct position in mostSerhiy Storchaka2014-01-211-2/+12
| | | | | | | | | | cases when multibyte characters are in line (before "^"). This still not works correctly with wide East Asian characters.
* | Issue #19817: Fix print_exception(), clear the exception on errorVictor Stinner2013-12-091-3/+5
| |
* | Closes #19831: Stop tracemalloc later at Python shutdown to be able to useVictor Stinner2013-12-011-0/+5
| | | | | | | | | | | | tracemalloc in objects destructor Replace atexit handler with an harcoded C function _PyTraceMalloc_Fini().
* | Issue #18874: Implement the PEP 454 (tracemalloc)Victor Stinner2013-11-231-0/+4
| |
* | ssue #19183: Implement PEP 456 'secure and interchangeable hash algorithm'.Christian Heimes2013-11-201-0/+3
| | | | | | | | Python now uses SipHash24 on all major platforms.
* | (Merge 3.3) pythonrun.c: fix Py_GetPythonHome(), use Py_ARRAY_LENGTH() to getVictor Stinner2013-11-151-2/+3
|\ \ | |/ | | | | | | 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.
| * pythonrun.c: fix Py_GetPythonHome(), use Py_ARRAY_LENGTH() to get the size ofVictor Stinner2013-11-151-2/+3
| | | | | | | | | | the env_home buffer, not PATH_MAX+1. env_home is declared using MAXPATHLEN+1, and PATH_MAX is not declared on IRIX.
* | Issue #19515: Remove identifiers duplicated in the same file.Victor Stinner2013-11-121-4/+2
| | | | | | | | Patch written by Andrei Dorian Duma.
* | Issue #19466: Fix typo. Patch written by Vajrasky Kok.Victor Stinner2013-11-121-1/+1
| |
* | Close #19466: Clear the frames of daemon threads earlier during the PythonVictor Stinner2013-11-121-5/+15
| | | | | | | | | | shutdown to call objects destructors. So "unclosed file" resource warnings are now corretly emitted for daemon threads.
* | Issue #19512, #19515: remove shared identifiers, move identifiers where theyVictor Stinner2013-11-071-25/+20
| | | | | | | | | | | | | | are used. Move also _Py_IDENTIFIER() defintions to the top in modified files to remove identifiers duplicated in the same file.
* | print_error_text() doesn't encode the filename anymoreVictor Stinner2013-11-071-27/+35
| | | | | | | | | | | | 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.
* | Issue #19512: add _PyUnicode_CompareWithId() functionVictor Stinner2013-11-061-1/+2
| | | | | | | | | | | | | | _PyUnicode_CompareWithId() is faster than PyUnicode_CompareWithASCIIString() when both strings are equal and interned. Add also _PyId_builtins identifier for "builtins" common string.
* | print_exception(): don't encode the module name to UTF-8Victor Stinner2013-11-061-3/+2
| | | | | | | | Replace _PyUnicode_AsString()+strcmp() with PyUnicode_CompareWithASCIIString().
* | Issue #19512: add some common identifiers to only create common strings once,Victor Stinner2013-11-061-22/+37
| | | | | | | | | | | | | | instead of creating temporary Unicode string objects Add also more identifiers in pythonrun.c to avoid temporary Unicode string objets for the interactive interpreter.
* | Issue #19512: Add PyRun_InteractiveOneObject() functionVictor Stinner2013-11-061-29/+82
| | | | | | | | | | Only decode the filename once. PyRun_InteractiveOneObject() uses an identifier for "<string>" string, so the byte string is only decoded once.
* | Issue #19512: _print_total_refs() now uses an identifier to get "showrefcount"Victor Stinner2013-11-061-6/+4
| | | | | | | | key from sys._xoptions
* | Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in theChristian Heimes2013-10-221-0/+4
|\ \ | |/ | | | | Python executable and not removed by the linker's optimizer.
| * Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in theChristian Heimes2013-10-221-0/+4
| | | | | | | | Python executable and not removed by the linker's optimizer.
* | Issue #16129: Py_SetStandardStreamEncoding cleanupsNick Coghlan2013-10-181-4/+9
| | | | | | | | | | | | | | | | | | - 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
* | Issue #16129: Add `Py_SetStandardStreamEncoding`Nick Coghlan2013-10-171-16/+65
| | | | | | | | | | | | | | | | | | | | | | 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)
* | Issue #18776: atexit callbacks now display their full traceback when they ↵Antoine Pitrou2013-10-131-0/+10
|\ \ | |/ | | | | raise an exception.
| * Issue #18776: atexit callbacks now display their full traceback when they ↵Antoine Pitrou2013-10-131-0/+10
| | | | | | | | raise an exception.
* | Issue #18818: The "encodingname" part of PYTHONIOENCODING is now optional.Serhiy Storchaka2013-09-131-8/+12
| |
* | Issue #18756: os.urandom() now uses a lazily-opened persistent file ↵Antoine Pitrou2013-08-301-0/+1
| | | | | | | | descriptor, so as to avoid using many file descriptors when run in parallel from multiple threads.