◐ Shell
clean mode source ↗

[3.11] GH-93516: Backport GH-93769: Store offset of first traceable instruction in code object by markshannon · Pull Request #93818 · python/cpython

@markshannon

The ABI check fails, due to adding the _co_firsttraceable field.
I've added it near the end, so that code that accesses fields other that co_extra and co_code_adaptive will not be effected.

@nedbat

I tried this compared to 3.11.0b3, and this code is slightly slower?

cov proj python3.11 gh93818 93818 vs 3.11
6.4.1 bug1339.py 0.846 s 0.856 s 101.20%
6.4.1 bm_sudoku.py 55.436 s 57.561 s 103.83%
6.4.1 bm_spectral_norm.py 66.488 s 68.803 s 103.48%

@markshannon

Odd.
I wouldn't expect this to have much effect compared to removing the overhead of line number lookup, or caching the result of PyCode_GetCode(), but I would expect it to be positive.

Let's remeasure after those are merged.

)

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

@pablogsal

I'm regenerating 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

Closing this until I've had time to investigate the slowdown once #94127 is merged.