[3.11] GH-93516: Speedup line number checks when tracing. (GH-93763) by markshannon · Pull Request #94023 · python/cpython
- Use a lookup table to reduce overhead of getting line numbers during tracing.
Backport of #93763
The ABI breakage is not really a break, as the new field is inserted (almost) at the end, after any other fields used in C extensions.
| self.write(f".co_name = {co_name},") | ||
| self.write(f".co_qualname = {co_qualname},") | ||
| self.write(f".co_linetable = {co_linetable},") | ||
| self.write("._co_linearray = NULL,") |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, unrelated question, but does this mean I need to add the field from my _co_code change here too?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically, no. C will initialize any fields not explicitly mentioned to zero.
I think it is good practice to be explicit, though.
@markshannon I cannot push to the remote repo, could you please ensure the "allow pushes from maintainers checkbox is activated on the right column"?
Closing in favour of #94127 to allow edits.