I would note that the accepted [PEP 626](https://peps.python.org/pep-0626/) 
explicitly constrains line-tracing behavior: """Python should guarantee that 
when tracing is turned on, “line” tracing events are generated for all lines of 
code executed and only for lines of code that are executed."""

So even peephole optimizations should now theoretically follow PEP 626 and 
produce the expected line-tracing events. For example, the line "try:" 
typically emits a "NOP" instruction that is kept around just for the sake of 
tracing. If I recall correctly, there might not be 100% compliance with PEP 626 
so far, but in general, things have recently gotten more well-specified and 
predictable in this regard, not less.

The interpreter is still allowed to go wild by, e.g., executing 
type-specialized versions of different opcodes (PEP 659), but just not in such 
a way as to change language semantics, including the semantics of tracing when 
tracing is enabled.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/EK2HDVLAVC7B3EY7RDZTMXIGL5RYQI6J/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to