Skip to content

Releases: rocky/python-xdis

Nathanman

09 Nov 00:21
Compare
Choose a tag to compare
  • Support for Python 3.12 and 3.12 added courtesy of Elliot Tarbet 2elli
  • Fixes issues: #137, #138, #146, and #147
  • Include Python 3.12.5
  • Raise exception on invalid timestamp

6.1.1

21 Jul 16:46
Compare
Choose a tag to compare
  • Greatly improve extended-format output. (More could be done though)
  • Update Python versions recognize, e.g. 3.12.4
  • Add nullaryloadop for nullary load opcodes
  • More code linting and type annotation

BlackHat Asia 2024 -- Ides of March

16 Mar 01:17
Compare
Choose a tag to compare

Lots of changes major changes. API has changed.

We now support many disassembly options:

  • classic: disasm-like output
  • bytes: disasm-like output with bytecode
  • extended: simple interpretation of previous sequence of instructions
  • extended-bytes: same as above, but with "bytes" bytecode ouptut
  • header: show header/metadata information only

This is reflected in the --format (-F) options on pydisasm.
Option --show-source (-S) gives add the source text line (or part of it) before assembly instructions that implement the line.

Released Python magic numbers have been updated as of this release (up to Python 3.12.2, including PyPy magic numbers.

Some support for the GraalVM
implementation of Python started.

Many bugs fixed.

A lot of Linting and coding style modernization.

typing.NameTuple used for Python versions that support this.
Additional fields "start_offset" and "tos_str" added to instruction.

Elliot Tarbet (2elli) largely provided support for Python 3.11 and 3.12 bytecode

Season Update

23 Dec 03:28
Compare
Choose a tag to compare
  • Detect versions pypy3.8.15, pypy-3.9.15
  • Dectect Python 3.{7,8,9}.14 3.10.{5,6,7}
  • correct 3.10+ pydisasm -F xasm label
  • Revise marshal error handling (Issue #97)
  • Improve PyPy 3.7 CALL_FUNCTION arg interpretation
  • Fix 1.5-2.x bugs in line number encoding
  • Fix showing MAKE_FUNCTION operand
  • Miscellaneous lint, black, and isort changes

HF+LB-1

19 May 22:20
Compare
Choose a tag to compare
  • Detect 3.7.[7-13], 3.9.[8-13], 3.10.[1-4], PyPy 2.7.12, 3.[8-9]pypy
  • Correct line-number detection on Python 1.0-1.4
  • Handle SET_LINENO in older pythons
  • Warn about wrong names in after RESERVE_FAST in Python 1.x
  • Some PyPy x-3.9.7 tolerance
  • Add Pypy 3.8 support
  • Better PyPy 3.6 formatting
  • Correct relative jump target calculation in 3.10

6.0.3

06 Nov 00:13
Compare
Choose a tag to compare
  • xasm format fixes
  • more Python version tuple compare conversions
  • add version_str_to_tuple() to convert the other way. This is useful in xasm, for example.

Jed + Rocky average

29 Oct 22:26
Compare
Choose a tag to compare
  • Remove str2float(), sysinfo2float() and magic_int2float(). With Python 3.10, this is no longer tenable
  • Reduce PYTHON_VERSION usage in xdis.
  • Allow optional delimiter and start length in version_tuple_to_str()
  • fix logic bug in setting MAGIC
  • Add a little Python 3.8.5 Graal (Java VM) knowledge.

6.0.1

23 Oct 01:34
Compare
Choose a tag to compare
  • Add PyPy 3.8 opcodes and disassembly
  • Accept Python 3.8.12
  • Fix some small lingering bugs introduced converting Python version number floats to tuples

6.0.0

16 Oct 01:02
Compare
Choose a tag to compare

Reworked for Python 3.10.

We had been internally using floating point numbers for version testing.
Clearl this doesn't work to distinguish 3.1 from 3.10.
(This was a flaw known about for a while and we'd been avoiding).

  • Add 3.10 opcodes.
  • Add 3.9 and 3.10 testing.
  • Some tolerance for running from 3.11
  • Update magic numbers
  • Expanding testing to include pyston and PyPy 3.7
  • Improve distribution packaging, e.g. Python 3 wheels should no longer be attmpted on Python 2.x

5.0.13

25 Sep 01:48
Compare
Choose a tag to compare

Added knowledge of Python versions 3.6.15 and 3.7.12.

However the main motivation was to impove packaging to handle administration
of the 3 different branches or dialects of Python 2.4-2.7, 3.1-3.2, 3.3-3.5, and 3.6+

Restrict wheel packaging for Python 3 only.

Use the wheel for only the 3.x and newer version of Python.
Use eggs for 2.x versions (and others as well).