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/  |