From bb8d0a6389f418d28f5432e308051e092cf2c1e6 Mon Sep 17 00:00:00 2001 From: rocky Date: Mon, 10 Oct 2016 12:28:19 -0400 Subject: [PATCH] Get ready for release 2.9.1 --- ChangeLog | 15 +++++++++++++-- NEWS | 5 +++++ README.rst | 21 +++++++++++++++++---- __pkginfo__.py | 2 +- requirements.txt | 2 +- uncompyle6/version.py | 2 +- 6 files changed, 38 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index d6d429e0..083ca3dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,18 @@ 2016-10-10 rocky - * __pkginfo__.py, requirements.txt, uncompyle6/disas.py, - uncompyle6/main.py, uncompyle6/parser.py, + * README.rst, __pkginfo__.py, requirements.txt, + uncompyle6/version.py: Get ready for release 2.9.1 + +2016-10-10 rocky + + * uncompyle6/parsers/parse15.py, uncompyle6/scanners/scanner15.py, + uncompyle6/semantics/pysource.py: Python 1.5 scanner and parser and + .. .. slightly improved Forgot to check in files before. Handle Python pre 2.2. classes + +2016-10-10 rocky + + * ChangeLog, NEWS, __pkginfo__.py, requirements.txt, + uncompyle6/disas.py, uncompyle6/main.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/verify.py, uncompyle6/version.py: Get ready for release diff --git a/NEWS b/NEWS index 01a14e9f..bd07a539 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +uncompyle6 2.9.1 2016-10-09 + +- Improved Python 1.5 decompiling +- Handle old-style pre Python 2.2 classes + uncompyle6 2.9.0 2016-10-09 - Use xdis 3.0.0 protocol load_module. diff --git a/README.rst b/README.rst index 6f75ea9b..46c1eb08 100644 --- a/README.rst +++ b/README.rst @@ -96,22 +96,35 @@ For usage help: Known Bugs/Restrictions ----------------------- -Python 2 deparsing decompiles and about 90% verifies from Python 2.3.7 to Python +About 90% of the decompilation verifies from Python 2.3.7 to Python 3.4.2 on the standard library packages I have on my system. (Verification is the process of decompiling bytecode, compiling with a Python for that byecode version, and then comparing the byetcode produced by the decompiled/compiled program. Some allowance is made -for inessential differences.) +for inessential differences, but other semantically equivalent +differences are not caught.) Later distributions average about 200 files. At this point, 2.7 -decompilation is better than uncompyle2. A number of bugs have been -fixed. +decompilation is definitely better than uncompyle2. A number of bugs +have been fixed. We now handle more Python bytecodes than the old +decompyle program that handled Python bytecodes ranging from 1.5 to +2.4. There is some work do do on the lower end which is more +difficult for us since we don't have a Python interpreter for versions +1.5, 1.6 or 2.0. Python 3.5 largely works, but still has some bugs in it. Python 3.6 changes things drastically by using word codes rather than byte codes, and that needs to be addressed. +Currently not all Python magic numbers are supported. Specifically in +some versions of Python, notably Python 3.6, the magic number has +changes several times within a version. We support only the released +magic. There are also customized Python interpreters, notably Dropbox, +which use their own magic and encrypt bytcode. With the exception of +the Dropbox's old Python 2.5 interpreter this kind of thing is not +handled. + There is lots to do, so please dig in and help. See Also diff --git a/__pkginfo__.py b/__pkginfo__.py index 56df01ec..6eb7f0fa 100644 --- a/__pkginfo__.py +++ b/__pkginfo__.py @@ -38,7 +38,7 @@ entry_points={ ]} ftp_url = None install_requires = ['spark-parser >= 1.4.0', - 'xdis >= 3.0.0'] + 'xdis >= 3.0.1'] license = 'MIT' mailing_list = 'python-debugger@googlegroups.com' modname = 'uncompyle6' diff --git a/requirements.txt b/requirements.txt index 64e91929..2204cd2b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ spark-parser >= 1.4.0 -xdis >= 3.0.0 +xdis >= 3.0.1 diff --git a/uncompyle6/version.py b/uncompyle6/version.py index a7512505..a494aed0 100644 --- a/uncompyle6/version.py +++ b/uncompyle6/version.py @@ -1,3 +1,3 @@ # This file is suitable for sourcing inside bash as # well as importing into Python -VERSION='2.9.0' +VERSION='2.9.1'