diff --git a/ChangeLog b/ChangeLog index 96ab578b..c99b4ca9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,212 @@ +2016-07-26 rocky + + * README.rst, __pkginfo__.py, requirements.txt, + test/test_pyenvlib.py, uncompyle6/version.py: Get ready for release + 2.7.1 + +2016-07-26 rocky + + * test/simple_source/bug_pypy27/00_assign_pypy.py, + test/simple_source/bug_pypy27/03_try_return.py, uncompyle6/main.py, + uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner2.py, + uncompyle6/semantics/pysource.py: Custom PyPy rules for + tryfinallysmt, assign{2,3} + +2016-07-26 rocky + + * test/simple_source/bug_pypy27/01_assert2.py, + test/simple_source/bug_pypy27/03_try_return.py, + uncompyle6/parser.py, uncompyle6/parsers/parse2.py, + uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py, + uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py: + More PyPy grammar rules * assert one and two-arg form * trystmt Simplify adding multiple grammar rules + +2016-07-25 rocky + + * pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, + uncompyle6/scanners/tok.py: Instruction formatting - yet again + +2016-07-25 rocky + + * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, + uncompyle6/semantics/pysource.py: Add grammar for PyPy 2-arg assert + +2016-07-25 rocky + + * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py, + uncompyle6/scanners/tok.py, uncompyle6/semantics/pysource.py: PyPy + BUILD_MAP_n. Reinstate bytecode tests + +2016-07-25 rocky + + * uncompyle6/parser.py, uncompyle6/parsers/parse2.py: Handle PyPy + BUILD_MAP_0 where actual kw_args > 0 + +2016-07-25 rocky + + * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Clean + up PyPy load_attr grammar rules + +2016-07-25 rocky + + * Makefile: Enable more PyPy testing + +2016-07-25 rocky + + * test/Makefile: Start checking PyPy bytecodes + +2016-07-25 rocky + + * test/Makefile, uncompyle6/scanners/pypy27.py, + uncompyle6/scanners/pypy32.py: Add pypy scanners + +2016-07-25 rocky + + * __pkginfo__.py, requirements.txt, test/Makefile, + test/simple_source/bug27+/05_setattr.py, + uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py, + uncompyle6/scanners/scanner3.py: Handle PyPy CALL_METHOD op more + correctly Start testing pypy2.7 and 3.2 bytecodes + +2016-07-25 rocky + + * uncompyle6/parsers/parse2.py: add_custom_rules() in 2.x and 3.x + are more alike + +2016-07-25 rocky + + * README.rst, test/simple_source/stmts/03_if_elif.py, + uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py, + uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py, + uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py: + Handle PyPy JUMP_IF_NOT_DEBUG Update README.rst to note PyPY and reorganize a little + +2016-07-25 rocky + + * pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, + uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: Better + assembly formatting of jump instructions + +2016-07-24 rocky + + * Makefile, test/Makefile, uncompyle6/parsers/parse2.py, + uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: More + PyPy LOOKUP_METHOD rules + +2016-07-24 rocky + + * Makefile, __pkginfo__.py, pytest/test_fjt.py, requirements.txt, + test/Makefile, test/test_pythonlib.py, + uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, + uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, + uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py: + PyPy support * Use proper PYPY 32 opcodes * handle opcodes LOOKUP_METHOD and CALL_METHOD * Administrative stuff for PyPy + +2016-07-24 rocky + + * test/add-test.py: add-test: Make sure PyPy bytecode is separated + +2016-07-24 rocky + + * : commit 21683719e1a07d51095d32200ec294d659746474 Author: rocky + Date: Sun Jul 24 04:16:54 2016 -0400 + +2016-07-24 rocky + + * : commit 7e8173b07620c344a73660b354f05a61c4723d18 Author: rocky + Date: Sun Jul 24 03:44:26 2016 -0400 + +2016-07-23 rocky + + * test/simple_source/bug27+/05_for_try_except.py, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py: + Another 2.7 'continue' detection bug + +2016-07-23 rocky + + * test/simple_source/bug27+/05_for_try_except.py, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py: + Another 2.7 'continue' detection bug + +2016-07-23 rocky + + * test/simple_source/bug27+/05_for_try_except.py, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py: + Another 2.7 'continue' detection bug + +2016-07-23 rocky + + * test/simple_source/bug27+/05_for_try_except.py, + uncompyle6/scanners/scanner2.py: 2.7: Detect "continue" inside + except Fixes issue #38. This is a bit hacky. We need a more general "continue" detection. + +2016-07-23 rocky + + * : commit a5f45f232decad2e74bfdf476255604273fd95fd Author: rocky + Date: Sat Jul 23 10:37:41 2016 -0400 + +2016-07-21 rocky + + * __pkginfo__.py, test/test_pyenvlib.py, uncompyle6/disas.py, + uncompyle6/main.py, uncompyle6/parser.py, + uncompyle6/parsers/parse27.py, uncompyle6/scanner.py, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py, + uncompyle6/semantics/fragments.py, + uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Start + handling pypy 2.7 Need to understand whether we care compiling pypy. Pypy 2.7 list + comprehensions are different and use its own opcode. + +2016-07-20 rocky + + * HISTORY.md, README.rst: Update HISTORY and add link to it in + README.md + +2016-07-17 rocky + + * uncompyle6/parser.py, uncompyle6/semantics/pysource.py: Better + parse error formatting Start to move away for compiler-oriented terminology: Favor "instructions" over "tokens". Syntax error -> Parse error. + +2016-07-17 rocky + + * pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, + uncompyle6/scanners/scanner2.py, uncompyle6/scanners/tok.py: Align + disassembly output with xdis align number of offset fields with xdis. Show None type when we + mean None, not '' + +2016-07-17 rocky + + * uncompyle6/scanners/scanner3.py: Respect after/both option in + scanner3 + +2016-07-17 rocky + + * pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right: + Adjust test data for changed disasm output + +2016-07-16 rocky + + * : commit 942b15e3c62963b32aaba877fd451ffe304c07a9 Author: rocky + Date: Sat Jul 16 14:12:31 2016 -0400 + +2016-07-16 rocky + + * README.rst: More explicit usage info + 2016-07-15 rocky - * README.rst, uncompyle6/version.py: Get ready for release 2.7.0 + * README.rst, test/Makefile, + test/simple_source/bug35/01_matrix_multiply.py, + uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Add + 3.5 matrix mult ops We now run 3.5 verifycation so we need to remove some of the tests + that fail to verify pending fixing. + +2016-07-15 rocky + + * ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for + release 2.7.0 2016-07-14 rocky diff --git a/NEWS b/NEWS index df7bfdb7..857cfcf7 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +uncompyle6 2.7.1 2016-07-26 + +- PyPy bytecodes for 2.7 and 3.2 added +- Instruction formatting improved slightly +- 2.7 bytecode "continue" bug fixed + uncompyle6 2.7.0 2016-07-15 - Many Syntax and verifification bugs removed diff --git a/README.rst b/README.rst index a54722dc..2de6e486 100644 --- a/README.rst +++ b/README.rst @@ -43,7 +43,7 @@ information. Requirements ------------ -This project requires Python 2.6 or later, PyPy 3-2.40, or PyPy-5.0.1. +This project requires Python 2.6 or later, PyPy 3-2.4, or PyPy-5.0.1. The bytecode files it can read has been tested on Python bytecodes from versions 2.3-2.7, and 3.2-3.5 and the above-mentioned PyPy versions. @@ -96,7 +96,7 @@ For usage help: Known Bugs/Restrictions ----------------------- -Python 2 deparsing decompiles and verifies from Python 2.3.7 to Python +Python 2 deparsing decompiles and about 90% 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 diff --git a/__pkginfo__.py b/__pkginfo__.py index 0c03e501..1ccc777e 100644 --- a/__pkginfo__.py +++ b/__pkginfo__.py @@ -37,7 +37,7 @@ entry_points={ ]} ftp_url = None install_requires = ['spark-parser >= 1.4.0', - 'xdis >= 2.0.2'] + 'xdis >= 2.0.3'] license = 'MIT' mailing_list = 'python-debugger@googlegroups.com' modname = 'uncompyle6' diff --git a/requirements.txt b/requirements.txt index 936d59fd..2b1ab044 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ spark-parser >= 1.2.1 -xdis >= 2.0.2 +xdis >= 2.0.3 diff --git a/test/test_pyenvlib.py b/test/test_pyenvlib.py index 72ea73ad..b904b0f3 100755 --- a/test/test_pyenvlib.py +++ b/test/test_pyenvlib.py @@ -28,6 +28,7 @@ from fnmatch import fnmatch #----- configure this for your needs TEST_VERSIONS=('2.3.7', '2.4.6', '2.5.6', '2.6.9', 'pypy-2.6.1', + 'pypy-5.0.1', '2.7.10', '2.7.11', '3.2.6', '3.3.5', '3.4.2', '3.5.1') diff --git a/uncompyle6/version.py b/uncompyle6/version.py index 37b40926..c999c074 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.7.0' +VERSION='2.7.1'