A cross-version Python bytecode decompiler
Again, most of the work in this is release is thanks to x0ret.
while
(1)/if
fixes — others remainLOAD_CONST
-> LOAD_CODE
where appropriate--weak-verify
is now --syntax-verify
Most of the work in this is release is thanks to x0ret.
STORE_ANNOTATION
#58
LOAD_CONST
replaced by LOAD_STR
where appropriate to simplify parsing and improve clarityuncompyle6
command-line short option -T
as an alternate for --tree+
As before, decomplation bugs fixed. The focus has primarily been on Python 3.7. But with this release, releases will be put on hold,as a better control-flow detection is worked on . Tis has been needed for a while, and is long overdue. It will probably also take a while to get done as good as what we have now.
However this work will be done in a new project decompyle3. In contrast to uncompyle6 the code wil be written assuming a modern Python 3, e.g. 3.7. It is originally intended to decompile Python version 3.7 and greater.
As before, lots of decomplation bugs fixed. The focus has primarily been on Python 3.6. We can now parse the entire 3.6.8 Python library and verify that without an error. The same is true for 3.5.8. A number of the bugs fixed though are not contained to these versions. In fact some span back as far as 2.x
But as before, many more remain in the 3.7 and 3.8 range which will get addressed in future releases
Pypy 3.6 support was started. Pypy 3.x detection fixed (via xdis)
Lots of decomplation bugs, especially in the 3.x series fixed. Don't worry though, many more remain.
Mostly more of the same: bug fixes and pull requests.