Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f6f4e8a662 
								
							 
						 
						
							
							
								
								GH-132554: "Virtual" iterators (GH-132555)  
							
							... 
							
							
							
							* FOR_ITER now pushes either the iterator and NULL or leaves the iterable and pushes tagged zero
* NEXT_ITER uses the tagged int as the index into the sequence or, if TOS is NULL, iterates as before. 
							
						 
						
							2025-05-27 15:59:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lysandros Nikolaou 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								60202609a2 
								
							 
						 
						
							
							
								
								gh-132661: Implement PEP 750 ( #132662 )  
							
							... 
							
							
							
							Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Wingy <git@wingysam.xyz>
Co-authored-by: Koudai Aono <koxudaxi@gmail.com>
Co-authored-by: Dave Peck <davepeck@gmail.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Co-authored-by: Paul Everitt <pauleveritt@me.com>
Co-authored-by: sobolevn <mail@sobolevn.me> 
							
						 
						
							2025-04-30 11:46:41 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									mpage 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								053c285f6b 
								
							 
						 
						
							
							
								
								gh-130704: Strength reduce LOAD_FAST{_LOAD_FAST} ( #130708 )  
							
							... 
							
							
							
							Optimize `LOAD_FAST` opcodes into faster versions that load borrowed references onto the operand stack when we can prove that the lifetime of the local outlives the lifetime of the temporary that is loaded onto the stack. 
							
						 
						
							2025-04-01 10:18:42 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								83d54fa876 
								
							 
						 
						
							
							
								
								GH-130296: Remove _PyOpcode_max_stack_effect as it is no longer used (GH-131493)  
							
							
							
						 
						
							2025-03-20 11:42:54 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yan Yanchii 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								75103d975c 
								
							 
						 
						
							
							
								
								gh-126835: Move constant tuple folding from ast_opt to CFG ( #130769 )  
							
							
							
						 
						
							2025-03-19 20:59:55 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yan Yanchii 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								55815a6474 
								
							 
						 
						
							
							
								
								gh-130480: Move duplicate LOAD_SMALL_INT optimization from codegen to CFG ( #130481 )  
							
							
							
						 
						
							2025-03-14 21:23:27 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								89df62c120 
								
							 
						 
						
							
							
								
								GH-128534: Fix behavior of branch monitoring for async for (GH-130847)  
							
							... 
							
							
							
							* Both branches in a pair now have a common source and are included in co_branches 
							
						 
						
							2025-03-07 14:30:31 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tomasz Pytel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								aeb2327386 
								
							 
						 
						
							
							
								
								gh-130574: renumber RESUME opcode from 149 to 128 (GH-130685)  
							
							
							
						 
						
							2025-03-06 08:59:36 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a1417b211f 
								
							 
						 
						
							
							
								
								gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ( #129700 )  
							
							
							
						 
						
							2025-02-07 22:39:54 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								75b4962157 
								
							 
						 
						
							
							
								
								GH-128914: Remove all but one conditional stack effects (GH-129226)  
							
							... 
							
							
							
							* Remove all 'if (0)' and 'if (1)' conditional stack effects
* Use array instead of conditional for BUILD_SLICE args
* Refactor LOAD_GLOBAL to use a common conditional uop
* Remove conditional stack effects from LOAD_ATTR specializations
* Replace conditional stack effects in LOAD_ATTR with a 0 or 1 sized array.
* Remove conditional stack effects from CALL_FUNCTION_EX 
							
						 
						
							2025-01-27 16:24:48 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Gross 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a10f99375e 
								
							 
						 
						
							
							
								
								Revert "GH-128914: Remove conditional stack effects from bytecodes.c and the code generators (GH-128918)" (GH-129202)  
							
							... 
							
							
							
							The commit introduced a ~2.5-3% regression in the free threading build.
This reverts commit ab61d3f430 
							
						 
						
							2025-01-23 09:26:25 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ab61d3f430 
								
							 
						 
						
							
							
								
								GH-128914: Remove conditional stack effects from bytecodes.c and the code generators (GH-128918)  
							
							
							
						 
						
							2025-01-20 17:09:23 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f826beca0c 
								
							 
						 
						
							
							
								
								GH-128375: Better instrument for FOR_ITER (GH-128445)  
							
							
							
						 
						
							2025-01-06 17:54:47 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d2f1d917e8 
								
							 
						 
						
							
							
								
								GH-122548: Implement branch taken and not taken events for sys.monitoring (GH-122564)  
							
							
							
						 
						
							2024-12-19 16:59:51 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Donghee Na 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								48c70b8f7d 
								
							 
						 
						
							
							
								
								gh-115999: Enable BINARY_SUBSCR_GETITEM for free-threaded build (gh-127737)  
							
							
							
						 
						
							2024-12-19 11:08:17 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								faa3272fb8 
								
							 
						 
						
							
							
								
								GH-125837: Split LOAD_CONST into three. (GH-125972)  
							
							... 
							
							
							
							* Add LOAD_CONST_IMMORTAL opcode
* Add LOAD_SMALL_INT opcode
* Remove RETURN_CONST opcode 
							
						 
						
							2024-10-29 11:15:42 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7a65439b93 
								
							 
						 
						
							
							
								
								GH-122390: Replace _Py_GetbaseOpcode with _Py_GetBaseCodeUnit (GH-122942)  
							
							
							
						 
						
							2024-08-13 14:22:57 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2e14a52cce 
								
							 
						 
						
							
							
								
								GH-122160: Remove BUILD_CONST_KEY_MAP opcode. (GH-122164)  
							
							
							
						 
						
							2024-07-25 16:24:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								9cefcc0ee7 
								
							 
						 
						
							
							
								
								GH-120507: Lower the BEFORE_WITH and BEFORE_ASYNC_WITH instructions. ( #120640 )  
							
							... 
							
							
							
							* Remove BEFORE_WITH and BEFORE_ASYNC_WITH instructions.
* Add LOAD_SPECIAL instruction
* Reimplement `with` and `async with` statements using LOAD_SPECIAL 
							
						 
						
							2024-06-18 12:17:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								97b69db167 
								
							 
						 
						
							
							
								
								gh-93691: fix too broad source locations of for statement iterators ( #120330 )  
							
							
							
						 
						
							2024-06-12 12:53:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jelle Zijlstra 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								98e855fcc1 
								
							 
						 
						
							
							
								
								gh-119180: Add LOAD_COMMON_CONSTANT opcode ( #119321 )  
							
							... 
							
							
							
							The PEP 649 implementation will require a way to load NotImplementedError
from the bytecode. @markshannon suggested implementing this by converting
LOAD_ASSERTION_ERROR into a more general mechanism for loading constants.
This PR adds this new opcode. I will work on the rest of the implementation
of the PEP separately.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> 
							
						 
						
							2024-05-22 00:46:39 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Gross 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2ba2c142a6 
								
							 
						 
						
							
							
								
								gh-118527: Intern code name and filename on default build ( #118576 )  
							
							... 
							
							
							
							Interned and non-interned strings are treated differently by `marshal`,
so be consistent between the default and free-threaded build. 
							
						 
						
							2024-05-06 17:24:14 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								981d172f7f 
								
							 
						 
						
							
							
								
								GH-112354: END_FOR instruction to only pop one value. (GH-114247)  
							
							... 
							
							
							
							* Compiler emits END_FOR; POP_TOP instead of END_FOR. To support tier 2 side exits in loops. 
							
						 
						
							2024-01-24 15:10:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d49aba5a7a 
								
							 
						 
						
							
							
								
								gh-111354: Simplify _PyGen_yf by moving some of its work to the compiler and frame state ( #111648 )  
							
							
							
						 
						
							2023-11-03 10:01:36 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								52cc4af6ae 
								
							 
						 
						
							
							
								
								gh-111354: simplify detection of RESUME after YIELD_VALUE at except-depth 1  ( #111459 )  
							
							
							
						 
						
							2023-11-02 10:18:43 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								22e65eecaa 
								
							 
						 
						
							
							
								
								GH-105848: Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW (GH-109300)  
							
							
							
						 
						
							2023-09-13 10:25:45 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								8b55adfa8f 
								
							 
						 
						
							
							
								
								gh-109256: allocate opcode IDs for internal opcodes in their own range ( #109269 )  
							
							
							
						 
						
							2023-09-12 10:36:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0858328ca2 
								
							 
						 
						
							
							
								
								GH-108614: Add RESUME_CHECK instruction (GH-108630)  
							
							
							
						 
						
							2023-09-07 14:39:03 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								665a4391e1 
								
							 
						 
						
							
							
								
								gh-105481: generate op IDs from bytecode.c instead of hard coding them in opcode.py ( #107971 )  
							
							
							
						 
						
							2023-08-16 22:25:18 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a9caf9cf90 
								
							 
						 
						
							
							
								
								GH-105848: Simplify the arrangement of CALL's stack (GH-107788)  
							
							
							
						 
						
							2023-08-09 18:19:39 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1d857da7f0 
								
							 
						 
						
							
							
								
								GH-77273: Better bytecodes for f-strings (GH-6132)  
							
							
							
						 
						
							2023-06-14 16:15:08 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4bfa01b9d9 
								
							 
						 
						
							
							
								
								GH-104584: Plugin optimizer API (GH-105100)  
							
							
							
						 
						
							2023-06-02 11:46:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Pablo Galindo Salgado 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1ef61cf71a 
								
							 
						 
						
							
							
								
								gh-102856: Initial implementation of PEP 701 ( #102855 )  
							
							... 
							
							
							
							Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Batuhan Taskaya <isidentical@gmail.com>
Co-authored-by: Marta Gómez Macías <mgmacias@google.com>
Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com> 
							
						 
						
							2023-04-19 11:18:16 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b4978ff872 
								
							 
						 
						
							
							
								
								GH-88691: Shrink the CALL caches (GH-103230)  
							
							
							
						 
						
							2023-04-05 14:15:49 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								121057aa36 
								
							 
						 
						
							
							
								
								GH-89987: Shrink the BINARY_SUBSCR caches (GH-103022)  
							
							
							
						 
						
							2023-03-29 15:53:30 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									penguin_wwy 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								753fc8a5d6 
								
							 
						 
						
							
							
								
								gh-101632: Add the new RETURN_CONST opcode ( #101633 )  
							
							
							
						 
						
							2023-02-07 22:32:21 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3c033a2e6f 
								
							 
						 
						
							
							
								
								GH-99554: Pack location tables more effectively (GH-99556)  
							
							
							
						 
						
							2022-12-21 16:41:18 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								22863df7ca 
								
							 
						 
						
							
							
								
								GH-96793: Change FOR_ITER to not pop the iterator on exhaustion. (GH-96801)  
							
							... 
							
							
							
							Change FOR_ITER to have the same stack effect regardless of whether it branches or not.
Performance is unchanged as FOR_ITER (and specialized forms jump over the cleanup code). 
							
						 
						
							2022-10-27 11:55:03 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								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 <mark@hotpy.org> 
							
						 
						
							2022-07-05 14:38:44 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Dennis Sweeney 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ken Jin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b083450f88 
								
							 
						 
						
							
							
								
								GH-93429: Merge LOAD_METHOD back into LOAD_ATTR (GH-93430)  
							
							
							
						 
						
							2022-06-14 11:36:22 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ken Jin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d52ffc1d1f 
								
							 
						 
						
							
							
								
								gh-93382: Cache result of PyCode_GetCode in codeobject (GH-93383)  
							
							... 
							
							
							
							Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Co-authored-by: Dennis Sweeney <36520290+sweeneyde@users.noreply.github.com> 
							
						 
						
							2022-06-04 00:41:18 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e48ac9c100 
								
							 
						 
						
							
							
								
								GH-90690: Remove PRECALL instruction (GH-92925)  
							
							
							
						 
						
							2022-05-19 11:05:26 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Inada Naoki 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6dcfd6c5e3 
								
							 
						 
						
							
							
								
								gh-78214: marshal: Stabilize FLAG_REF usage (GH-8226)  
							
							... 
							
							
							
							Use FLAG_REF always for interned strings.
Refcounts of interned string is very unstable.
When compiling same source, refcounts of interned string in the output may be 1 or >1.
It makes FLAG_REF usage unstable.
To help reproducible build, use FLAG_REF for interned string even if refcnt(obj)==1. 
							
						 
						
							2022-05-04 10:01:15 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								944fffee89 
								
							 
						 
						
							
							
								
								GH-88116: Use a compact format to represent end line and column offsets. (GH-91666)  
							
							... 
							
							
							
							* Stores all location info in linetable to conform to PEP 626.
* Remove column table from code objects.
* Remove end-line table from code objects.
* Document new location table format 
							
						 
						
							2022-04-21 16:10:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Irit Katriel 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a00518d9ad 
								
							 
						 
						
							
							
								
								bpo-47120: Replace the JUMP_ABSOLUTE opcode by the relative JUMP_BACKWARD (GH-32115)  
							
							
							
						 
						
							2022-03-31 14:14:15 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f193631387 
								
							 
						 
						
							
							
								
								bpo-46841: Use inline caching for calls (GH-31709)  
							
							
							
						 
						
							2022-03-07 11:45:00 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Brandt Bucher 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								05a8bc1c94 
								
							 
						 
						
							
							
								
								bpo-46841: Use inline caching for attribute accesses (GH-31640)  
							
							
							
						 
						
							2022-03-03 15:31:00 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3b0f1c5a71 
								
							 
						 
						
							
							
								
								bpo-46841: Use inline cache for BINARY_SUBSCR. (GH-31618)  
							
							
							
						 
						
							2022-03-01 16:00:34 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mark Shannon 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								59585d6b2e 
								
							 
						 
						
							
							
								
								bpo-46329: Streamline calling sequence a bit. (GH-31465)  
							
							... 
							
							
							
							* Move handling of bound-methods to PRECALL.
* Remove call_shape.postcall_shrink
* Remove call_shape.callable
* Remove call_shape.callable. Change CALL oparg to match PRECALL oparg.
* Move KW_NAMES before PRECALL.
* Update opcode docs in dis.rst 
							
						 
						
							2022-02-21 18:26:47 +00:00