Skip to content

Releases: rocky/python-uncompyle6

Totoro

24 Aug 13:31
Compare
Choose a tag to compare

The main change is to add a tree-transformation phase. This simplifies the
code a little and allows us to turn if ...: raise AssertionError into
assert, and many if ..: else if ... into if ... elif ..

Use options --show=before and --show=after to see the before the tree transformation phase and after the tree transformation phase.

Most of the heavy lifting for this was done by x0ret.

Other changes:

  • Fix issue #275, #283 (process to fix this bug is documented on wiki), #284
  • blacken more code
  • CircleCI adjustments for a changing CircleCi
  • Require more recent xdis for Python 3.8
  • Fix bugs in code using BUILD_LIST_UNPACK and variants

Pre-independence day

04 Jul 00:17
Compare
Choose a tag to compare

Again, most of the work in this is release is thanks to x0ret.

  • Handle annotation args in Python 3.x
  • Fix vararg and function signatures in 3.x
  • Some 3.x < 3.6 while (1)/if fixes — others remain
  • Start reinstating else if -> elif
  • LOAD_CONST -> LOAD_CODE where appropriate
  • option --weak-verify is now --syntax-verify
  • code cleanups, start using black to reformat text

Fleetwood at 65

12 Jun 17:17
Compare
Choose a tag to compare

Most of the work in this is release is thanks to x0ret.

  • Major work was done by x0ret to correct function signatures and include annotation types
  • Handle Python 3.6 STORE_ANNOTATION #58
  • Friendlier assembly output
  • LOAD_CONST replaced by LOAD_STR where appropriate to simplify parsing and improve clarity
  • remove unneeded parenthesis in a generator expression when it is the single argument to the function #247
  • Bug in noting an async function #246
  • Handle unicode docstrings and fix docstring bugs #241
  • Add uncompyle6 command-line short option -T as an alternate for --tree+
  • Some grammar cleanup

Henry and Lewis

19 May 21:25
Compare
Choose a tag to compare

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.

  • A number of Python 3.7+ chained comparisons were fixed
  • Revise Python 3.6ish format string handling
  • Go over operator precedence, e.g. for AST IfExp

Reported Bug Fixes

release-python-3.3.2

04 May 03:33
Compare
Choose a tag to compare

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)

release-3.3.1

19 Apr 10:09
Compare
Choose a tag to compare

Lots of decomplation bugs, especially in the 3.x series fixed. Don't worry though, many more remain.

  • Add annotation return values in 3.6+
  • Fix 3.6+ lambda parameter handling decompilation
  • Fix 3.7+ chained comparision decompilation
  • split out semantic-action customization into more separate files
  • Add 3.8 try/else
  • Fix 2.7 generator decompilation
  • Fix some parser failures fixes in 3.4+ using test_pyenvlib
  • Add more run tests

release-3.3.0

14 Apr 11:38
Compare
Choose a tag to compare
  • First cut at Python 3.8 (many bugs remain)
  • Reinstate -c | --compile (compile before disassembly) option
  • The usual smattering of bug and doc fixes

Mueller report