Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | bpo-46528: Simplify the VM's stack manipulations (GH-30902) | Brandt Bucher | 2022-01-26 | 1 | -59/+9 | |
| | ||||||
* | Use existing unbound_local_error label in DELETE_FAST opcode (GH-30882) | Kumar Aditya | 2022-01-26 | 1 | -6/+1 | |
| | ||||||
* | bpo-46420: Use NOTRACE_DISPATCH() in specialized opcodes (GH-30652) | Dennis Sweeney | 2022-01-25 | 1 | -26/+43 | |
| | ||||||
* | bpo-43683: Streamline YIELD_VALUE and SEND (GH-30723) | Mark Shannon | 2022-01-24 | 1 | -21/+14 | |
| | | | | | | | | * Split YIELD_VALUE into ASYNC_GEN_WRAP; YIELD_VALUE for async generators. * Split SEND into SEND; YIELD_VALUE. * Document new opcodes. | |||||
* | bpo-46409: Make generators in bytecode (GH-30633) | Mark Shannon | 2022-01-20 | 1 | -107/+88 | |
| | | | | | | | | | | | | * Add RETURN_GENERATOR and JUMP_NO_INTERRUPT opcodes. * Trim frame and generator by word each. * Minor refactor of frame.c * Update test.test_sys to account for smaller frames. * Treat generator functions as normal functions when evaluating and specializing. | |||||
* | bpo-45953: Statically initialize all the non-object PyInterpreterState ↵ | Eric Snow | 2022-01-14 | 1 | -2/+0 | |
| | | | | | fields we can. (gh-30589) https://bugs.python.org/issue45953 | |||||
* | bpo-45953: Statically initialize all the PyThreadState fields we can. (gh-30590) | Eric Snow | 2022-01-14 | 1 | -4/+0 | |
| | | | https://bugs.python.org/issue45953 | |||||
* | bpo-45953: Statically allocate the main interpreter (and initial thread ↵ | Eric Snow | 2022-01-12 | 1 | -1/+1 | |
| | | | | | | | | | state). (gh-29883) Previously, the main interpreter was allocated on the heap during runtime initialization. Here we instead embed it into _PyRuntimeState, which means it is statically allocated as part of the _PyRuntime global. The same goes for the initial thread state (of each interpreter, including the main one). Consequently there are fewer allocations during runtime/interpreter init, fewer possible failures, and better memory locality. FYI, this also helps efforts to consolidate globals, which in turns helps work on subinterpreter isolation. https://bugs.python.org/issue45953 | |||||
* | bpo-46347: Yet another fix in the erorr path of PyEval_EvalCodeEx (#30554) | Yury Selivanov | 2022-01-12 | 1 | -1/+0 | |
| | ||||||
* | bpo-46347: Fix PyEval_EvalCodeEx to correctly cleanup in error paths (#30551) | Yury Selivanov | 2022-01-11 | 1 | -13/+9 | |
| | ||||||
* | bpo-46347: Fix memory leak in PyEval_EvalCodeEx. (#30546) | Yury Selivanov | 2022-01-11 | 1 | -7/+0 | |
| | | | First introduced in 0332e569c12d3dc97171546c6dc10e42c27de34b | |||||
* | bpo-45923: Handle call events in bytecode (GH-30364) | Mark Shannon | 2022-01-06 | 1 | -44/+73 | |
| | | | | * Add a RESUME instruction to handle "call" events. | |||||
* | bpo-46031: add POP_JUMP_IF_NOT_NONE and POP_JUMP_IF_NONE (GH-30019) | penguin_wwy | 2022-01-06 | 1 | -0/+24 | |
| | ||||||
* | bpo-45256: Don't track the exact depth of each `InterpreterFrame` (GH-30372) | Brandt Bucher | 2022-01-05 | 1 | -8/+5 | |
| | ||||||
* | bpo-46009: Remove GEN_START (GH-30367) | Brandt Bucher | 2022-01-04 | 1 | -8/+0 | |
| | ||||||
* | bpo-46202: Remove opcode POP_EXCEPT_AND_RERAISE (GH-30302) | Irit Katriel | 2022-01-04 | 1 | -25/+0 | |
| | | | | | | * bpo-46202: remove opcode POP_EXCEPT_AND_RERAISE * do not assume that an exception group is truthy | |||||
* | bpo-46219, 46221: simplify except* implementation following exc_info ↵ | Irit Katriel | 2022-01-02 | 1 | -132/+1 | |
| | | | | changes. Move helpers to exceptions.c. Do not assume that exception groups are truthy. (GH-30289) | |||||
* | bpo-46072: Add top level stats struct (GH-30169) | Mark Shannon | 2021-12-17 | 1 | -23/+8 | |
| | ||||||
* | bpo-45711: Remove type and traceback from exc_info (GH-30122) | Irit Katriel | 2021-12-17 | 1 | -158/+54 | |
| | | | | | | | | * Do not PUSH/POP traceback or type to the stack as part of exc_info * Remove exc_traceback and exc_type from _PyErr_StackItem * Add to what's new, because this change breaks things like Cython | |||||
* | bpo-46072: Add --with-pystats configure option to simplify gathering of VM ↵ | Mark Shannon | 2021-12-15 | 1 | -2/+2 | |
| | | | | | | | | | stats (GH-30116) * Simplify specialization stats collection macros. * Add --enable-pystats option to configure. * Update specialization summary script to handle larger number of kinds | |||||
* | bpo-44525: Specialize for calls to type and other builtin classes with 1 ↵ | Mark Shannon | 2021-12-15 | 1 | -0/+35 | |
| | | | | argument. (GH-29942) | |||||
* | bpo-46039: Split yield from in two (GH-30035) | Mark Shannon | 2021-12-15 | 1 | -10/+11 | |
| | | | | | | * Split YIELD_FROM opcode into SEND and JUMP_ABSOLUTE. * Remove YIELD_FROM opcode. | |||||
* | bpo-44525: Split calls into PRECALL and CALL (GH-30011) | Mark Shannon | 2021-12-14 | 1 | -58/+158 | |
| | | | | | | | | | | * Add 3 new opcodes for calls: PRECALL_METHOD, CALL_NO_KW, CALL_KW. * Update specialization to handle new CALL opcodes. * Specialize call to method descriptors. * Remove old CALL opcodes: CALL_FUNCTION, CALL_METHOD, CALL_METHOD_KW, CALL_FUNCTION_KW. | |||||
* | bpo-45292: [PEP-654] add except* (GH-29581) | Irit Katriel | 2021-12-14 | 1 | -8/+347 | |
| | ||||||
* | bpo-46009: Do not exhaust generator when send() method raises (GH-29986) | Mark Shannon | 2021-12-08 | 1 | -18/+2 | |
| | ||||||
* | bpo-46008: Move thread-related interpreter state into a sub-struct. (gh-29971) | Eric Snow | 2021-12-07 | 1 | -1/+1 | |
| | | | | | This parallels _PyRuntimeState.interpreters. Doing this helps make it more clear what part of PyInterpreterState relates to its threads. https://bugs.python.org/issue46008 | |||||
* | bpo-46008: Return void from _PyEval_InitState(). (gh-29970) | Eric Snow | 2021-12-07 | 1 | -8/+3 | |
| | | | | | This falls into the category of keep-allocation-and-initialization separate. It also allows us to use _PyEval_InitState() safely in functions that return void. https://bugs.python.org/issue46008 | |||||
* | Fix leak when an exception is raised during generator creation. (GH-29960) | Mark Shannon | 2021-12-07 | 1 | -20/+7 | |
| | ||||||
* | bpo-45947: Place dict and values pointer at fixed (negative) offset just ↵ | Mark Shannon | 2021-12-07 | 1 | -13/+11 | |
| | | | | | | | | | | | | | | | | | | | before GC header. (GH-29879) * Place __dict__ immediately before GC header for plain Python objects. * Fix up lazy dict creation logic to use managed dict pointers. * Manage values pointer, placing them directly before managed dict pointers. * Convert hint-based load/store attr specialization target managed dict classes. * Specialize LOAD_METHOD for managed dict objects. * Remove unsafe _PyObject_GC_Calloc function. * Remove unsafe _PyObject_GC_Malloc() function. * Add comment explaning use of Py_TPFLAGS_MANAGED_DICT. | |||||
* | bpo-45963: Make space for the InterpreterFrame of a generator in that ↵ | Mark Shannon | 2021-12-06 | 1 | -30/+11 | |
| | | | | | | | generator. (GH-29891) * Make generator, coroutine and async gen structs all the same size. * Store interpreter frame in generator (and coroutine). Reduces the number of allocations neeeded for a generator from two to one. | |||||
* | bpo-45885: Specialize COMPARE_OP (GH-29734) | Dennis Sweeney | 2021-12-03 | 1 | -0/+122 | |
| | | | | | | | * Add COMPARE_OP_ADAPTIVE adaptive instruction. * Add COMPARE_OP_FLOAT_JUMP, COMPARE_OP_INT_JUMP and COMPARE_OP_STR_JUMP specialized instructions. * Introduce and use _PyUnicode_Equal | |||||
* | bpo-45753: Interpreter internal tweaks (GH-29575) | Mark Shannon | 2021-12-01 | 1 | -139/+194 | |
| | | | | | | | | | | * Split exit paths into exceptional and non-exceptional. * Move exit tracing code to individual bytecodes. * Wrap all trace entry and exit events in macros to make them clearer and easier to enhance. * Move return sequence into RETURN_VALUE, YIELD_VALUE and YIELD_FROM. Distinguish between normal trace events and dtrace events. | |||||
* | bpo-45711: Change exc_info related APIs to derive type and traceback from ↵ | Irit Katriel | 2021-11-30 | 1 | -6/+3 | |
| | | | | the exception instance (GH-29780) | |||||
* | bpo-45786: Allocate space for frame in frame object. (GH-29729) | Mark Shannon | 2021-11-29 | 1 | -7/+5 | |
| | ||||||
* | bpo-45711: use exc_value instead of exc_type to determine if exc_info is ↵ | Irit Katriel | 2021-11-25 | 1 | -4/+14 | |
| | | | | valid. Add more assertions. (GH-29627) | |||||
* | bpo-44525: Copy free variables in bytecode to allow calls to inner functions ↵ | Mark Shannon | 2021-11-23 | 1 | -46/+66 | |
| | | | | | | | | | | | to be specialized (GH-29595) * Make internal APIs that take PyFrameConstructor take a PyFunctionObject instead. * Add reference to function to frame, borrow references to builtins and globals. * Add COPY_FREE_VARS instruction to allow specialization of calls to inner functions. | |||||
* | bpo-45871: Refactor except matcher validation into a separate function so ↵ | Irit Katriel | 2021-11-22 | 1 | -23/+33 | |
| | | | | that it can be reused. Add missing unit test. (GH-29711) | |||||
* | bpo-45709: Fix tracing when exception is handled. (GH-29638) | Mark Shannon | 2021-11-19 | 1 | -4/+1 | |
| | ||||||
* | bpo-45609: Specialize STORE_SUBSCR (GH-29242) | Dennis Sweeney | 2021-11-19 | 1 | -5/+80 | |
| | | | | | * Specialize STORE_SUBSCR for list[int], and dict[object] * Adds _PyDict_SetItem_Take2 which consumes references to the key and values. | |||||
* | bpo-45829: Specialize BINARY_SUBSCR for __getitem__ implemented in Python. ↵ | Mark Shannon | 2021-11-18 | 1 | -23/+38 | |
| | | | | (GH-29592) | |||||
* | bpo-45510: Specialize BINARY_SUBTRACT (GH-29523) | Dong-hee Na | 2021-11-18 | 1 | -0/+35 | |
| | ||||||
* | bpo-45636: Simplify BINARY_OP (GH-29565) | Brandt Bucher | 2021-11-16 | 1 | -83/+34 | |
| | ||||||
* | bpo-45753: Make recursion checks more efficient. (GH-29524) | Mark Shannon | 2021-11-16 | 1 | -17/+24 | |
| | | | | * Uses recursion remaining, instead of recursion depth to speed up check against recursion limit. | |||||
* | bpo-45636: Remove the old %-formatting fast-path (GH-29532) | Brandt Bucher | 2021-11-15 | 1 | -8/+0 | |
| | ||||||
* | bpo-45711: assert that the type of exc_info is redundant (GH-29518) | Irit Katriel | 2021-11-12 | 1 | -0/+25 | |
| | ||||||
* | bpo-45636: Merge all numeric operators (GH-29482) | Brandt Bucher | 2021-11-11 | 1 | -453/+151 | |
| | ||||||
* | bpo-45711: remove unnecessary DUP_TOP and POP in exception handling (GH-29495) | Irit Katriel | 2021-11-10 | 1 | -4/+1 | |
| | ||||||
* | bpo-45256: Rationalize code around Python-to-Python calls a bit. (GH-29235) | Mark Shannon | 2021-10-28 | 1 | -57/+84 | |
| | ||||||
* | bpo-44525: Add recursive checks for `CALL_FUNCTION_BUILTIN_O` (GH-29271) | Ken Jin | 2021-10-28 | 1 | -0/+6 | |
| | ||||||
* | bpo-45637: Store the frame pointer in the cframe (GH-29267) | Mark Shannon | 2021-10-28 | 1 | -23/+24 | |
| | | | * Rename 'frame' to 'current_frame' |