Skip to content

Releases: rocky/python-decompile3

BSides NYC 2025

Choose a tag to compare

@rocky rocky released this 01 Oct 22:54
  • Submit to Python packaging hassle imposed by Python 3.13+
  • Handle Python 3.10-3.13 more gracefully
  • track xdis API changes
  • bug fixes (many more remain)

3.9.2

Choose a tag to compare

@rocky rocky released this 22 Jul 15:19
  • track xdis API changes
  • bug fixes (many more remain)

BlackHat Asia 2024 Ides of March

Choose a tag to compare

@rocky rocky released this 17 Mar 11:43

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

Choose a tag to compare

@rocky rocky released this 21 May 04:53
  • 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

Choose a tag to compare

@rocky rocky released this 19 Nov 21:29
  • 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

Choose a tag to compare

@rocky rocky released this 29 Oct 23:21
  • 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

Choose a tag to compare

@rocky rocky released this 16 Oct 01:33
  • 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

Choose a tag to compare

@rocky rocky released this 11 Jul 00:37

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

Choose a tag to compare

@rocky rocky released this 21 Jun 06:19

First PyPI release.

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