
Greg Ewing wrote:
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.
Huh? See my Addendum: to Mark's message that I just posted, which explains the whole story in detail. I forgot to change the subject line which still reads "Opcode reordering". Ah wait... from the archives: http://www.python.org/pipermail/python-dev/2000-July/014395.html If you think your suggestion still holds, then could you elaborate a bit more? -- Vladimir MARANGOZOV | Vladimir.Marangozov@inrialpes.fr http://sirac.inrialpes.fr/~marangoz | tel:(+33-4)76615277 fax:76615252