Releases: rocky/python-xdis
Nathanman
6.1.1
BlackHat Asia 2024 -- Ides of March
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
- 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
- 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
Jed + Rocky average
- Remove
str2float()
,sysinfo2float()
andmagic_int2float()
. With Python 3.10, this is no longer tenable - Reduce
PYTHON_VERSION
usage inxdis
. - 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
6.0.0
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
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).