uncompyle6 2.9.1 2016-10-09 - Improved Python 1.5 decompiling - Handle old-style pre Python 2.2 classes uncompyle6 2.9.0 2016-10-09 - Use xdis 3.0.0 protocol load_module. this Forces change in requirements.txt and _pkg_info_.py - Start Python 1.5 decompiling; another round of work is needed to remove bugs - Simpify python 2.1 grammar - Fix bug with -t ... Wasn't showing source text when -t option was given - Fix 2.1-2.6 bug in list comprehension uncompyle6 2.8.4 2016-10-08 - Python 3 disassembly bug fixes - Python 3.6 fstring bug fixes (from moagstar) - Python 2.1 disassembly - COME_FROM suffixes added in Python3 - use .py extension in verification disassembly uncompyle6 2.8.3 2016-09-11 live from NYC! NOTE: this is possibly the last release before a major reworking of control-flow structure detection is done. - Lots of bug fixes in decompilation: * 3.0 .. 3.4 whileTrue bug * 3.x function declaration deparsing: . 3.0 .. 3.2 *args processing . 3.0 .. 3.2 call name and kwargs bug . 3.0 .. getting parameter of * . 3.0 .. handling varible number of args . 3.0 .. "if" structure bugs * 3.5+ if/else bugs * 2.2-2.6 bugs . try/except control flow . a == b == c -like detection . generator detection . "while .. and" statement bugs . handle "except , " . use older raise format in 2.x - scanner "disassemble" is now "ingest". True disassembly is done by xdis - Start accepting Python 3.1 bytecode - Add --weak-verify option on test_pyenvlib and test_pythonlib. This catches more bugs more easily - bump xdis requirement so we can deparse dropbox 2.5 code - Added H. Goebel's changes before 2.4 in DECOMPYLE-2.4-CHANGELOG.txt uncompyle6 2.8.2 2016-08-29 - Handle Python 3.6 format string conversions !r, !s, !a - Start to handle 3.1 bytecode - Fix some PyPy translation bugs - We now only handle 3.6.0a3+ since that is incompatible with 3.6 before that uncompyle6 2.8.1 2016-08-20 - Add Python 2.2 decompilation - Fix bugs * PyPy LOOKUP_METHOD bug * Python 3.6 FORMAT_VALUE handles expressions now uncompyle6 2.8.0 2016-08-03 - Start Python 3.6 support (moagstar) more work on PEP 498 needed - tidy bytecode/word output - numerous decompiling bugs fixed - grammar testing started - show magic number in deparsed output - better grammar and semantic action segregation based on python bytecode version uncompyle6 2.7.1 2016-07-26 - PyPy bytecodes for 2.7 and 3.2 added - Instruction formatting improved slightly - 2.7 bytecode "continue" bug fixed uncompyle6 2.7.0 2016-07-15 - Many Syntax and verifification bugs removed tested on standard libraries from 2.3.7 to 3.5.1 and they all decompile and verify fine. I'm sure there are more bugs though. uncompyle6 2.6.2 2016-07-11 Manhattenhenge - Extend bytecodes back to 2.3 - Fix bugs: * 3.x and 2.7 set comprehensions, * while1 loops * continue statements - DRY and segregate grammar more uncompyle6 2.6.1 2016-07-08 - Go over Python 2.5 bytecode deparsing all library programs now deparse - Fix a couple bugs in 2.6 deparsing uncompyle6 2.6.0 2016-07-07 - Improve Python 2.6 bytecode deparsing: stdlib now will deparse something - Better <2.6 vs. 2.7 grammar separation - Fix some 2.7 deparsing bugs - Fix bug in installing uncompyle6 script - Doc improvments uncompyle6 2.5.0 2016-06-22 Summer Solstace - Much better Python 3.2-3.5 coverage. 3.4.6 is probably the best;3.2 and 3.5 are weaker - Better AST printing with -t - Better error reporting - Better fragment offset tracking - Some (much-needed) code refactoring uncompyle6 2.4.0 2016-05-18 (in memory of Lewis Bernstein) - Many Python 3 bugs fixed: * Python 3.2 to 3.5 libaries largely uncompyle and most verify - pydisassembler: * disassembles all code objects in a file * can select showing bytecode before or after uncompyle mangling, option -U - DRY scanner code (but more is desired) - Some code cleanup (but more is desired) - Misc Bugs fixed: * handle complex number unmarshaling * Running on Python 2 to works on Python 3.5 bytecodes now uncompyle6 2.3.5 and 2.3.6 2016-05-14 - Python 2 class decorator fix (thanks to Tey) - Fix fragment parsing bugs - Fix some Python 3 parsing bugs: * Handling single in * parameter * "while True" * escape from for inside if * yield expressions - Correct history based on info from Dan Pascu - Fix up pip packaging, ugh. uncompyle6 2.3.4 2016-05-5 - More Python 3.5 parsing bugs addressed - decompiling Python 3.5 from other Python versions works - test from Python 3.2 - remove "__module__ = __name__" in 3.0 <= Python 3.2 uncompyle6 2.3.3 2016-05-3 - Fix bug in running uncompyle6 script on Python 3 - Speed up performance on deparsing long lists by grouping in chunks of 32 and 256 items - DRY Python expressions between Python 2 and 3 uncompyle6 2.3.2 2016-05-1 - Add --version option standalone scripts - Correct License information in package - expose fns uncompyle_file, load_file, and load_module - Start to DRY Python2 and Python3 grammars Separate out 3.2, and 3.5+ specific grammar code - Fix bug in 3.5+ constant map parsing uncompyle6 2.3.0, 2.3.1 2016-04-30 - Require spark_parser >= 1.1.0 uncompyle6 2.2.0 2016-04-30 - Spark is no longer here but pulled separate package spark_parse - Python 3 parsing fixes - More tests uncompyle6 2.2.0 2016-04-02 - Support single-mode (in addtion to exec-mode) compilation - Start to DRY Python 2 and Python 3 grammars - Fix bug in if else ternary construct - Fix bug in uncomplye6 -d and -r options (via lelicopter) uncompyle6 2.1.3 2016-01-02 - Limited support for decompiling Python 3.5 - Improve Python 3 class deparsing - Handle MAKE_CLOSURE opcode - Start to DRY opcode code. - increase test coverage - fix misc small bugs and some improvements uncompyle6 2.1.2 2015-12-31 - Fix cross-version Marshal loading - Handle Python 3.3 . dotted class names - Limited 3.5 support: allows deparsing other versions - Refactor code more, misc bug fixes uncompyle6 2.1.1 2015-12-27 - packaging issues uncompyle6 2.1.0 2015-12-27 - Python 3.x deparsing much more solid - Better cross-version deparsing Some bugs squashed while other run rampant. Some code cleanup while much more is yet needed. More tests added, but many more are needed. uncompyle6 2.0.0 2015-12-11 Changes from uncompyle2 - Can give code fragments given an instruction offset. See https://github.com/rocky/python-uncompyle6/wiki/Deparsing-technology-and-its-use-in-exact-location-reporting - Runs under Python3. Decompiles Python 2.5-2.7 and some Python 3.2-3.4 - Allows for multiple Python grammars, specifically Python2 vs Python 3 - Add a cross-version Python disassembler command-line utility - Add some py.test and start reorganizing tests SPARK: add option to show grammar rules applied allow Python-style # comments in grammar Runs on Python 3 and Python 2