<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ida-tui.git/experiments/bench_pack_trace.py, branch main</title>
<subtitle>tui for headless ida</subtitle>
<id>https://git.sl0p.foo/ida-tui.git/atom/experiments/bench_pack_trace.py?h=main</id>
<link rel='self' href='https://git.sl0p.foo/ida-tui.git/atom/experiments/bench_pack_trace.py?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/'/>
<updated>2026-08-09T20:15:23Z</updated>
<entry>
<title>Drop the settrace workaround: ida-codemode 0.3.2 deleted the hook</title>
<updated>2026-08-09T20:15:23Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-08-09T20:15:23Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=a5137fe0c6d6bb2c44a88f4ebc08e06c08161b2f'/>
<id>urn:sha1:a5137fe0c6d6bb2c44a88f4ebc08e06c08161b2f</id>
<content type='text'>
_script() ran every snippet with sys.settrace(None) to detach Code Mode's
per-line trace hook, which returned itself and so enabled line tracing in
every frame it saw -- 52x on ida_bytes.get_flags, and the whole residual
gap against the old private worker.

0.3.2 removes that hook entirely (zero settrace refs); the deadline is now
a C-level thread interrupt, runtime._interrupt_thread. Re-measured on a
200-row listing page of main in targets/bash: the workaround buys 0.99x.

So it goes, and the caveat goes with it -- a pure-Python loop inside a
snippet is once again bounded by its deadline. _PACK_EPILOGUE measures
0.97x for the same reason (dumps_json got a C fast path) but is kept for
encoder determinism, with its stale 114x claim corrected.

experiments/bench_pack_trace.py is the harness for both numbers.

Full gate green: 1031 passed, 0 failed.
</content>
</entry>
</feed>
