ANN: decompyle 2.2 beta 1
Hartmut Goebel
hartmut@goebel.noris.de
Tue, 26 Feb 2002 20:50:32 +0100
Announcing:
decompyle -- A Python byte-code decompiler
version 2.2 beta 1
'decompyle' converts Python byte-code back into equivalent Python
source. It accepts byte-code from any Python version starting with 1.5
up to 2.2.
The generated source is very readable: docstrings, lists, tuples and
hashes get pretty-printed.
'decompyle' may also verify the equivalence of the generated source by
by compiling it and comparing both byte-codes.
New Features
------------
Since Release 0.6.0:
* Now decompyles byte-code from Python versions 1.5 up to 2.2
* Now requires Python 2.2 but is able to decompyle older byte-coe,
too. Prior version of decompyle had to be run with the Python
version which generated the byte-code.
* pretty-prints docstrings, hashes, lists and tuples
* decompyle is now a script and a package
* Now adds an emacs mode-hint and tab-width to the output files
* enhanced test suite: more test patterns, .pyc/.pyo included
* avoids unnecessary 'global' statements
* many internal changes and code overhouls
Please refere to the file 'CHANGES' for a list of changes in this
release.
Where to get it?
----------------
The source archives and instructions for isntalling the package can be
found at:
http://www.goebel-consult.de/decompyle/
Simple Help Needed!
-------------------
Please help testing 'decompyle'!
The EXTENDED_ARG token is untested (this is a new token for Python 2.0
which is used only if many items exist within a code object). If you
have byte-code which does or may include this token, please try to
decompyle your application.
It's easy: the script 'test_pythonlib' which is included in the source
distribution does the job for you. Just read the simple
instruction there.
Requirements
------------
'decompyle' requires Python 2.2 or later.
Known Bugs/Restrictions
-----------------------
* The EXTENDED_ARG token is untested (this is a new token for Python
2.0 which is used only if many items exist within a code object).
* Byte-code generated by Python 2.2 differs byte-code generated by a
prior version even for the same source. This is due the intruduction
of iterators. Currently 'Decompyle' fails verifying the source if
the byte-code was generated by an older version of Python.
* Verifying decompyled source with optizimzed byte code (.pyo) when
running without optimizations (option '-O' not given) fails in most
cases. Same is true for vis-a-versa. This is due to the fact that
Python generated different bytecode depending on option '-O'.
+++hartmut
--
| hartmut Goebel | hartmut@goebel.noris.de // |
| Software Manufactur | \X/ |