Skip to content

Releases: rocky/python-decompile3

3.9.2

22 Jul 15:19
Compare
Choose a tag to compare
  • track xdis API changes
  • bug fixes (many more remain)

BlackHat Asia 2024 Ides of March

17 Mar 11:43
Compare
Choose a tag to compare

Lots of changes major changes. track xdis API has changes.

Separate Phases more clearly:

  • disassembly
  • tokenization
  • parsing
  • abstracting to AST (more is done in newer projects)
  • printing

Although we do not decompile bytecode greater than 3.8, code supports running from up to 3.12.

Many bugs fixed.

A lot of Linting and coding style modernization.

Work done in preparation for Blackhat Asia 2024

3.9.0

21 May 04:53
Compare
Choose a tag to compare
  • Speed up processing long literal collections: dictionary, list, set; we can also handle about 5K of them now
  • Improve handling of async comprehensions: async "for"/"forelse", "async with"
  • Reorganize semantic actions so that n_actions are separate; likewise for comprehensions and generators
  • Improve 3.8 decompilation
  • Support decompiling code fragment of comprehensions
  • Correct various operator precendence, and show operator precedence in -T/--tree++
  • Correct PyPy decompilation, suport pyston-3.8-2.3.3
  • Reorganize parsing modules and classes, to support fragment deparsing
  • Add BINARY_MATRIX_MULTPILY in grammar
  • Add psuedo opcode: LOAD_ARG; JUMP_BACK -> JUMP_LOOP; MAKE_FUNCTION_8 -> MAKE_FUNCTION_CLOSURE
  • Numerous bugs fixed, especially comprehension bugs
  • Code cleanup
  • Black format more files

Cairole - 2

19 Nov 21:29
Compare
Choose a tag to compare
  • Sync version number with corresponding uncompile6 version. The big change in 3.7.7 was using xdis >= 6.x
  • use expr_stmt instead of call_stmt when that is what is meant
  • remove float version tests
  • better, but not perfect, list .. if comprehensions
  • PyPy 3.8 testing support
  • Start PyPy 3.7 and PyPy 3.8 decompilation support

Jed + Rocky average

29 Oct 23:21
Compare
Choose a tag to compare
  • Better handling of invalid bytecode magic
  • Python 3.8 "try" with a "return" in "finally". Issue #67
  • Support running from 3.9 and 3.10 although we do not support those bytecodes

3.7.6

16 Oct 01:33
Compare
Choose a tag to compare
  • Fix fragment comprehension bugs
  • Makefile tolerance for pyston
  • Revise for xdis 6.0.0 - in Python version comparisions use tuples instead of floats

3.7.5

11 Jul 00:37
Compare
Choose a tag to compare

Fix various bugs in fragment semantic actions. This mostly got stale with disuse, and make usable again now that it is used in trepan3k.

Day after Fathers Day

21 Jun 06:19
Compare
Choose a tag to compare

First PyPI release.

The version number is set to roughly the corresponding uncompyle6 version.