2011/9/1 Mark Shannon <span dir="ltr">&lt;<a href="mailto:mark@hotpy.org">mark@hotpy.org</a>&gt;</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 &lt;<a href="mailto:ned@nedbatchelder.com" target="_blank">ned@nedbatchelder.com</a> &lt;mailto:<a href="mailto:ned@nedbatchelder.com" target="_blank">ned@nedbatchelder.com</a>&gt;&gt;<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&#39;t think that the regular ceval.c loop will be &quot;dropped&quot; when executing the new instruction format, so we can &quot;intercept&quot; a change like this using the &quot;why&quot; 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>