[New-bugs-announce] [issue46817] Add a line-start table to the code object.
report at bugs.python.org
Mon Feb 21 07:59:12 EST 2022
New submission from Mark Shannon <mark at hotpy.org>:
Computing whether an instruction is the first on a line (for tracing) in the interpreter is complicated and slow. Doing it in the compiler should be simpler and has no runtime cost.
Currently we decide if the current instruction is the first on a line, by using the `co_lines` table, but if the previous instruction executed was a jump from the same line over a block of instructions with different line number(s) then we can get this wrong.
This doesn't seem to a problem now, but could be with either:
Specialization of FOR_ITER inlining generators, or
Compiler improvements leading to different code layout.
The table is only one bit per instruction, so shouldn't be a problem in terms of space.
components: Interpreter Core
nosy: Mark.Shannon, iritkatriel
title: Add a line-start table to the code object.
versions: Python 3.11
Python tracker <report at bugs.python.org>
More information about the New-bugs-announce