◐ Shell
clean mode source ↗

[3.11] GH-93516: Speedup line number checks when tracing. (GH-93763) by markshannon · Pull Request #94023 · python/cpython

@markshannon

  • Use a lookup table to reduce overhead of getting line numbers during tracing.

Backport of #93763

)

* Use a lookup table to reduce overhead of getting line numbers during tracing.

@markshannon

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.

Fidget-Spinner

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.

@pablogsal

I will regenerate the ABI in this PR

@pablogsal

@markshannon I cannot push to the remote repo, could you please ensure the "allow pushes from maintainers checkbox is activated on the right column"?

@markshannon

There is no "allow pushes from maintainers" checkbox.
Could you make a PR on this branch?

@markshannon

Closing in favour of #94127 to allow edits.