Nick Coghlan added the comment:

+1 for listing the nested code objects after the original one.

In reviewing Serhiy's patch, the core technical implementation looks OK to me, 
but I think we may want to go with a "depth" argument rather than a simple 
"recursive" flag.

My rationale for that relates to directly disassembling module and class source 
code:

- dis(module_source, depth=1) # Module, class bodies, function bodies
- dis(class_source, depth=1) # Class and method bodies

(with the default depth being 0, to disable recursive descent entirely)

Only if you set a higher depth than 1 would you start seeing things like 
closures, comprehension bodies, and nested classes.

With a simple all-or-nothing flag, I think module level recursive disassembly 
would be too noisy to be useful.

The bounded depth approach would also avoid a problem with invalid bytecode 
manipulations that manage to create a loop between two bytecode objects. While 
the *compiler* won't do that, there's no guarantee that the disassembler is 
being fed valid bytecode, so we should avoid exposing ourselves to any infinite 
loops in the display code.

----------

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

Reply via email to