Ditching SET_LINENO (RE: [Python-Dev] Reordering opcodes (PEP 203 Augmented Assignment))

Greg Ewing greg@cosc.canterbury.ac.nz
Mon, 31 Jul 2000 14:18:26 +1200 (NZST)

> the trick is arranging to pay something
> at runtime for it only when you're actually using it.

When tracing is in effect, switch to another copy of ceval2()
which contains extra code to do whatever grubby things are
needed to detect the start of a line using the line
starts table. (Search it before executing each opcode,
expand it into a parallel array of flags, or whatever.)

The two versions of ceval2() could be generated from the same
source file with some #defines.

Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury,	   | A citizen of NewZealandCorp, a	  |
Christchurch, New Zealand	   | wholly-owned subsidiary of USA Inc.  |
greg@cosc.canterbury.ac.nz	   +--------------------------------------+