Brandt Bucher and GitHub
8a285df806
GH-93252: Fix error handling for failed Python calls (GH-94693)
2022-07-08 18:52:26 -07:00
Brandt Bucher and GitHub
23ee4a8067
gh-94215: Fix error handling for line-tracing events (GH-94681)
...
* Re-enable crasher
* Fix error handling for line-tracing events
* blurb add
2022-07-08 14:40:35 +02:00
Irit Katriel and GitHub
bde06e1b83
gh-92228: disable the compiler's 'small exit block inlining' optimization for blocks that have a line number (GH-94592)
...
Inlining of code that corresponds to source code lines, can make it hard to distinguish later between code which is only reachable from except handlers, and that which is reachable in normal control flow. This caused problems with the debugger's jump feature.
This PR turns off the inlining optimisation for code which has line numbers. We still inline things like the implicit "return None".
2022-07-06 23:38:36 -07:00
40d81fd63b
gh-94510: Raise on re-entrant calls to sys.setprofile and sys.settrace (GH-94511)
...
Co-authored-by: Łukasz Langa <[email protected] >
2022-07-05 20:18:47 +02:00
324d01944d
gh-94485: Set line number of module's RESUME instruction to 0, as specified by PEP 626 (GH-94552)
...
Co-authored-by: Mark Shannon <[email protected] >
2022-07-05 14:38:44 +02:00
Irit Katriel and GitHub
c57aad777a
gh-94216: add pseudo instructions to the dis/opcodes modules (GH-94241)
2022-07-01 15:33:35 +01:00
Mark Shannon and GitHub
544531de23
GH-94262: Don't create frame objects for frames that aren't yet complete. (GH-94371)
2022-07-01 11:08:20 +01:00
neonene and GitHub
ea39b77de9
gh-91719: Reload opcode on unknown error so that C can optimize the dispatching in ceval.c ( #94364 )
2022-06-30 08:38:29 -07:00
Mark Shannon and GitHub
b152bf448b
GH-94329: Don't raise on excessive stack consumption (GH-94421)
2022-06-30 15:27:14 +01:00
Irit Katriel and GitHub
be82d26570
gh-94332: make it safe to call assemble_free when assemble_init has not been called (GH-94389)
2022-06-30 12:26:29 +01:00
Mark Shannon and GitHub
c0453a40fa
GH-94163: Add BINARY_SLICE and STORE_SLICE instructions. (GH-94168)
2022-06-27 12:24:23 +01:00
Serhiy Storchaka and GitHub
bec802dbb8
gh-77560: Report possible errors in restoring builtins at finalization (GH-94255)
...
Seems in the past the copy of builtins was not made in some scenarios,
and the error was silenced. Write it now to stderr, so we have a chance
to see it.
2022-06-25 19:02:09 +03:00
Mark Shannon and GitHub
6f8875eba3
GH-93841: Allow stats to be turned on and off, cleared and dumped at runtime. (GH-93843)
2022-06-21 15:40:54 +01:00
Victor Stinner and GitHub
c7a79bb036
gh-74953: _PyThread_cond_after() uses _PyTime_t ( #94056 )
...
pthread _PyThread_cond_after() implementation now uses the _PyTime_t
type to handle properly overflow: clamp to the maximum value.
Remove MICROSECONDS_TO_TIMESPEC() function.
2022-06-21 15:45:49 +02:00
Dennis Sweeney and GitHub
5fcfdd87c9
GH-91432: Specialize FOR_ITER (GH-91713)
...
* Adds FOR_ITER_LIST and FOR_ITER_RANGE specializations.
* Adds _PyLong_AssignValue() internal function to avoid temporary boxing of ints.
2022-06-21 11:19:26 +01:00
Irit Katriel and GitHub
889772fb56
GH-93678: refactor compiler so that optimizer does not need the assembler and compiler structs (GH-93842)
2022-06-21 09:22:17 +01:00
Christian Heimes and GitHub
77c839c98f
gh-94021: Address unreachable code warning in specialize code (GH-94022)
2022-06-20 23:34:11 -07:00
Victor Stinner and GitHub
cfb986a1a2
gh-93937: PyOS_StdioReadline() uses PyConfig.legacy_windows_stdio ( #94024 )
...
On Windows, PyOS_StdioReadline() now gets
PyConfig.legacy_windows_stdio from _PyOS_ReadlineTState, rather than
using the deprecated global Py_LegacyWindowsStdioFlag variable.
Fix also a compiler warning in Py_SetStandardStreamEncoding().
2022-06-20 16:10:47 +02:00
Mark Shannon and GitHub
ab0e601016
GH-93516: Speedup line number checks when tracing. (GH-93763)
...
* Use a lookup table to reduce overhead of getting line numbers during tracing.
2022-06-20 13:00:42 +01:00
Mark Shannon and GitHub
45e62a2bc1
GH-93897: Store frame size in code object and de-opt if insufficient space on thread frame stack. (GH-93908)
2022-06-20 12:59:25 +01:00
Victor Stinner and GitHub
27b9894033
gh-93937, C API: Move PyFrame_GetBack() to Python.h ( #93938 )
...
Move the follow functions and type from frameobject.h to pyframe.h,
so the standard <Python.h> provide frame getter functions:
* PyFrame_Check()
* PyFrame_GetBack()
* PyFrame_GetBuiltins()
* PyFrame_GetGenerator()
* PyFrame_GetGlobals()
* PyFrame_GetLasti()
* PyFrame_GetLocals()
* PyFrame_Type
Remove #include "frameobject.h" from many C files. It's no longer
needed.
2022-06-19 12:02:33 +02:00
Victor Stinner and GitHub
2664d9aacf
gh-74953: Reformat PyThread_acquire_lock_timed() ( #93947 )
...
Reformat the pthread implementation of PyThread_acquire_lock_timed()
using a mutex and a conditioinal variable.
* Add goto to avoid multiple indentation levels and exit quickly
* Use "while(1)" and make the control flow more obvious.
* PEP 7: Add braces around if blocks.
2022-06-19 11:50:21 +02:00
Ken Jin and GitHub
a51742ab82
gh-93911: Specialize LOAD_ATTR_PROPERTY (GH-93912)
2022-06-17 23:13:17 +08:00
Victor Stinner and GitHub
0ff626f210
gh-77782: Deprecate global configuration variable ( #93943 )
...
Deprecate global configuration variable like
Py_IgnoreEnvironmentFlag: the Py_InitializeFromConfig() API should be
instead.
Fix declaration of Py_GETENV(): use PyAPI_FUNC(), not PyAPI_DATA().
2022-06-17 16:12:00 +02:00
Victor Stinner and GitHub
f64557f480
gh-74953: Fix PyThread_acquire_lock_timed() code recomputing the timeout ( #93941 )
...
Set timeout, don't create a local variable with the same name.
2022-06-17 16:11:25 +02:00
Victor Stinner and GitHub
e444752fab
gh-74953: Add _PyTime_FromMicrosecondsClamp() function ( #93942 )
2022-06-17 16:11:13 +02:00
Victor Stinner and GitHub
1735710873
gh-77782: Py_FdIsInteractive() now uses PyConfig.interactive ( #93916 )
2022-06-17 15:19:28 +02:00
neonene and GitHub
38af903506
gh-91985: Ensure in-tree builds override platstdlib_dir in every path calculation (GH-93641)
2022-06-16 22:41:57 +01:00
Ken Jin and GitHub
ab45c1dde0
Fix BINARY_SUBSCR_GETITEM stats (GH-93903)
2022-06-16 15:02:07 +01:00
Mark Shannon and GitHub
6b330002b1
Rename 'LOAD_METHOD' specialization stat consts to 'ATTR'. (GH-93812)
2022-06-14 16:44:01 +01:00
Mark Shannon and GitHub
ef6e44d392
Remove LOAD_METHOD stats. (GH-93807)
2022-06-14 15:03:15 +01:00
Irit Katriel and GitHub
af15cc534c
GH-93678: reduce boilerplate and code repetition in the compiler (GH-93682)
2022-06-14 13:40:09 +01:00
Ken Jin and GitHub
b083450f88
GH-93429: Merge LOAD_METHOD back into LOAD_ATTR (GH-93430)
2022-06-14 11:36:22 +01:00
Mark Shannon and GitHub
3cd1a5d3ec
GH-93516: Store offset of first traceable instruction in code object (GH-93769)
2022-06-14 11:09:30 +01:00
Mark Shannon and GitHub
2bf74753c1
GH-93662: Make sure that column offsets are correct in multi-line method calls. (GH-93673)
2022-06-14 11:08:12 +01:00
Serhiy Storchaka and GitHub
6fd4c8ec77
gh-93741: Add private C API _PyImport_GetModuleAttrString() (GH-93742)
...
It combines PyImport_ImportModule() and PyObject_GetAttrString()
and saves 4-6 lines of code on every use.
Add also _PyImport_GetModuleAttr() which takes Python strings as arguments.
2022-06-14 07:15:26 +03:00
Dennis Sweeney and GitHub
c5d0517ea4
Add more FOR_ITER specialization stats (GH-32151)
2022-06-13 01:40:54 -04:00
Irit Katriel and GitHub
cf730b595e
GH-93621: reorder code in with/async-with exception exit path to reduce the size of the exception table (GH-93622)
2022-06-10 17:53:34 +01:00
Ken Jin and GitHub
75260925ec
Fix MSVC compiler warnings in ceval.c ( #93569 )
2022-06-07 11:32:42 +01:00
Mark Shannon and GitHub
f012df706c
Shrink the LOAD_METHOD cache by one codeunit. ( #93537 )
2022-06-07 10:28:53 +01:00
Irit Katriel and GitHub
1713ff09d6
GH-93444: remove redundant fields from basicblock: b_nofallthrough, b_exit, b_return (GH-93445)
2022-06-03 22:43:22 +01:00
Irit Katriel and GitHub
94b1586ca5
gh-93356: Lay out exception handling code at end of code unit (GH-92769)
2022-06-02 14:13:43 +01:00
Pablo Galindo Salgado and GitHub
8a221a8537
gh-92597: Improve error message for AST nodes with invalid ranges (GH-93398)
2022-06-01 13:51:17 +01:00
Éric and GitHub
8aa9d40b00
gh-90300: split --help output into separate options ( #30331 )
...
Make --help output shorter and add new help options.
--help-env, --help-xoptions and --help-all command-line options are
added to complement --help.
2022-06-01 05:50:01 -04:00
Pablo Galindo Salgado and GitHub
705eaec28f
gh-92597: Ensure that AST nodes without explicit end positions can be compiled (GH-93359)
2022-06-01 00:00:47 +01:00
Dennis Sweeney and GitHub
f425f3bb27
gh-93143: Avoid NULL check in LOAD_FAST based on analysis in the compiler (GH-93144)
2022-05-31 16:32:30 -04:00
Mark Shannon and GitHub
eb618d5ff0
GH-93354: Use exponential backoff to avoid excessive specialization attempts. (GH-93355)
2022-05-31 11:58:26 +01:00
Pablo Galindo Salgado and GitHub
5893b5db98
gh-93351: Ensure the position information in AST nodes created by the parser is always consistent (GH-93352)
2022-05-30 19:30:15 +01:00
Irit Katriel and GitHub
ace6607aa3
gh-93008: refactor compiler functions that add instructions to take only a basicblock* (not the whole compiler) (GH-93009)
2022-05-29 17:13:29 +01:00
Eric Snow and GitHub
caa279d6fd
bpo-40514: Drop EXPERIMENTAL_ISOLATED_SUBINTERPRETERS (gh-93185)
...
This was added for bpo-40514 (gh-84694) to test out a per-interpreter GIL. However, it has since proven unnecessary to keep the experiment in the repo. (It can be done as a branch in a fork like normal.) So here we are removing:
* the configure option
* the macro
* the code enabled by the macro
2022-05-27 17:38:01 -06:00