2011/9/1 Mark Shannon <span dir="ltr"><<a href="mailto:mark@hotpy.org">mark@hotpy.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Cesare Di Mauro wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2011/9/1 Ned Batchelder <<a href="mailto:ned@nedbatchelder.com" target="_blank">ned@nedbatchelder.com</a> <mailto:<a href="mailto:ned@nedbatchelder.com" target="_blank">ned@nedbatchelder.com</a>>><div><div class="h5">
<br>
<br>
When the switchover to the new instruction format happens, what<br>
happens to sys.settrace() tracing? Will it report the same sequence<br>
of line numbers? For a small but important class of program<br>
executions, this is more important than speed.<br>
<br>
--Ned<br>
<br>
<br>
A simple solution: when tracing is enabled, the new instruction format will never be executed (and information tracking disabled as well).<br>
<br>
</div></div></blockquote>
What happens if tracing is enabled *during* the execution of the new instruction format?<br>
Some sort of deoptimisation will be required in order to recover the correct VM state.<br>
<br>
Cheers,<br>
Mark.<br>
</blockquote><div><br></div><div>Sure. I don't think that the regular ceval.c loop will be "dropped" when executing the new instruction format, so we can "intercept" a change like this using the "why" variable, for example, or something similar that is normally used to break the regular loop execution.<br>
</div><div><br></div><div>Anyway, we need to take a look at the code.</div><div><br></div><div>Cheers,</div><div>Cesare</div>