Nick Coghlan <ncogh...@gmail.com> added the comment:

I really like the idea of adding some lower level infrastructure to dis to make 
it generator based, making the disassembly more amenable to programmatic 
manipulation.

Consider if, for each line disassemble() currently prints, we had an underlying 
iterator that yielded a named tuple consisting of (index, opcode, oparg, 
linestart, details). I've created a proof-of-concept for that in my sandbox 
(http://hg.python.org/sandbox/ncoghlan/file/get_opinfo/Lib/dis.py) which adds a 
get_opinfo() function that does exactly. With disassemble() rewritten to use 
that, test_dis and test_peepholer still pass as currently written.

Near-term, test_peepholer could easily continue to do what it does now (i.e. 
use the higher level dis() function and redirect sys.stdout). Longer term, it 
could be written to analyse the opcode stream instead of doing string 
comparisons.

----------
hgrepos: +17

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11816>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to