[pypy-dev] What is ABORT_ESCAPE?

Benjamin Peterson benjamin at python.org
Fri Sep 26 18:27:28 CEST 2014


On Fri, Sep 26, 2014, at 12:22, Timothy Baldridge wrote:
> I have a JIT I've been working on for a few days now, and initial results
> were awesome, the JIT log showed just a few assembly ops to execute each
> iteration of a simple "count to 10000" loop. However, then I changed
> something and the traces stopped being generated.
> 
> I hooked up the JIT hooks and noticed that about every 1000 iterations
> I'd
> get "ABORT_ESCAPE".  After a bit more printing I get this:
> https://gist.githubusercontent.com/halgari/3cd3cd10f359f2103b89/raw/d8f335f72af5cf13c0b47b26e6d1e8b5c91b02ab/gistfile1.txt
> 
> Now if I disable virtualizables, everything works fine. What should I be
> looking for to troubleshoot this?

It means a virtualizable was used a function that JIT did not trace
through (a "residual call"). Hopefully, you can either allow the JIT to
trace through that call or get the function to not use the
virtualizable.


More information about the pypy-dev mailing list