2016-10-10 rocky * __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 2.9.0 ... - Use xdis 3.0.0 protocol load_module. Needs bump in requirements.txt and _pkg_info_.py - Start Python 1.5 decompiling - another round of work is needed to remove bugs - small cleanups 2016-10-09 rocky * : Reinstate some tests 2016-10-08 rocky * uncompyle6/bin/uncompile.py, uncompyle6/parsers/parse21.py, uncompyle6/semantics/pysource.py: Simpify python 2.1 grammar Fix bug with -t ... Wasn't showing source text when -t option was given 2016-10-08 rocky * test/simple_source/bug22/06_list_comprehension_x2_if.py, uncompyle6/parsers/parse22.py, uncompyle6/parsers/parse26.py: Python 2.1-2.6 bug in list comprehension 2016-10-08 rocky * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release 2.8.4 2016-10-08 rocky * README.rst, test/Makefile, test/decompyle/README.md, test/decompyle/test_applyEquiv.py, test/decompyle/test_augmentedAssign.py, test/decompyle/test_class.py, test/decompyle/test_del.py, test/decompyle/test_divide_future.py, test/decompyle/test_divide_no_future.py, test/decompyle/test_docstring.py, test/decompyle/test_empty.py, test/decompyle/test_exceptions.py, test/decompyle/test_exec.py, test/decompyle/test_expressions.py, test/decompyle/test_extendedImport.py, test/decompyle/test_extendedPrint.py, test/decompyle/test_extendedarg.py, test/decompyle/test_functions.py, test/decompyle/test_global.py, test/decompyle/test_globals.py, test/decompyle/test_import.py, test/decompyle/test_import_as.py, test/decompyle/test_integers.py, test/decompyle/test_iterators.py, test/decompyle/test_lambda.py, test/decompyle/test_listComprehensions.py, test/decompyle/test_loops.py, test/decompyle/test_loops2.py, test/decompyle/test_misc.py, test/decompyle/test_nested_elif.py, test/decompyle/test_nested_scopes.py, test/decompyle/test_prettyprint.py, test/decompyle/test_print.py, test/decompyle/test_print_to.py, test/decompyle/test_single_stmt.py, test/decompyle/test_slices.py, test/decompyle/test_tuple_params.py, test/decompyle/test_tuples.py, test/decompyle/test_yield.py, test/ok_lib2.7/compiler/syntax.py: Add decompyle's 2.1 tests Update README.rst to note new pythons supported since last update 2016-10-07 rocky * __pkginfo__.py, test/test_pythonlib.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse21.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner21.py, uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner27.py, uncompyle6/semantics/pysource.py: Start Python 2.1 bytecode decompile 2016-10-06 rocky * uncompyle6/main.py: Use .py extension in disassembled files more often 2016-10-06 rocky * uncompyle6/scanners/controlflow.py, uncompyle6/scanners/scanner3.py: Merge in COME_FROM disambiguation ... from controlflowbranch. Should probably expand to Python2 parsers as well 2016-10-06 rocky * : commit a4dd6e980566a83270b9b9d47fb7f3cb3e5e385a Author: rocky Date: Wed Oct 5 22:56:48 2016 -0400 2016-10-05 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Python 3: "or" doesn't have optional come_from 2016-10-05 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Python 3: "and" doesn't have optional come_from 2016-10-05 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Python 3: "and" doesn't have optional come_from 2016-10-05 rocky * : commit d2b477ae7d5a4c081262cabdccdb314d90b39255 Author: rocky Date: Tue Oct 4 23:58:35 2016 -0400 2016-09-27 rocky * test/simple_source/looping/04_while1_while1.py, uncompyle6/parsers/parse3.py: Python 3 while1 grammar rules with COME_FROM_LOOP 2016-09-27 rocky * test/Makefile, test/simple_source/looping/04_while1_while1.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: PY3 COME_FROM_LOOP bug There are still more in sre... 2016-09-27 rocky * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: PY3: COME_FROM -> COME_FROM_FINALLY as appropriate We now have all WITH_ op jumps associated in the grammar Also, some COME_FROM_LOOP grammar fixes 2016-09-26 rocky * HISTORY.md, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Interval order COME_FROMs in Python3 This bug had possibly caused lots of grammar pollution which may need addressing. We want to process COME_FROMs to the same offset to be in *descending* order so we have the larger range or biggest instruction interval last. (I think they are sorted in increasing order, but for safety we sort them). That way, specific COME_FROM tags will match up properly. For example, a "loop" with an "if" nested in it should have the "loop" tag last so the grammar rule matches that properly Adjust Python 3 grammar for more COME_FROM -> COME_FROM_LOOP. And remove optional COME_FROM_LOOP where possible. Previously, the optional-ness was a result of inner nestings gobbling up the COME_FROM. We'll probably want to go back and fix this up in Python2. 2016-09-26 rocky * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py, uncompyle6/scanners/controlflow.py, uncompyle6/scanners/scanner3.py: Python 3 COME_FROM -> COME_FROM_WITH appropriately 2016-09-25 rocky * test/Makefile, uncompyle6/verify.py: Try stronger verification verify.py: add check in verification that magic is the same. Otherwise we go for weak verification. 2016-09-25 rocky * test/Makefile, uncompyle6/parsers/parse3.py: Address whileTrue if cond .. -> while cond .. bug Reinstate Python standard library bisect test 2016-09-23 rocky * uncompyle6/scanners/scanner3.py: Tidy use of SETUP_ ops Also possibly remove a bug in decompiling Python 3.0 .. 3.2 which doesn't have SETUP_WITH 2016-09-23 rocky * uncompyle6/scanners/scanner3.py: Tidy use of SETUP_ ops Also possibly remove a bug in decompiling Python 3.0 .. 3.2 which doesn't have SETUP_WITH 2016-09-23 rocky * test/Makefile, test/ok_lib3.4/bisect.py: Weaken testing for controlfow branch We have more equivalent programs now 2016-09-22 rocky * pytest/test_grammar.py, pytest/test_single_compile.py, test/Makefile, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Add COME_FROM_LOOP Note: we have regressed in --verify and some tests, but I believe that's because we are producing more equivalant (if uglier) programs. That's a separate problem though. 2016-09-22 rocky * : commit d271e886d9e818a871f15d8876d6eb9d1ed452a4 Author: rocky Date: Thu Sep 22 01:32:00 2016 -0400 2016-09-22 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/tok.py: Fix some Test failures Fix py.test pytest/test_grammar.py - Comprehension sorts of things removed from parser that don't exist in earlier pythons scanners/tok.py Add back in "to" when needed 2016-09-21 rocky * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/controlflow.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: First step towards managing control flow decoding 2016-09-21 R. Bernstein * : Merge pull request #56 from rocky/fstring merge fstring changes from moagstar 2016-09-21 moagstar * pytest/test_fstring.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: merge fstring changes from moagstar 2016-09-21 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py: Python 2 & 3 scanner code ever so slightly closer 2016-09-21 rocky * NEWS: Small NEWS doc typo 2016-09-18 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/semantics/pysource.py: Small changes 2016-09-11 rocky * ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready for release 2.8.3 2016-09-11 rocky * test/bytecode_3.6/fstring.py, test/bytecode_3.6/fstring_single.py, uncompyle6/parsers/parse35.py: Tidy a bit 2016-09-09 rocky * test/simple_source/looping/10_while.py, uncompyle6/parsers/parse3.py: 3.0 .. 3.4 bug in whileTrue 2016-09-09 rocky * uncompyle6/scanners/scanner31.py: 3.1 scanner small fixes 2016-09-09 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py: ret_cond adjustment for < 2.7 and ... "<= 2.6" -> "< 2.7" since python 2.6's version is 2.6000001 2016-09-09 rocky * test/Makefile, test/test_pyenvlib.py, test/test_pythonlib.py, uncompyle6/scanners/scanner31.py, uncompyle6/verify.py: Start accepting Python 3.1 bytecode 2016-09-08 rocky * uncompyle6/parser.py: Add 3.6 parser 2016-09-08 rocky * .travis.yml, test/Makefile, test/simple_source/expression/06_frozenset.py, test/test_pythonlib.py: More testing - travis: * 2.7.12 - bump from 2.7.11 * 3.3.6 test_pyenvlib: add --weak-verify to Makefile: check-3.2.6 needs --weak-verify 2016-09-08 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3.0-3.2 *args processing 2016-09-08 rocky * test/simple_source/bug32/01_named_and_kwargs.py, uncompyle6/semantics/pysource.py: 3.2 (and down to 3.0?) bug in fn name and kwargs 2016-09-07 rocky * test/simple_source/bug35/05_return_in_else.py, uncompyle6/scanners/scanner3.py: Another 3.5+ erroneous RETURN_END_IF misclassify 2016-09-07 rocky * test/simple_source/bug35/05_return_in_else.py, uncompyle6/scanners/scanner3.py: But in Python 3.5+ erroneosly adding RETURN_END_IF 2016-09-05 rocky * test/simple_source/bug33/02_named_and_kwargs.py, test/test_pyenvlib.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Fix 3.3 named bug and ... Parse 3.4 parameters correctly. Allow test_pyenvlib to do 3.3.6 2016-09-05 rocky * test/simple_source/bug33/02_named_and_kwargs.py: Python 3.x bug in getting parameter of ** argument 2016-09-05 rocky * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py: Python 2.6- try/except control flow detection 2016-09-04 rocky * uncompyle6/disas.py, uncompyle6/main.py, uncompyle6/parser.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/scanners/scanner36.py, uncompyle6/semantics/aligner.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py, uncompyle6/show.py, uncompyle6/verify.py: disassemble -> ingest where appropriate As part of tokenization for (de)parsing, we need to do something like a disassembly, but is is really a little different. Disassembly, strictly speaking, is done by the xdis module now. What "ingestion" does is massage the instruction tokens to a form that is more amenable for parsing. In sum, ingestion is different than disassembly, although disassembly is generally the first part of ingestion. 2016-09-04 rocky * uncompyle6/semantics/pysource.py: Small cleanup/code optimization 2016-09-04 rocky * uncompyle6/parsers/parse26.py: Python 2.3--2.6 bug in parsing try-middle Note: it looks like COME_FROMs need to be classified better with respect to whether they are from an except or not we are getting if/else vs except nesting errors. 2016-09-04 rocky * test/simple_source/bug26/07_generator_return.py, uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py: A couple more 2.6 (and below) bugs fixed * Detect "return None" inside if statement * another case of triple ==, ==, == scanner2.py: detect_structure: descriminate more on parent type 2016-09-03 rocky * test/simple_source/bug26/05_generator.py, uncompyle6/semantics/pysource.py: Python 2.5-2.6 generator bug Adjust for variable position of list iteration node in a genexpr node 2016-09-03 rocky * uncompyle6/semantics/pysource.py: Python 2.7 "return None" bug Same as 2.3-2.6 "return None". 2016-09-03 rocky * test/simple_source/bug26/08_triple_equals.py, uncompyle6/scanners/scanner2.py: Python 2.2..2.6 bug in a == b == c == d Fix was to remove some come froms. Feels a little hacky though. 2016-09-03 rocky * test/simple_source/bug26/07_generator_return.py, uncompyle6/semantics/pysource.py: Python 2.3..2.6 "return" bug In Python 2.6 and possibly down to 2.3 we need to issue "return" not "return None" inside a generator. So check for that "return None" inside n_return and issue "return" for that. 2016-09-03 rocky * DECOMPYLE-2.4-CHANGELOG.txt: Add hartmut Goebel's changes before 2.4 2016-09-03 rocky * Makefile, test/simple_source/bug26/04_comp_for.py, uncompyle6/semantics/pysource.py: Fix Python 2.4-2.6 comp_for text generation... Makefile: tolerate pypy 5.3.x Rest: fix semantic action rule for comp_for and test this 2016-09-02 rocky * test/simple_source/bug26/06_return_pop.py, uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py: Python 2.6- bug: RETURN_ENDIF, POP_TOP .. POP_TOP should be excluded as a potentional statement beginning 2016-09-02 rocky * test/simple_source/bug33/02_named_and_kwargs.py, uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py: Fix Python 3.x named param and kwargs bug 2016-09-01 rocky * test/simple_source/bug26/04_while_and_stmt_one_line.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py: 2.6- bug: while..and: stmt - on one line If 2.6 or before POP_BLOCK after a JUMP_IF_FALSE does not constitute a new statement. The POP_BLOCK is really part of the JUMP_IF_FALSE. In Python 2.7+ it's a single op. 2016-09-01 rocky * test/simple_source/bug26/02_except_as.py, uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: Handle Python 2.6 and below "except , " 2016-08-31 rocky * test/simple_source/bug35/02_fn_varargs.py, uncompyle6/semantics/pysource.py: Python 3.x bug in handling var number of args 2016-08-31 rocky * test/simple_source/bug33/04_aug_assign.py, test/test_pyenvlib.py, uncompyle6/main.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: Bug in 3.x detecting "if" structure and ... scanner3.py: bug in 3.x detecting "if" structure Make scanner2.py look more like scanner3.py verify.py: add weak-verify which tests Pytyon syntax, but not code 2016-08-30 rocky * NEWS, test/simple_source/bug26/03_raise_from.py, test/simple_source/bug33/03_raise_from.py, uncompyle6/semantics/pysource.py: Handle Python 2 vs 3 raise syntax change raise_stmt ::= "raise" expression "," expression becomes: raise_stmt ::= "raise" expression from expression raise expr, expr -> raise 2016-08-29 rocky * ChangeLog, __pkginfo__.py, uncompyle6/version.py: Get ready for release 2.8.2 2016-08-27 rocky * test/test_pyenvlib.py, uncompyle6/verify.py: Correct PYPY bit logic in previous commit 2016-08-27 rocky * test/test_pyenvlib.py, uncompyle6/semantics/pysource.py, uncompyle6/verify.py: PYPY bugs and inspired changes ... verify.py: Show co_flags when different. pysource.py: PYPY also generates normal tryfinallystmt code test_pyenvlib.py: allow pypy-5.3.1 2016-08-26 rocky * Makefile, test/Makefile, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py: Start to handle Python 3.1 bytecode 2016-08-26 rocky * __pkginfo__.py, requirements.txt: Bump min requirement versions xdis we need increased so we don't catch old xdis bugs 2016-08-25 rocky * test/simple_source/bug36/01_fstring.py, uncompyle6/semantics/pysource.py: Handle 3.6 Format String conversions !r, !s, !a 2016-08-20 rocky * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release 2.8.1 2016-08-16 rocky * test/simple_source/bug22/05_test_yield.py, uncompyle6/scanners/scanner2.py: Python 2.2 doesn't have opcode LIST_APPEND 2016-08-16 rocky * uncompyle6/scanners/scanner26.py: Python 2.2 scanner bug: don't mung IMPORT_NAME op 2016-08-16 rocky * test/simple_source/bug_pypy27/02_call_method.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Small pypy LOOKUP_METHOD cleanups 2016-08-16 R. Bernstein * : Merge pull request #49 from moagstar/master Fixed a bug with FORMAT_VALUE with sub expressions. 2016-08-16 DanielBradburn * pytest/test_fstring.py, uncompyle6/parsers/parse3.py: Fixed bug with FORMAT_VALUE where a sub expression would not be correctly interpreted 2016-08-14 rocky * __pkginfo__.py: xdis 2.1.1 removes some bugs encountered here 2016-08-14 rocky * : commit a65443ee0225933367be9c7640629298882532c9 Author: rocky Date: Sun Aug 14 22:59:34 2016 -0400 2016-08-14 DanielBradburn * pytest/test_fstring.py: added examples for known failures 2016-08-14 R. Bernstein * : Merge pull request #45 from rocky/revert-43-patch-1 Revert "Cache pip installation in travis" 2016-08-14 R. Bernstein * .travis.yml: Revert "Test with latest PyPy in Travis" 2016-08-14 R. Bernstein * : Merge pull request #44 from thedrow/patch-2 Test with latest PyPy in Travis 2016-08-14 R. Bernstein * : Merge pull request #43 from thedrow/patch-1 Cache pip installation in travis 2016-08-13 rocky * test/Makefile: Back off of 3.6 testing for now 2016-08-13 rocky * : commit 7ccbd419c6b26e8ae9d0929f1bfddedebce6bbaf Author: rocky Date: Sat Aug 13 20:25:19 2016 -0400 2016-08-13 rocky * test/Makefile: I said - we test 2.2 now. 2016-08-13 rocky * test/Makefile, test/simple_source/stmts/00_import.py, test/test_pythonlib.py: Include Python 2.2 in testing 2016-08-13 rocky * README.rst, uncompyle6/parser.py, uncompyle6/parsers/parse22.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner23.py, uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner25.py, uncompyle6/semantics/pysource.py: Start handling Python 2.2 bytecode and... Fix some bugs in Python 2.3-2.5 bytecode handling 2016-08-11 Omer Katz * .travis.yml: Test with latest PyPy. 2016-08-11 Omer Katz * .travis.yml: Cache pip installation 2016-08-10 DanielBradburn * pytest/test_fstring.py: small formatting change 2016-08-10 DanielBradburn * pytest/test_fstring.py, requirements-dev.txt: added hypothesis to requirements-dev 2016-08-10 DanielBradburn * pytest/test_fstring.py: added hypothesis test (currently failing due to limited support) for testing fstring uncompyling 2016-08-10 Daniel Bradburn * : Merge pull request #2 from rocky/master Merging pypy and cpython 3.6 from rocky 2016-08-03 rocky * : commit 109e813058380630bda82014eee94a9089cc4666 Author: rocky Date: Wed Aug 3 08:07:47 2016 -0400 2016-08-01 rocky * __pkginfo__.py, requirements.txt: Need recent xdis fix for 3.6 wordcode 2016-08-01 rocky * test/simple_source/bug36/01_fstring.py: Add Python 3.6 formatted_str test 2016-08-01 R. Bernstein * : Merge pull request #41 from rocky/3.6 Move forward on moagstar's Python 3.6 support 2016-08-01 rocky * Makefile, README.rst, test/Makefile, test/test_pythonlib.py, uncompyle6/bin/uncompile.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner36.py, uncompyle6/semantics/aligner.py, uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Moagstar's 3.6 wordcode + formattedValue rules 2016-07-30 rocky * uncompyle6/semantics/aligner.py: WIP try to keep line numbers the same 2016-07-29 rocky * test/Makefile, uncompyle6/semantics/fragments.py: Small changes 2016-07-29 rocky * uncompyle6/parsers/parse35.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py: Fix 3.5 misclassifying RETURN_VALUE We use location of SETUP_EXCEPT instructions to disambiguate. 2016-07-28 Daniel Bradburn * README.rst, test/Makefile, test/bytecode_3.6/fstring.py, test/bytecode_3.6/fstring_single.py, test/test_pythonlib.py, uncompyle6/bin/uncompile.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner36.py, uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Starting adding python 3.6 support to uncompyle 2016-07-28 rocky * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse23.py, uncompyle6/parsers/parse24.py: while1 bug applied to Python 2.3 and 2.4 2016-07-28 rocky * uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: PyPy 3.2 bug confusing RETURN_END_IF for except Also fix a instruction formatting bug 2016-07-27 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py: Split out 3.5 parser 2016-07-27 rocky * pytest/test_grammar.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py: Add python 3.4 grammar checking DRY grammar testing 2016-07-27 rocky * uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py: Clean and check Python 2.6 grammar 2016-07-27 rocky * pytest/test_grammar.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py: Start to segregate and clean up grammar 2016-07-27 rocky * pytest/test_grammar.py, uncompyle6/disas.py, uncompyle6/scanner.py, uncompyle6/semantics/fragments.py: Add is_pypy parameter to places that need it 2016-07-27 rocky * test/simple_source/stmts/09_whiletrue_bug.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py: 2.6 and 2.7 while1 grammar rule Fixes issue #40 2016-07-27 rocky * pytest/test_grammar.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Start grammar checker 2016-07-27 rocky * uncompyle6/main.py, uncompyle6/show.py: Show magic number in output Fix bugs due to removal of token.format() 2016-07-27 rocky * uncompyle6/disas.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py, uncompyle6/show.py: tok.format -> tok.__str__; simplify pypy code 2016-07-27 rocky * uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Python 2.7 set comprehension bug 2016-07-27 rocky * uncompyle6/semantics/pysource.py: separate semantic action version differences Added customize_for_version which uses is_pypy and version to adjust tables 2016-07-27 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Customize tables better for specific Python versions 2016-07-27 rocky * uncompyle6/parsers/parse2.py, uncompyle6/semantics/pysource.py: Small code clean up 2016-07-26 rocky * uncompyle6/scanners/tok.py, uncompyle6/semantics/fragments.py, uncompyle6/verify.py: Usuability fixes * try using format for __str__ * Explicitly nuke self.attr and self.pattr when no arg * Sync pysource and format wrt make_function 2016-07-26 rocky * ChangeLog, NEWS, 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 Daniel Bradburn * : Merge pull request #1 from rocky/master Syncing with rocky 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, 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 * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/semantics/pysource.py: Isolate pseudo op IMPORT_NAME_CONT I think this is a holdover from pre 2.3 days. Possibly it can be dropped altogether. 2016-07-14 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Attempt to get 3.5 RETURN_END_IF working This feels hacky and I'm not sure is quite right. Untili we understand better what to do though, we'll go with it. 2016-07-14 rocky * test/Makefile, uncompyle6/semantics/pysource.py: 3.x __qualname__ = supression Class names have become more complicated so the pattern test needs to be more complex as well. Sigh 2016-07-14 rocky * README.rst, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: 3.x list comprehenions list_if_not, comp_ifnot bug Saw only list_if_not bug, but might also be applicable to comp_ifnot 2016-07-14 rocky * test/simple_source/stmts/15_assert.py, uncompyle6/scanners/scanner3.py: 3.x ""raise AssertionError" vs "assert" Not sure this is totally correct yet. 2016-07-14 rocky * uncompyle6/main.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: Python 3.4 assertion handling. Improve verify 3.4 has jump optimization like 3.5. verify.py: show mismatch on verification mismatch 2016-07-13 rocky * : Reinstate some code for verification 2016-07-13 rocky * uncompyle6/main.py: Back off showing verification errors Pending why this failing in make. 2016-07-13 rocky * uncompyle6/semantics/pysource.py: "return None" -> "pass" Python 3.4 classes have what looks like a return None, but this is invalid syntax. So for now we'll remove all "return None"s. There may be a "pass" in there instead. 2016-07-13 rocky * : commit fd0d8d25672b9450bafc1d5c6781bedd7ec8bd1d Author: rocky Date: Wed Jul 13 13:00:03 2016 -0400 2016-07-13 rocky * test/simple_source/stmts/11_return_val.py, uncompyle6/semantics/pysource.py: Debugging smutz caused verify failures 2016-07-12 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Document/correct hide_internal and store_locals 2016-07-12 rocky * test/simple_source/bug33/05_store_locals.py, test/simple_source/bug33/05_store_name.py, uncompyle6/semantics/pysource.py: Better 3.2/33 store_locals handling 2016-07-11 rocky * test/simple_source/bug33/05_store_name.py, test/simple_source/comprehension/05_3x_set_comphension.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3.2 & 3.3 handle STORE_NAME better 2016-07-11 rocky * ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for release 2.6.2 2016-07-11 rocky * test/add-test.py, test/simple_source/comprehension/05_set_comprehension.py, uncompyle6/semantics/pysource.py: Fix some Python set comprehension bugs 2016-07-11 rocky * test/simple_source/def/05_static_method.py: Add missing a test source file 2016-07-11 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Python 3.(4?) while1 bug Clean up while1 grammar a tad 2016-07-10 rocky * uncompyle6/scanners/scanner2.py: Revert recent 2.x code which fail verification 2016-07-10 rocky * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py: Structure detection bugs + Had borked 3.4 grammar rules in previous refactor 2016-07-10 rocky * uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py: DRY and clean up code a little 2016-07-10 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py: Remove JA. Use standard JUMP_ABSOLUTE instead 2016-07-10 rocky * uncompyle6/scanners/scanner3.py: Python 2/3 compatibility bug 2016-07-10 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Bugs caused by 3.x jump_forward misclasification 2016-07-10 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py: Python 3 better CONTINUE op classification Also document what's up with JUMP_ABSOLUTE classification 2016-07-09 rocky * uncompyle6/parsers/parse34.py: 3.4 continue handling. More work is needed 2016-07-09 rocky * __pkginfo__.py: Need xdis 2.4 bugfix 2016-07-09 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py: Start splitting off 3.4 grammar from rest 2016-07-09 rocky * test/simple_source/comprehension/01_list_comprehension.py, uncompyle6/parsers/parse23.py: Python 2.3 list comprehensions 2016-07-09 rocky * test/simple_source/comprehension/01_list_comprehension.py, test/simple_source/operation_binary/add.py, test/simple_source/operation_binary/and.py, test/simple_source/operation_binary/divide_floor.py, test/simple_source/operation_binary/divide_true.py, test/simple_source/operation_binary/modulo.py, test/simple_source/operation_binary/multiply.py, test/simple_source/operation_binary/or.py, test/simple_source/operation_binary/power.py, test/simple_source/operation_binary/shift_left.py, test/simple_source/operation_binary/shift_right.py, test/simple_source/operation_binary/subscription.py, test/simple_source/operation_binary/subtract.py, test/simple_source/operation_binary/xor.py, test/simple_source/operation_comparison/equal.py, test/simple_source/operation_comparison/greater.py, test/simple_source/operation_comparison/greater_equal.py, test/simple_source/operation_comparison/less.py, test/simple_source/operation_comparison/less_equal.py, test/simple_source/operation_comparison/notequal.py, test/simple_source/operation_inplace/add.py, test/simple_source/operation_inplace/and.py, test/simple_source/operation_inplace/divide_floor.py, test/simple_source/operation_inplace/divide_true.py, test/simple_source/operation_inplace/modulo.py, test/simple_source/operation_inplace/multiply.py, test/simple_source/operation_inplace/or.py, test/simple_source/operation_inplace/power.py, test/simple_source/operation_inplace/shift_left.py, test/simple_source/operation_inplace/shift_right.py, test/simple_source/operation_inplace/subtract.py, test/simple_source/operation_inplace/xor.py, test/simple_source/operation_unary/invert.py, test/simple_source/operation_unary/iter.py, test/simple_source/operation_unary/negative.py, test/simple_source/operation_unary/not.py, test/simple_source/operation_unary/positive.py, test/simple_source/precedence/left.py, test/simple_source/precedence/right.py, test/simple_source/precedence/structure.py, test/simple_source/stmts/00_import.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse23.py, uncompyle6/parsers/parse25.py, uncompyle6/scanners/scanner26.py: Fix some 2.3 bugs; add more 2.3-6. tests 2016-07-09 rocky * uncompyle6/parsers/parse23.py: 2.3 while1stmt bug 2016-07-09 rocky * : commit ac45e5757c8c57af2c918c79ff4f6195268afec1 Author: rocky Date: Sat Jul 9 05:59:02 2016 -0400 2016-07-09 rocky * uncompyle6/parsers/parse23.py: Merge conflict 2016-07-09 rocky * uncompyle6/scanners/scanner3.py: Python3 scanner code cleanup 2016-07-08 rocky * uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: Python 3 code cleanup 2016-07-08 rocky * test/Makefile, uncompyle6/scanner.py, uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py: DRY scanner code. Allow 2.4 decompile from 3.x 2016-07-08 rocky * : Add more 2.4 and 2.6 tests 2016-07-08 rocky * uncompyle6/parsers/parse24.py: 2.4 "import *" grammar rule 2016-07-08 rocky * uncompyle6/parsers/parse24.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner26.py: Python 2.4 generator expressions and gen_comp_body 2016-07-08 rocky * __pkginfo__.py, uncompyle6/parsers/parse24.py, uncompyle6/scanners/scanner2.py: <2.5 grammar customizations for imports and loops 2016-07-08 rocky * __pkginfo__.py, test/Makefile, test/add-test.py, test/test_pyenvlib.py, test/test_pythonlib.py, uncompyle6/parser.py, uncompyle6/parsers/parse24.py, uncompyle6/parsers/parse25.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner24.py, uncompyle6/scanners/scanner25.py, uncompyle6/semantics/pysource.py: Start handling Pyton 2.4 bytecodes 2016-07-08 rocky * ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for release 2.6.1 2016-07-08 rocky * test/simple_source/stmts/11_return_val.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py: 2.5/2.6 RETURN_VALUE bug 2016-07-08 rocky * uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py: 2.5/2.6 fn name clash fixes list conprehension problem 2016-07-08 rocky * uncompyle6/parsers/parse25.py: Python 2.5 with statement 2016-07-08 rocky * README.rst: Revise decompilation quality estimate 2016-07-08 rocky * test/add-test.py, test/simple_source/stmts/05_with.py, uncompyle6/parser.py, uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py: Start going over Python 2.5 bytecode Fix 2.6 with bug 2016-07-07 rocky * ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready for release 2.6.0 2016-07-07 rocky * uncompyle6/parsers/parse26.py: <2.7 add a rare kind of list_for 2016-07-07 rocky * : Remove 2.7 asynchat verifcation for now 2016-07-07 rocky * test/simple_source/looping/08_while1_if_continue.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py: while1 bug in 2.6 and 2.7 2016-07-07 rocky * uncompyle6/parsers/parse26.py: <2.7 whileelse rule 2016-07-07 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py: <2.6 make sure jump back on loops is really "back" 2016-07-07 rocky * uncompyle6/scanners/scanner2.py: <2.7 lack of POP_IF_ adjustment in detect_structure 2016-07-07 rocky * test/test_pyenvlib.py, uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py: 2.6 POP_TOP and POP_JUMP_IF bugs 2016-07-06 rocky * uncompyle6/scanners/scanner2.py: 2.6 bug in handling jumps to jumps 2016-07-06 rocky * test/simple_source/stmts/03_if_elif.py, uncompyle6/parsers/parse26.py: 2.6.9 bug: multiple COME_FROMs via "or"/"assert" 2016-07-06 rocky * test/simple_source/stmts/03_if_elif.py, uncompyle6/parsers/parse26.py: 2.6.9 elif with multiple COME_FROMs 2016-07-06 rocky * test/simple_source/stmts/04_raise.py, uncompyle6/scanners/scanner2.py: < 2.7 bug in not distinguishing raise from assert 2016-07-04 rocky * : Add 10_if_else_ternary.pyc for 2.5 2016-07-03 rocky * pytest/test_deparse.py: fragment test update for expanded offsets 2016-07-03 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: More offsets captrued Add %b specifer %b - associate text before specifier pysource.py: small doc correction 2016-07-03 rocky * : commit 04698f45cc4246b95b3bb8c22f61e0398614b344 Author: rocky Date: Sun Jul 3 11:32:20 2016 -0400 2016-07-03 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py: Another 2.6 while stmt. Clean up grammar a little 2016-07-03 rocky * uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py: 2.6 improper tagging of RETURN_END_IF 2016-07-02 rocky * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py: 2.6.9 tryelsestmt 2016-07-02 rocky * test/simple_source/stmts/04_withas.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py: Python 2.6 with as stmt 2016-07-01 rocky * test/simple_source/stmts/06_return_if.py, uncompyle6/parsers/parse26.py: 2.6 ifelsestmt 2016-07-01 rocky * test/simple_source/looping/07_return_end_if.py, uncompyle6/parsers/parse26.py: Another 2.6 return_stmt bug 2016-07-01 rocky * test/simple_source/looping/07_return_end_if.py, uncompyle6/parser.py, uncompyle6/parsers/parse26.py: 2.6 return_stmt bug 2016-06-30 rocky * __pkginfo__.py: Fix import name in setup entry_points. Fixes issue #34 2016-06-30 rocky * test/simple_source/stmts/06_for_break.py, uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: More 2.6.9 bugs fixed * break loop parsing bug * ifelsestmt semantic-action bug in handling else 2016-06-30 rocky * test/simple_source/comprehension/05_list_comprehension.py, uncompyle6/parsers/parse26.py: 2.6 conditional in list comprehension bug 2016-06-30 rocky * uncompyle6/semantics/pysource.py: Oh Python and your f*'d notions of spacing 2016-06-30 rocky * test/simple_source/comprehension/05_for_for.py, uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: 2.6.9 list comprehension 2016-06-30 rocky * test/simple_source/exception/07_try_pass.py, uncompyle6/scanners/scanner2.py: <= 2.6 weird jump out of try block Allow COME_FROMs to appare via JUMP_FORWARD in tey/except blocks 2016-06-30 rocky * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py: CONTINUE handling in 2.6.9 2016-06-30 rocky * uncompyle6/parsers/parse26.py: 2.6 except_suite bug 2016-06-29 rocky * test/simple_source/comprehension/08_for_if_for.py, uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: 2.6 genexpr. Some not quite right. 2016-06-29 rocky * test/simple_source/stmts/15_assert.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py: 2.6.9 assert 2-arg bug 2016-06-29 rocky * test/simple_source/bug26/06_setif_comprehension.py, test/simple_source/bug27+/06_setif_comprehension.py, test/simple_source/comprehension/06_setif_comprehension.py, uncompyle6/parsers/parse26.py: A 2.6 comprehension bug 2016-06-29 R. Bernstein * : Merge pull request #33 from rocky/python-2.6 Python 2.6 2016-06-28 rocky * uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: Weird 2.6.9 list comprehension 2016-06-28 rocky * test/simple_source/stmts/06_return_if.py, uncompyle6/parsers/parse26.py: Add more come_from_pops 2016-06-28 rocky * test/simple_source/stmts/07_withstmt_fn.py, uncompyle6/parsers/parse26.py: 2.6. with fn() 2016-06-27 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py: Base 2.5 off of 2.6. Some other small bugs. 2016-06-27 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse26.py: 2.6 try except hadnling works now 2016-06-27 rocky * uncompyle6/parsers/parse26.py, uncompyle6/semantics/pysource.py: 2.6 list comprehensions 2016-06-27 rocky * __pkginfo__.py, uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py: JUMP_IF_{TRUE,FALSE}_OR_OP fixes 2016-06-27 rocky * uncompyle6/parsers/parse26.py: WIP 2.6 j{f,b}_pop fix 2016-06-24 rocky * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py: WIP deal with JUMP_IF_{TRUE,FALSE} vs with POP version 2016-06-24 rocky * : WIP Python-2.6 but don't remove opcodes The scheme for turning 2.6 bytecode into 2.7 psuedo bytecode I think is a lose. I won't work for fragment handling. Instead, change the grammar and syntax rules This also has the benefits: * We see how code generation changed over releases by looking at grammar and semantic rules rather than arbitrary code * We can better assocate with what's running (in a sense this is a restatement of broken fragment handling) * With the right structure in place we are in a better position to handle 2.5, 2.4, etc. That is, after a while, the incremental changes to get say from python 2.3 bytecode to python 2.7 are great. Conflicts: uncompyle6/parsers/astnode.py 2016-06-24 rocky * uncompyle6/scanners/scanner2.py: 2.6 compatibility 2016-06-24 rocky * uncompyle6/scanners/scanner2.py: Small formating changes ... and premonition of 2.6 byteocde work 2016-06-24 rocky * : commit 7a4e3a05ff88e8a02b08eafc3e9f862d1e206c7f Author: rocky Date: Fri Jun 24 09:28:50 2016 -0400 2016-06-24 rocky * __pkginfo__.py, uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/semantics/pysource.py: WIP 2.6 redo bytecode handling Don't try to convert 2.6 bytecode to 2.7 psuedo bytecode. Instead adjust grammar and semantic actions. Down the line we should to segregate version changes in semantic code better. 2016-06-24 Daniel Bradburn * uncompyle6/show.py: fixed bug in maybe_show_ast_param_default, if default was not a str a TypeError would occur 2016-06-22 rocky * README.rst, __pkginfo__.py: Doc fixes 2016-06-22 rocky * ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready for release 2.5.0 2016-06-22 rocky * README.rst: Update README 2016-06-22 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Python 3.5 and setcomp_func's A comprehension walk in Python 3.5 needs to include setcomp_func's. 2016-06-22 rocky * test/simple_source/branching/07_if_return_bug.py, uncompyle6/parsers/parse3.py: Python 3.5 if handling... Allow RETURN_END_IF in a return statement May want to do this in other versions as well, but right now we only need it here. 2016-06-22 rocky * test/simple_source/expression/05_yield_from.py, test/simple_source/expression/09_yield_from.py, uncompyle6/parsers/parse3.py: Another kind of yield_from on 3.5 2016-06-22 rocky * test/simple_source/expression/05_yield_from.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: differing ways to do "yield from" in 3.3-3.5 2016-06-22 rocky * test/test_pyenvlib.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner23.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Add Python 3.5 yield from and ... * fragments.py: Handle pass stmt sometimes * scanners: regularize Python 2 scanners some * test/test_pyenvlib.py: add python 3.5.1 option 2016-06-22 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Python 3 comprehension fixes Sync up fragments.py 2016-06-22 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: More 3.2 LOAD_CONST removal More python3 custom grammar DRYing 2016-06-22 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: DRY parse grammar a little More LOAD_CONST grammar removal in 3.2 2016-06-22 rocky * test/simple_source/expression/05_lambda.py, test/simple_source/expression/10_lambda.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3.2 MAKE_FUNCTION adjustment 2016-06-22 rocky * uncompyle6/semantics/fragments.py: Python 2.6 tolerance 2016-06-21 rocky * uncompyle6/semantics/fragments.py: Btter Python 3 fragment set comprehensions ... fragment handling for "break" and "continue" 2016-06-21 rocky * uncompyle6/semantics/fragments.py: Handle fragment key/value offsets better 2016-06-20 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Bang on Python 3.2 decompiling. 2016-06-20 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py: Python 3 needs Python2's RETURN_END_IF Make python2 and python3 scanner look more the same 2016-06-20 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: previous 2.7 class decorator bug fixed in 3.x 2016-06-20 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: DRY redundant custom rule checking code 2016-06-20 rocky * test/simple_source/comprehension/05_set_comprehension.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Python 3 set comprehension bug 2016-06-20 rocky * test/simple_source/def/07_classderef.py, test/simple_source/def/11_classbug_subclass_fn.py, uncompyle6/parsers/parse3.py: Python 3.x class bug using subclass fns 2016-06-20 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py, uncompyle6/semantics/pysource.py: For Python 3: add LOAD_CLASSDEREF op 2016-06-20 rocky * test/simple_source/def/11_mkfunc_closure.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: 3.x make closure kw args handling bug 2016-06-20 rocky * test/simple_source/def/10_class_deco.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Python 3.x class decorator bug 2016-06-19 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Correct kw+pos args semantics on 3.3 Sync fragment make_function code 2016-06-19 rocky * test/simple_source/def/10_kw+pos_args-bug.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Start 3.3 positional and kw parameters Semantic routines need more work. 2016-06-19 rocky * test/simple_source/exception/10_try_continue_bug.py, uncompyle6/parsers/parse3.py: Another 3.x bug involving jumps 2016-06-19 rocky * test/simple_source/expression/03_map.py: Revert assert test on 3.4 until we figure out how to address 2016-06-19 rocky * test/simple_source/comprehension/05_set_comprehension.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner27.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: 2.7 and 3.x bug in dict comprehensions 2016-06-19 rocky * test/simple_source/expression/10_load_assert.py: 3.4 Load assert bug 2016-06-19 rocky * test/simple_source/exception/06_tryifelse.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py: 3.4 tryifelse bug 2016-06-19 rocky * test/simple_source/looping/08_while_except_bug.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3 except clause parsing bug 2016-06-19 rocky * uncompyle6/semantics/fragments.py: Cover more offsets 2016-06-19 rocky * uncompyle6/parsers/parse3.py: Python 3.3 is more like 3.4 than we had thought? 2016-06-19 R. Bernstein * : Merge pull request #31 from rocky/ast-format Ast format 2016-06-19 rocky * : commit 10b95cd9a844c274b0ebce3e605932eccc814f1b Author: rocky Date: Sun Jun 19 02:31:19 2016 -0400 2016-06-19 rocky * : commit d7b79c2b59eb1fb49614300d7033c69568b7f43b Author: rocky Date: Sun Jun 19 00:49:22 2016 -0400 2016-06-18 rocky * test/simple_source/comprehension/06_setif_comprehension.py, uncompyle6/main.py, uncompyle6/parser.py, uncompyle6/semantics/pysource.py: 3.4 set comprehension if bug 2016-06-17 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse23.py, uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse3.py: Go over grammars.. * Reduce duplication * Remove unused grammar rules * Add grammar checking when parsers run as standalone 2016-06-14 rocky * uncompyle6/semantics/pysource.py: Not-quite-right 3.5+ * handling 2016-06-07 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Add fragment offsets for more instructions Save and restore class name across switches 2016-06-06 rocky * pytest/test_deparse.py, uncompyle6/semantics/fragments.py: Set comprehension code is not in 2.6 So we need more care in test programs. 2016-06-06 rocky * uncompyle6/semantics/fragments.py: Add class offset of Python3 2016-06-06 rocky * pytest/test_deparse.py, test/simple_source/comprehension/05_set_comprehension.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Fix python 3 set comprehension and ... Add a few set/list comprehension offsets for Python 3 2016-06-06 rocky * uncompyle6/parser.py, uncompyle6/parsers/astnode.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: small changes 2016-06-06 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py: include offset for starting listcomp 2016-06-03 rocky * : commit d4006abf15a2e3da768cdcf2e19078d0553ed979 Author: rocky Date: Fri Jun 3 10:59:29 2016 -0400 2016-06-03 rocky * test/Makefile, uncompyle6/scanner.py, uncompyle6/scanners/scanner23.py: Can't handle python 2.3 on 3.x for now 2016-06-03 rocky * .gitignore, __pkginfo__.py, test/Makefile, test/test_pyenvlib.py, test/test_pythonlib.py, uncompyle6/parser.py, uncompyle6/parsers/parse23.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner23.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py: Limited support for Python 2.3 2016-06-03 rocky * uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py: option to show asm and DRY. Get ready for some 2.3 support 2016-06-03 rocky * README.rst, uncompyle6/scanners/scanner33.py: For Python 3.3 verification README.rst: reflow paragraph 2016-06-02 rocky * test/simple_source/comprehension/06_list_ifnot_and.py, uncompyle6/parser.py, uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner26.py: Start custom grammar for 2.6 and ... fix a python 2.6.9 deparse with lc if+and+not 2016-06-02 rocky * .gitignore, README.rst, uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py: Misc refactorings 2016-06-01 rocky * README.rst: Remove things we don't do here anymore. For those other things see xdis. 2016-06-01 rocky * README.rst: Remove stuff we don't do anymore For these other functions see xdis. 2016-06-01 rocky * .gitignore, uncompyle6/parsers/astnode.py: print AST children counts for internal nodes 2016-06-01 R. Bernstein * : Merge pull request #23 from rocky/diagnostics-to-stream Diagnostics to stream 2016-06-01 Daniel Bradburn * uncompyle6/parser.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py, uncompyle6/show.py: showasm and showast now accept file like objects which are used for writing the the asm or ast to. 2016-06-01 Daniel Bradburn * uncompyle6/show.py: showasm and showast now accept file like objects which are used for writing the the asm or ast to. 2016-05-31 R. Bernstein * : Merge pull request #22 from rocky/xdis-load Xdis load 2016-05-31 rocky * __pkginfo__.py, uncompyle6/.gitignore, uncompyle6/opcodes/Makefile, uncompyle6/opcodes/__init__.py, uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: use totally xdis's opcodes Needs xdis 1.1.0 or greater 2016-05-30 rocky * pytest/test_disasm.py, pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, test/ok_lib2.7/bsddb/dbobj.py, test/ok_lib2.7/bsddb/dbrecio.py, test/ok_lib2.7/bsddb/dbshelve.py, test/ok_lib2.7/bsddb/dbutils.py, test/ok_lib2.7/compiler/__init__.py, test/ok_lib2.7/compiler/ast.py, test/ok_lib2.7/compiler/consts.py, test/ok_lib2.7/compiler/future.py, test/ok_lib2.7/compiler/misc.py, uncompyle6/disas.py: Back of some of the last disasm changes Was failing test_disasm and I don't want to deal with that now. Add more 2.7 bytecode tests 2016-05-29 rocky * : commit 08790ab0ab6b24fdbaf6ba90211d159115c6863a Author: rocky Date: Sun May 29 23:02:31 2016 -0400 2016-05-29 rocky * test/Makefile, test/ok_lib2.6/anydbm.py, test/test_pythonlib.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py: DRY scanner25 and scanner26 more 2016-05-29 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py: Bang again on Python 2.5 and 2.6 scanners 2016-05-29 rocky * __pkginfo__.py, uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py: bang on scanner2{5,6} 2016-05-29 rocky * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py: Start to DRY 2.6 scanner Note: can't use xdis 2.6 opcode until another xdis release. 2016-05-29 rocky * uncompyle6/scanners/scanner2.py: Remove use of 2.7 globals by using self.opc 2016-05-28 rocky * : commit e70e7bfc164c319d5554042336160ee04fb2fdb2 Author: rocky Date: Sat May 28 19:34:12 2016 -0400 2016-05-28 rocky * uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: DRY scanners more 2016-05-28 rocky * test/simple_source/comprehension/06_list_ifnot.py, test/simple_source/comprehension/10-list-ifnot.py, uncompyle6/semantics/pysource.py: Fix bug in 3x list comprehensions with ifnot 2016-05-28 rocky * test/simple_source/comprehension/06_list_ifnot.py, test/simple_source/comprehension/10-list-ifnot.py, uncompyle6/scanners/dis3.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py: Remove dis3. Fix in 3.x list if not comprehension 2016-05-28 rocky * uncompyle6/opcodes/opcode_3x.py, uncompyle6/scanners/dis3.py: One more Python 3 opcode to remove 2016-05-28 rocky * uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/scanners/scanner3.py: Remove dup 3.x opcodes 2016-05-28 rocky * .travis.yml: Nuke Travis 3.2 and 3.3 testing for now 2016-05-28 rocky * uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py: xdis for Python 3 opcodes 2016-05-28 rocky * test/Makefile, uncompyle6/opcodes/opcode_35.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner35.py: use xdis 3.4-3.5 opcodes 2016-05-27 rocky * .travis.yml, __pkginfo__.py: More travis versions 2016-05-27 rocky * __pkginfo__.py, pytest/test_fjt.py, pytest/test_load.py, pytest/test_marsh.py, uncompyle6/__init__.py, uncompyle6/bin/pydisassemble.py, uncompyle6/code.py, uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/magics.py, uncompyle6/main.py, uncompyle6/marsh.py, uncompyle6/parser.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Use xdis for code, magics, and marshal 2016-05-25 rocky * : commit b6a0c5a704d7d0a3a2a0eb4f90a15eb7a4aceaa2 Author: rocky Date: Wed May 25 20:08:12 2016 -0400 2016-05-25 R. Bernstein * : Merge pull request #21 from rocky/fragments-state-fix Fixed bug in pysource / fragments where the use of deparse_code from … 2016-05-24 rocky * uncompyle6/semantics/fragments.py: Small change 0 shouldn't be used as False. 2016-05-23 rocky * test/simple_source/def/06_ifTrue_optimize_bug.py, test/simple_source/def/06_return_bug.py, uncompyle6/semantics/pysource.py: final RETURN removal bug We want to remove a final return from a module, but otherwise not. Note we'll no lonager be able to verify functools.pyc as there is now a return after a raise statement. That will have to be delt with separately. May address Issue #17. 2016-05-22 rocky * README.rst: pydisassemble is in pyxdis now Some small ReST tag fixes 2016-05-22 Daniel Bradburn * .travis.yml: Excluding experimental branch from travis ci 2016-05-22 Daniel Bradburn * .travis.yml: Excluding experimental branch from travis ci 2016-05-21 Daniel Bradburn * : Merge pull request #16 from rocky/multi-gen--bug-3.5 Fix 3.x generator bug... 2016-05-21 rocky * test/simple_source/expression/11_multi_genexpr.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Fix 3.x generator bug... found by Daniel Brandburn. See https://github.com/moagstar/python-uncompyle6/commit/af61622960ba49eef5ea1b5bdf9a738c7b10427c 2016-05-21 rocky * uncompyle6/bin/uncompile.py: Check Python version in uncompile.py Seems this is the only place that uses that. 2016-05-20 rocky * test/test_pyenvlib.py, uncompyle6/main.py: Small changes test_pyenvlib.py: cleanup code a little uncompyle6/main.py: more explicit decompile msg 2016-05-20 rocky * test/test_pyenvlib.py, uncompyle6/__init__.py, uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py, uncompyle6/scanners/dis3.py, uncompyle6/semantics/fragments.py, uncompyle6/verify.py: Small pyflakes stuff 2016-05-20 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Fragment fixes fragments.py: * Use "%x" specifier if for iterators * Add '%D' interpretation pysource.py: TABLE_DIRECT can get messed up from running fragments duplicate "%x" specifier to igore fragment stuff 2016-05-19 rocky * LICENSE, PKG-INFO, __pkginfo__.py, test/simple_source/README, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: Small changes and administrivia 2016-05-18 rocky * pytest/test_marsh.py, test/simple_source/expression/06_frozenset.py, uncompyle6/marsh.py: Handle marshal frozenset 2016-05-18 rocky * NEWS, uncompyle6/disas.py, uncompyle6/magics.py, uncompyle6/opcodes/opcode_27.py: Allow PyPy 2.7 opcodes and magic and ... disas.py: * more aggressive code checking magics.py: * Add PYPY magic opcodes_27.py: * Add PYPY opcodes 2016-05-18 rocky * ChangeLog, DECOMPYLE-2.4-CHANGELOG.txt, HISTORY.md, NEWS, README.rst, test/test_pyenvlib.py, uncompyle6/version.py: Get ready for release 2.4.0 2016-05-18 rocky * uncompyle6/verify.py: Add 3.5 to verify 2016-05-18 rocky * pytest/test_load.py, pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, uncompyle6/disas.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py, uncompyle6/verify.py: pydisassemble improvements; DRY scannners disas.py: - disassembles *all* code objects found scanner*.py: - no longer need to pass in version numbers; this is obtained from the class name - no longer pass in opcodes; this is done at initialization from the scanner name - all Pythoin 3 scanners support native disassembly 2016-05-17 rocky * pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, uncompyle6/bin/pydisassemble.py, uncompyle6/disas.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/tok.py: Go over disassembly routine... * tok.py: - add arg value when it is an integer * pydisassemble.py: - add option -U --uncomplyle for which flavor of disassembly - remove -o option * scanner27.py: - allow for native (non-uncompyle6) output 2016-05-17 rocky * pytest/test_marsh.py, test/simple_source/expression/02_complex.py, uncompyle6/marsh.py: Fix marshal bug in handling complex numbers 2016-05-17 rocky * Makefile, test/simple_source/def/09_class_closure.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Fix Python 3.x bugs * class definitions made via closures * Add "make check-short" to top-level * parse3.py: Python 3.3 uses STORE_LOGALS 2016-05-16 rocky * test/test_pyenvlib.py, uncompyle6/marsh.py, uncompyle6/scanners/scanner3.py: Fix a number of small bugs... test_peynv.py: make Python3 compatible marsh.py: remove duplicate test scanner3.py: fix opcode typo 2016-05-16 rocky * uncompyle6/parsers/parse3.py: Fix Python 3.x bug in function VAR and KW args 2016-05-16 rocky * : Readd some 3.x loop tests 2016-05-16 rocky * pytest/test_fjt.py: pytest for last commit 2016-05-16 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Correct bugs in Python 3.2 source generation 2016-05-16 rocky * Makefile: Travis can't handle pytest on Python 3.5 2016-05-16 rocky * HISTORY.md, Makefile, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py: Python 2 loop scanner detection in Python 3 scanner*.py: Make scanner27 and scanner3 more aligned Makefile: we can run py.test on Python 3.5 HISTORY.md: grammar changes 2016-05-16 rocky * HISTORY.md, uncompyle6/main.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: Misc small changes Go over history yet again code cleanups. 2016-05-15 rocky * uncompyle6/parsers/parse3.py: Python3 mklambda bug 2016-05-15 rocky * test/simple_source/expression/08_genexpr.py, test/simple_source/expression/10_genexpr.py, uncompyle6/parsers/parse3.py: Python 3 genexpr bug 2016-05-15 rocky * HISTORY.md: Correct info on parser 2016-05-15 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Bug in Python 3.x genexpr 2016-05-15 rocky * test/simple_source/expression/05_lambda.py, test/test_pyenvlib.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py: Fix bug in Python 3 lambda expression handling Some other small cleanup changes 2016-05-15 rocky * uncompyle6/bin/pydisassemble.py, uncompyle6/disas.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/scanners/tok.py: pydisassemble disassemble without grammar mangling Some other small cleanups as well 2016-05-15 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Fix verify bug in 3.2 2016-05-15 rocky * test/simple_source/looping/12_if_while_bug.py, uncompyle6/parsers/parse3.py: 3.4 if/while bug 2016-05-15 rocky * .travis.yml: force Travis 2.7.11 for Python 2.7 2016-05-15 rocky * test/ok_lib2.7/aifc.py, test/ok_lib2.7/antigravity.py, test/ok_lib2.7/anydbm.py, test/ok_lib2.7/asynchat.py, test/ok_lib2.7/atexit.py, test/ok_lib2.7/audiodev.py, test/ok_lib2.7/base64.py, test/ok_lib2.7/binhex.py, test/ok_lib2.7/bisect.py, test/ok_lib2.7/calendar.py, test/ok_lib2.7/cgitb.py, test/ok_lib2.7/chunk.py, test/ok_lib2.7/codeop.py, test/ok_lib2.7/colorsys.py, test/ok_lib2.7/commands.py, test/ok_lib2.7/compileall.py, test/ok_lib2.7/dircache.py, test/ok_lib2.7/dis.py, test/test_pyenvlib.py: Add more Python 2.7 verify tests 2016-05-15 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Fix bug in kvlist handling on Python 2.7 Created from previous DRY code in Python 3 2016-05-15 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: DRY scanner34 and scanner35 handle 3.0..3.4 build maps as key/value pairs 2016-05-15 rocky * uncompyle6/scanners/dis3.py: Optimize Python 2/3 code2num 2016-05-14 rocky * test/Makefile, uncompyle6/scanners/dis3.py: Python2 comptability in using Python 3 disassembly Also fixes ablility to run bytecode 3.5 tests from 2.x now For Python 2 reading python3 bytstrings, we need to make sure we confer the character to a number. 2016-05-14 rocky * uncompyle6/bin/pydisassemble.py, uncompyle6/scanners/dis3.py, uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: Start to DRY Python 3.4 and 3.5 scanners 2016-05-14 rocky * __pkginfo__.py, requirements.txt, setup.py: See if travis will take spark 1.2.1 2016-05-14 rocky * uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py: Fix names for -V 2016-05-14 rocky * ChangeLog, __pkginfo__.py, uncompyle6/version.py: Fix botched entry point names Get ready for relase 2.3.6 2016-05-14 rocky * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release 2.3.5 2016-05-13 rocky * uncompyle6/semantics/fragments.py: More fragment bugs 2016-05-13 rocky * MANIFEST.in, Makefile, __pkginfo__.py, setup.py, uncompyle6/semantics/fragments.py: More packaging crap. Did I tell you how much I hate python packaging? fragments.py: track recent change in class decorators. 2016-05-13 rocky * __pkginfo__.py, bin/pydisassemble, bin/uncompyle6, setup.py, test/simple_source/bug26/05-ret-or.py, test/simple_source/def/03_star_arg.py, uncompyle6/bin/__init__.py, uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py: Python packaging - yet again. Did I ever mention how much Python sucks at packaging? 2016-05-13 rocky * test/simple_source/def/10_classdec.py: Test for class decorator See https://github.com/rocky/python-uncompyle6/pull/15 2016-05-13 R. Bernstein * : Merge pull request #15 from Tey/master Fix for class decorators 2016-05-12 rocky * __pkginfo__.py: Back off spark 1.2.0 for now 2016-05-12 rocky * uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner35.py: More small changes 2016-05-12 rocky * test/test_pythonlib.py: Clean up test byte-compile directory 2016-05-12 rocky * test/simple_source/stmts/15_for_if.py, uncompyle6/main.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Misc changes Back off of some validation tests for now. 2016-05-12 rocky * __pkginfo__.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Misc fixups/cleanups * parse3.py Had botched if-for-else test by grammar addition * semantics/*.py: Show errorstack in failed parse when -g (requires sparck 1.2.0) * some optimization in scanner3 2016-05-12 R. Bernstein * : Merge pull request #14 from rocky/make-function-rewrite Make function rewrite 2016-05-11 rocky * test/simple_source/def/03_py3_def.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Redo make_function for *, arg main(*, file='foo') and things like that now work 2016-05-11 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py: WIP Make function redo 2016-05-10 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: add pos_arg ::= expr to make params of fns clear 2016-05-09 rocky * uncompyle6/parsers/parse3.py: * call WIP 2016-05-09 rocky * test/simple_source/def/11_classbug.py, uncompyle6/parsers/parse3.py: 3.2 class bug 2016-05-09 rocky * test/simple_source/looping/09_if_whiletrue_bug.py, uncompyle6/parsers/parse3.py: 3.2 WhileTrue grammar bug 2016-05-09 rocky * test/simple_source/stmts/09_whiletrue_bug.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3 "while True" bug 2016-05-09 rocky * DECOMPYLE-2.4-CHANGELOG.txt, HISTORY.md, MANIFEST.in: Dan Pascu's contribution via Dan 2016-05-09 rocky * HISTORY.md: Another history tweak 2016-05-09 rocky * HISTORY.md, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner27.py: Some grammar cleanup 2016-05-09 rocky * test/simple_source/def/05_closure_bug.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Track recent lc changes in fragment semantics 2016-05-09 rocky * test/simple_source/def/07_closure_bug2.py: Another closure wrapping bug 2016-05-09 rocky * test/simple_source/def/05_closure_bug.py, uncompyle6/parsers/parse3.py: Another Python 3 closure grammar bug 2016-05-09 rocky * HISTORY.md: More small history tweaks 2016-05-09 rocky * test/simple_source/comprehension/11-list-if.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Fix Python 3 list comprehansion closure bug 2016-05-08 rocky * test/simple_source/operation_logic/05_dup_top_two.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Python 3 DUP_TOP_TWO bug 2016-05-08 rocky * test/simple_source/looping/11_if_while_bug.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: DRY parse{2,3} code Add test for last bug. 2016-05-08 rocky * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Fix another if/loop parse bug 2016-05-08 rocky * HISTORY.md, uncompyle6/main.py: Go over history yet again. 2016-05-08 rocky * test/simple_source/comprehension/10-list-ifnot.py, uncompyle6/main.py, uncompyle6/parser.py: come_from_opt handles and/or precidence properly main.py: give a better error message when file is not found. 2016-05-08 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Semantic routine nonterminal typo 2016-05-08 rocky * test/simple_source/looping/11_for_if_loopback2.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Yet another Python 3.x COME_FROM grammar problem 2016-05-08 rocky * test/simple_source/looping/10_for_if_loopback.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner32.py: Fix 3.2 for/if loopback bug problem was handling in Python 3.2 for ... if ... else: .... jump for come from if jump for In later Python 3's a "come from" is removed. Also, start to DRY parser{,2,3} grammar rules. 2016-05-08 rocky * HISTORY.md, test/simple_source/branching/10_if_pass.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner35.py: Fix 3.5 if..pass bug Update HISTORY.MD to include Dan Pascu. Some minor doc corrections 2016-05-08 rocky * uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: DRY scanner 3.{4,5} code 2016-05-07 rocky * test/simple_source/def/07_classparam.py, uncompyle6/parsers/parse3.py: Python 3 build class parsing 2016-05-07 rocky * test/simple_source/expression/05_yield_from.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Handle Python 3 yield from Start dealing with MAKE_FUNCTION flags - not done yet. 2016-05-06 rocky * test/simple_source/comprehension/10-genexpr.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: More Python3 deparsing - grammar rule genexpr - More Python3 docstring formatted 2016-05-06 rocky * bin/pydisassemble, setup.py: Administrivia setup.py: don't need to import pkg_resources pydisassemble: give an error is no file or directory is given usage should go to stderr, not stdout 2016-05-05 rocky * README.rst, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Minor tweaks 2016-05-05 rocky * uncompyle6/semantics/pysource.py: All Python 2.7 lib files decompile 2016-05-05 rocky * test/simple_source/stmts/05_try_finally_pass.py, test/simple_source/stmts/10_if_break_finally.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: More Python 2 and 3 deparsing bugs fixed * while + if break * try + finall /pass 2016-05-05 rocky * __pkginfo__.py: Again, not GPL3 but MIT 2016-05-05 rocky * uncompyle6/__init__.py, uncompyle6/opcodes/opcode_27.py: Start PYPY 2.7 tolerance 2016-05-05 rocky * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release 2.3.4 2016-05-05 rocky * .travis.yml: Remove pypy3 add python 3.2 testing Reorder list for testing preference 2016-05-05 rocky * .travis.yml: Remove pypy 2016-05-05 rocky * Makefile, test/Makefile, uncompyle6/semantics/pysource.py: Fix up 3.2 tests Remove pypy 2016-05-05 rocky * .travis.yml: Try pypy and pypy3 2016-05-05 rocky * test/simple_source/def/05_abc_class.py, test/simple_source/def/06_classbug.py, uncompyle6/parsers/parse3.py: Python 3.5 abc.py bug distilled 2016-05-05 rocky * uncompyle6/scanners/dis35.py, uncompyle6/scanners/scanner35.py: Add cross-Python-protable 3.5 dis module 2016-05-04 rocky * test/simple_source/stmts/05_with.py, uncompyle6/opcodes/opcode_35.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner35.py: Handle 3.5 with [as] scanner35.py: Fix a small variable-name typo 2016-05-03 rocky * : One more test 2016-05-03 rocky * uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: Don't repeat next_except_jump 2016-05-03 rocky * __pkginfo__.py, requirements.txt: Wrong package name 2016-05-03 rocky * __pkginfo__.py, requirements.txt, setup.py: More package administrivia 2016-05-03 rocky * uncompyle6/scanner.py: Remove one more old-style Python class 2016-05-03 rocky * uncompyle6/scanners/scanner27.py: DRY Python 2.7 scanner more 2016-05-03 rocky * MANIFEST.in: Include LICENSE in package 2016-05-03 rocky * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release 2.3.3 2016-05-02 rocky * README.rst: Be more explicit that we need Python 2.6 or later 2016-05-02 rocky * : commit feec241da88107b97bbdfbabeb3ae7131a7aa923 Author: rocky Date: Mon May 2 21:20:17 2016 -0400 2016-05-02 rocky * README.rst: Note relation to other uncompyle forks Add some other minor corrections and additions as well. 2016-05-02 rocky * uncompyle6/__init__.py: Trivial spacing change 2016-05-02 rocky * ChangeLog, NEWS, __pkginfo__.py, bin/pydisassemble, bin/uncompyle6, setup.py, uncompyle6/__init__.py, uncompyle6/version.py: Add -V | --version and simplfy changing it 2016-05-01 rocky * uncompyle6/__init__.py: Expose uncompyle_file 2016-05-01 rocky * test/Makefile, uncompyle6/semantics/pysource.py: Bug 2016-05-01 rocky * test/Makefile, test/simple_source/expression/05_const_map.py: Add test for last fix. Drop 2.5 test until we figure out what's wrong 2016-05-01 rocky * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner35.py, uncompyle6/semantics/pysource.py: Bug in 3.5 constant map parsing 2016-05-01 rocky * uncompyle6/__init__.py: Export module load and fns load_file, load_module 2016-05-01 rocky * __pkginfo__.py, setup.py, uncompyle6/marsh.py: License is MIT marsh.py: remove unused import 2016-05-01 rocky * uncompyle6/parsers/parse3.py: Forgot to define Python3ParserSingle 2016-05-01 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Start to DRY Python2 and Python3 grammars Separate out 3.2, and 3.5+ specific grammar code 2016-04-30 rocky * ChangeLog, NEWS, README.rst, __pkginfo__.py: Get ready for release 2.3.1 2016-04-30 rocky * uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3.0..3.2 bug in LOAD_FAST/STORE_LOCAL LOAD_FAST '__locals__' STORE_LOCALS '' Also have to adjust doc constants for this crap astnode.py: minor format change 2016-04-30 rocky * test/Makefile, test/simple_source/def/06_classbug.py, test/test_pythonlib.py: Test optimized Python code and Python 3.2 2016-04-30 rocky * uncompyle6/parsers/parse3.py: Pevious commit grammar change is Python 3.5 and up 2016-04-30 rocky * uncompyle6/parsers/parse3.py: Python 3.5 if statments decompyle Sometimes it doesn't need JUMP_FORWARD _come_from _come_from For example: def handle2(module): if module == 'foo': try: module = 1 except ImportError as exc: module = exc return module And: if __name__: for i in (1, 2): x = 3 2016-04-28 rocky * requirements.txt, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: spark -> spark_parser 2016-04-28 rocky * uncompyle6/parsers/spark.py: Really remove spark - Use external package instead 2016-04-27 R. Bernstein * : Merge pull request #8 from rocky/external-spark External spark 2016-04-27 rocky * .travis.yml, circle.yml: Note dependencies on spark 2016-04-27 rocky * .gitignore, README.rst, requirements.txt, uncompyle6/parser.py, uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Use external spark now. 2016-04-20 rocky * circle.yml: Back to 2.7.8 2016-04-20 rocky * circle.yml: Try python 2.7.10 2016-04-19 rocky * README.rst: Remove link to Mysterie uncompyle2 per request 2016-04-19 rocky * ChangeLog, NEWS, __pkginfo__.py: Get ready for release 2.2.0 2016-04-18 rocky * README.rst: Another typo 2016-04-18 R. Bernstein * : Merge pull request #7 from rocky/single-compile Support single-mode compile 2016-04-18 rocky * README.rst: Doc typo 2016-04-18 Thomas Grainger * __pkginfo__.py, setup.cfg, setup.py: declare Python3 support in wheel and trove 2016-04-18 rocky * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Start to DRY Python 2 and Python 3 grammar code Move common code to parser.py 2016-04-18 rocky * pytest/test_single_compile.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Add simgle-mode compilation 2016-04-17 rocky * pytest/test_single_compile.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Towards single compilation 2016-04-10 rocky * : Back off if_else_ternary pending Fails on Python 3.4 investigation Python 3.5 works though 2016-04-10 rocky * .gitignore: Test administrivia 2016-04-07 rocky * HISTORY.md, README.rst, test/simple_source/branching/10_if_else_ternary.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Handle Ternary "or". Remove mention of uncompyle3 uncompyle3 removed per Mysterie's request [Fixes Issue #5] 2016-03-11 rocky * test/Makefile: remove uncompyle3 and make test work again * uncompyle3 removed by request * make test on python 2.7 is failing on some python3 and python3.5 bytecodes. Remove for now. 2016-02-23 R. Bernstein * : Merge pull request #3 from lelicopter/master Bug correction (parse cmd options) 2016-01-07 rocky * test/Makefile, test/bytecompile-tests, test/test_pythonlib.py: Add Python 3.5 tests that we can do. 2016-01-05 R. Bernstein * HISTORY.md: Grammar fixes 2016-01-02 rocky * ChangeLog, NEWS, __pkginfo__.py: Get ready for release 2.1.3 2016-01-02 rocky * uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/opcodes/opcode_35.py, uncompyle6/opcodes/opcode_3x.py, uncompyle6/parser.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/scanners/scanner35.py: Start to DRY opcode code. Limited support for decopyling Python 3.5 2016-01-02 rocky * test/Makefile, test/ok_lib3.4/antigravity.py, test/ok_lib3.4/bisect.py, test/test_pythonlib.py: Start 3.4 library verify tests 2016-01-02 rocky * README.rst: Regularize spelling of bytecode 2016-01-02 rocky * Makefile, README.rst: Add download shield. Add check-rst target 2016-01-02 R. Bernstein * README.rst: Update README.rst 2016-01-02 rocky * uncompyle6/semantics/fragments.py: Track recent source class semantic actions in fragment actions 2016-01-02 rocky * uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py: Make ScannerXX() initialization the same on Python 2.x and 3.x 2016-01-02 rocky * test/Makefile, test/simple_source/comprehension/05_list_comprehension.py, test/simple_source/def/02_closure.py, test/test_pythonlib.py, uncompyle6/main.py, uncompyle6/verify.py: Verify 3.4 bytecode. verify API call bug fixed. 2016-01-02 rocky * test/simple_source/def/05_class.py, uncompyle6/load.py, uncompyle6/main.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python 3 class deparsing. stop earlier in uncompyle6 on a syntax error. 2016-01-01 rocky * uncompyle6/scanners/scanner3.py: Fix make_closure compilation from 2.x of 3.3 bytecode 2016-01-01 rocky * test/simple_source/def/02_closure.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Work on MAKE_CLOSURE rules for Python 3.3 2015-12-31 rocky * uncompyle6/semantics/fragments.py: track source deparsing superclass bug fix 2015-12-31 rocky * ChangeLog, NEWS, __pkginfo__.py: Get ready for release 2.1.2 2015-12-31 rocky * test/base_tests/compile_tests, test/base_tests/python2.7/test_applyEquiv.py, test/base_tests/python2.7/test_augmentedAssign.py, test/base_tests/python2.7/test_class.py, test/base_tests/python2.7/test_del.py, test/base_tests/python2.7/test_divide_future.py, test/base_tests/python2.7/test_divide_no_future.py, test/base_tests/python2.7/test_docstring.py, test/base_tests/python2.7/test_empty.py, test/base_tests/python2.7/test_exceptions.py, test/base_tests/python2.7/test_exec.py, test/base_tests/python2.7/test_expressions.py, test/base_tests/python2.7/test_extendedImport.py, test/base_tests/python2.7/test_extendedPrint.py, test/base_tests/python2.7/test_extendedarg.py-notyet, test/base_tests/python2.7/test_functions.py, test/base_tests/python2.7/test_global.py, test/base_tests/python2.7/test_globals.py, test/base_tests/python2.7/test_import.py, test/base_tests/python2.7/test_import_as.py, test/base_tests/python2.7/test_integers.py, test/base_tests/python2.7/test_iterators.py, test/base_tests/python2.7/test_lambda.py, test/base_tests/python2.7/test_listComprehensions.py, test/base_tests/python2.7/test_loops.py, test/base_tests/python2.7/test_loops2.py, test/base_tests/python2.7/test_mine.py, test/base_tests/python2.7/test_misc.py, test/base_tests/python2.7/test_nested_elif.py, test/base_tests/python2.7/test_nested_scopes.py, test/base_tests/python2.7/test_prettyprint.py, test/base_tests/python2.7/test_print.py, test/base_tests/python2.7/test_print_to.py, test/base_tests/python2.7/test_single_stmt.py, test/base_tests/python2.7/test_slices.py, test/base_tests/python2.7/test_tuple_params.py-notyet, test/base_tests/python2.7/test_tuples.py-notyet, test/base_tests/python2.7/test_yield.py, test/base_tests/python3.4/__init__.py: Remove tests we will never use 2015-12-31 rocky * .travis.yml, Makefile: Try travis testing on Python 3.5. Fix up Makefile to avoid pytest on 3.5 for now 2015-12-31 rocky * test/ok_lib2.7/dircache.py, test/ok_lib2.7/dis.py: Add a few tests from Python 2.7 standard library 2015-12-31 rocky * test/simple_source/def/05_class.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Handle Python 3.3 > dotted class names 2015-12-30 rocky * README.rst: Note Python 3.5 2015-12-30 rocky * Makefile, test/Makefile, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/magics.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py: Allow Python 3.5 to decomplyle other versions. No Python 3.5 bytecode support just yet though. 2015-12-30 rocky * uncompyle6/parser.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Show details on parsing assert failures. 2015-12-30 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Remove accidental schmutz. Try using pattr on 3.4 to get fn names 2015-12-30 rocky * uncompyle6/parsers/parse3.py: Parses another variation of Python3 try/except. Reinstate some tests 2015-12-30 rocky * : Reinstate list comprehension test. I think we've found/fixed the initialization bug. 2015-12-30 rocky * uncompyle6/code.py, uncompyle6/disas.py, uncompyle6/main.py, uncompyle6/marsh.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py, uncompyle6/verify.py: Start using our replacement for inspect.iscode 2015-12-30 rocky * uncompyle6/parsers/spark.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Doc changes. 2015-12-30 rocky * uncompyle6/parsers/spark.py: document GenericASTTraversal.preorder and default. 2015-12-30 rocky * uncompyle6/main.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Walker->SourceWalker Traverser->FragmentsWalker 2015-12-30 rocky * uncompyle6/parsers/parse3.py: Tidy parse3 grammer a little 2015-12-30 rocky * test/simple_source/exception/25_try_except.py, test/test_pythonlib.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner34.py, uncompyle6/semantics/pysource.py: Towards Python3 getting try/except working more often. 2015-12-29 rocky * uncompyle6/scanners/scanner3.py: Fix another cross-version bug: eliminate version-specific library 'dis' and use corresponding version-indepent routine instead. 2015-12-29 rocky * test/Makefile, uncompyle6/marsh.py: Fix Python 2 cross deparsing pythond bytecode tuples co_consts, co_names, co_varnames. Reinstate cross Python 2-3 uncompiling 2015-12-29 rocky * uncompyle6/scanners/scanner34.py: Syntax error typo 2015-12-29 rocky * uncompyle6/marsh.py: Make sure internObjects is (re)initialized 2015-12-29 rocky * uncompyle6/parser.py, uncompyle6/scanners/scanner34.py, uncompyle6/verify.py: inspect.iscode -> hasattr for now until we write a cross-version iscode 2015-12-29 rocky * README.rst, test/Makefile, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py: scanner3: Python 2.6 compatibility: change set initializations. Get rid of * import opcode_*: only a little of the much-needed larger cleanup Makefile: remove 3.x bytecode checking from Python 2.x for now. DRY Makefile a little bit (but more is needed) 2015-12-28 rocky * uncompyle6/scanners/scanner3.py: Python 2.6.9 compatibility 2015-12-28 rocky * uncompyle6/main.py, uncompyle6/marsh.py: Marshal loading of = >python 3.4 from Python < 3.4 2015-12-28 rocky * uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/main.py, uncompyle6/marsh.py, uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Add Python3 marshal codes and start to handle cross-version Python code object types, introducing scan.Code3 2015-12-27 rocky * uncompyle6/load.py, uncompyle6/marsh.py: Possibly closer to getting 2.7 to read 3.4 bytecode 2015-12-27 rocky * uncompyle6/load.py, uncompyle6/main.py, uncompyle6/marsh.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/semantics/pysource.py: Fix up Python 2.x's ability to get code from Python 3.x's bytecode 2015-12-27 rocky * test/test_pythonlib.py: defer some tests 2015-12-27 rocky * : commit 7c5b8d803c5b76b185ebc8f6e7587fa64ef531e9 Author: rocky Date: Sun Dec 27 16:49:37 2015 -0500 2015-12-27 rocky * : 3.2 bytecode 2015-12-27 rocky * ChangeLog, NEWS, README.rst, __pkginfo__.py: Get ready for release 2.1.1 2015-12-27 rocky * ChangeLog, NEWS, README.rst, __pkginfo__.py, test/bytecompile-tests, uncompyle6/opcodes/Makefile, uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: DRY Python3 scanner code. Some cross version handling fixed. Some Python 3.2 and 3.3 deparse fixes. 2015-12-27 rocky * README.rst, test/bytecompile-tests, uncompyle6/opcodes/Makefile, uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: DRY Python3 scanner code. Some cross version handling fixed. Some Python 3.2 and 3.3 deparse fixes. 2015-12-26 rocky * .travis.yml, test/Makefile, uncompyle6/verify.py: Running native on Python 3.3 needs more work 2015-12-26 rocky * test/Makefile, test/test_pythonlib.py: Add ok-2.7 tests for 3.4 full testing 2015-12-26 rocky * test/Makefile, test/bytecompile-tests, test/test_pythonlib.py: Add verify tests. Add Python 2.6 bytecode and use. 2015-12-26 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Add node and template code to cleanup "for" handling 2015-12-26 rocky * .travis.yml: Try Python 2.6 testing on travis 2015-12-26 rocky * test/Makefile: For testing we can't 3.3 bytecodes on 2.7 yet, so use 3.2 2015-12-26 rocky * .travis.yml, Makefile, requirements-dev.txt, test/Makefile, test/bytecompile-tests, test/test_pythonlib.py, uncompyle6/__init__.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_33.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner33.py, uncompyle6/scanners/scanner34.py, uncompyle6/semantics/pysource.py: Fix up Python 3.2, 3.3, and 3.4 cross-version scanners Try travis 2.6 and 3.3 2015-12-26 rocky * .travis.yml: Travis: try checking 3.4 2015-12-26 rocky * test/simple_source/exception/05_try_except.py, test/simple_source/looping/10_while.py, test/simple_source/looping/while.py, test/simple_source/simple_stmts/00_assign.py, test/simple_source/simple_stmts/00_import.py, test/simple_source/simple_stmts/00_pass.py, test/simple_source/simple_stmts/15_assert.py, test/simple_source/stmts/00_assign.py, test/simple_source/stmts/00_import.py, test/simple_source/stmts/00_pass.py, test/simple_source/stmts/15_assert.py, test/simple_source/stmts/15_for_if.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py: Fix up looping by reinstating JUMP_ABSOLUTE -> JUMP_BACK or CONTINUE get jump offsets into jump attributes. Fix up 3.2 scanner paritally and use that in 3.4 for in cross version disassembly. 2015-12-26 rocky * test/simple_source/exception/01_try_except.py, test/simple_source/exception/05_try_except.py, uncompyle6/main.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Python3 try/except handling improvements. Add Walker exception and use that: fixes erroneous uncompyle success message on parse error. 2015-12-25 rocky * test/simple_source/exception/01_try_except.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: WIP redo try/except for Python3 2015-12-25 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Fix bugs in using pysource from fragments. 2015-12-25 rocky * uncompyle6/semantics/Makefile, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Two modes of disassembly, one where we show hidden code and one where we don't. 2015-12-25 rocky * README.rst: README.rst typos 2015-12-25 rocky * .gitignore, ChangeLog, MANIFEST.in, NEWS, __pkginfo__.py, test/Makefile: Get ready for releaes 2.0.0 2015-12-25 rocky * pytest/test_deparse.py: Port deparse test from python-deparse to py.test 2015-12-24 rocky * uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Remove Python3 class __qualname__ assignment. Change LOAD_NAME to LOAD_CLASSNAME to make parsing more reliable and intentional. 2015-12-24 rocky * test/simple_source/def/01_class.py, test/simple_source/exception/05_try_except.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Improve Python3 class definition handling 2015-12-24 rocky * uncompyle6/verify.py: One more place for API change 2015-12-24 rocky * pytest/test_load.py, test/dis-compare.py, uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/main.py, uncompyle6/verify.py: Show embeded timestamp of byte-decompiled file 2015-12-23 rocky * uncompyle6/semantics/fragments.py: Lint 2015-12-23 rocky * test/simple_source/exception/05_try_except.py, uncompyle6/parsers/parse3.py: WIP: Python3 exceptions 2015-12-23 rocky * test/simple_source/simple_stmts/00_import.py, test/simple_source/simple_stmts/00_pass.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Start Python3 class(superclass) handling 2015-12-23 rocky * test/simple_source/def/01_class.py, uncompyle6/load.py, uncompyle6/main.py, uncompyle6/parsers/parse2.py, uncompyle6/semantics/pysource.py: parse2.py, pysource.py: add buildclass nonterminal to structure tree better and make more similar to Python3 load.py: handle magic errors better main.py: correct use when passing a .py instead of a .pyc better and a message err when file not found. pysource.py: fix up main docstring; code moved from main.py 2015-12-23 rocky * uncompyle6/semantics/fragments.py: Add fragmnet offsets for 'from x import..' 2015-12-22 rocky * uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Propogate offsets in imports. Added a new %x format specifier. 2015-12-22 rocky * test/simple_source/def/01_class.py, test/simple_source/def/02_def.py, test/simple_source/def/def0.py, test/simple_source/def/def1.py, uncompyle6/__init__.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: Allow comments in grammar rules. Start working on Python3 class (not finished). More test organization. 2015-12-22 rocky * test/simple_source/def/01_class.py, test/simple_source/def/10_class.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/parse3.py: Remove Python2 buitin "print" from Python3's grammr. Start class tests 2015-12-22 rocky * bin/uncompyle6, uncompyle6/main.py, uncompyle6/parser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/spark.py, uncompyle6/semantics/pysource.py: main.py, pysource.py DRY deparse_code from main. Is better on showing exception errrors such as when a pyc file is not found uncompyle6: Hook in --grammar option to showing grammar. rules. Default now does not show timestamp. 2015-12-22 rocky * bin/uncompyle6, pytest/test_disasm.py, pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, test/Makefile, test/add-test.py, test/simple_source/branching/05_if.py, test/simple_source/branching/05_ifelse.py, test/simple_source/branching/if.py, test/simple_source/branching/ifelse.py, test/simple_source/call_arguments/01_positional.py, test/simple_source/call_arguments/10_keyword.py, test/simple_source/call_arguments/keyword.py, test/simple_source/call_arguments/positional.py, test/simple_source/exception/20_try_except.py, test/simple_source/exception/25_try_except.py, test/simple_source/misc/assert.py, test/simple_source/misc/assign_none.py, test/simple_source/operation_logic/01_boolean.py, test/simple_source/operation_logic/10_mixed_boolean.py, test/simple_source/operation_logic/or.py, test/simple_source/simple_stmts/15_assert.py, test/simple_source/slice/01_slice.py, test/simple_source/slice/02_slice.py, uncompyle6/main.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py, uncompyle6/semantics/pysource.py: Add spark option to show grammer. Revise uncompyle options. Start to reorganize tests more 2015-12-21 rocky * README.rst: grammar 2015-12-21 rocky * README.rst: Add meat to CI tag 2015-12-21 rocky * README.rst: Use travis badge for now 2015-12-21 rocky * README.rst: Make README.rst reflect current situation better 2015-12-21 rocky * HISTORY.md, test/simple_source/README, test/simple_source/exception/20_try_except.py, test/simple_source/looping/10_for.py, test/simple_source/looping/for.py, uncompyle6/main.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/spark.py, uncompyle6/scanners/scanner34.py: Bug in for loop with try. Add more of 2.7's COME_FROM statements. spark.py: add tracing reduce rules. main: reduce cutsines. Start history 2015-12-21 rocky * test/bytecode_2.7/README, test/bytecode_3.2/README, test/bytecode_3.4/README, test/bytecompile-tests, test/simple_source/README, test/simple_source/exception/01_try_except.py, test/simple_source/misc/assign.py, test/simple_source/misc/assign_none_str.py, test/simple_source/simple_stmts/00_assign.py, uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Start Python3 execption handling 2015-12-21 rocky * test/simple-source/README, test/simple-source/branching/if.py, test/simple-source/branching/ifelse.py, test/simple-source/call_arguments/keyword.py, test/simple-source/call_arguments/positional.py, test/simple-source/comprehension/01-lc.py, test/simple-source/comprehension/forelse.py, test/simple-source/def/def0.py, test/simple-source/def/def1.py, test/simple-source/looping/for.py, test/simple-source/looping/while.py, test/simple-source/misc/assert.py, test/simple-source/misc/assign.py, test/simple-source/misc/assign_none.py, test/simple-source/misc/assign_none_str.py, test/simple-source/operation_binary/add.py, test/simple-source/operation_binary/and.py, test/simple-source/operation_binary/divide_floor.py, test/simple-source/operation_binary/divide_true.py, test/simple-source/operation_binary/modulo.py, test/simple-source/operation_binary/multiply.py, test/simple-source/operation_binary/or.py, test/simple-source/operation_binary/power.py, test/simple-source/operation_binary/shift_left.py, test/simple-source/operation_binary/shift_right.py, test/simple-source/operation_binary/subscription.py, test/simple-source/operation_binary/subtract.py, test/simple-source/operation_binary/xor.py, test/simple-source/operation_comparison/equal.py, test/simple-source/operation_comparison/greater.py, test/simple-source/operation_comparison/greater_equal.py, test/simple-source/operation_comparison/less.py, test/simple-source/operation_comparison/less_equal.py, test/simple-source/operation_comparison/notequal.py, test/simple-source/operation_inplace/add.py, test/simple-source/operation_inplace/and.py, test/simple-source/operation_inplace/divide_floor.py, test/simple-source/operation_inplace/divide_true.py, test/simple-source/operation_inplace/modulo.py, test/simple-source/operation_inplace/multiply.py, test/simple-source/operation_inplace/or.py, test/simple-source/operation_inplace/power.py, test/simple-source/operation_inplace/shift_left.py, test/simple-source/operation_inplace/shift_right.py, test/simple-source/operation_inplace/subtract.py, test/simple-source/operation_inplace/xor.py, test/simple-source/operation_logic/and.py, test/simple-source/operation_logic/complex1.py, test/simple-source/operation_logic/complex2.py, test/simple-source/operation_logic/complex3.py, test/simple-source/precedence/left.py, test/simple-source/precedence/right.py, test/simple-source/precedence/structure.py, test/simple-source/slice/01-slice.py, test/simple_source/README, test/simple_source/branching/if.py, test/simple_source/branching/ifelse.py, test/simple_source/call_arguments/keyword.py, test/simple_source/call_arguments/positional.py, test/simple_source/comprehension/01_list_comprehension.py, test/simple_source/comprehension/forelse.py, test/simple_source/def/def0.py, test/simple_source/def/def1.py, test/simple_source/exception/01_try_except.py, test/simple_source/looping/for.py, test/simple_source/looping/while.py, test/simple_source/misc/assert.py, test/simple_source/misc/assign.py, test/simple_source/misc/assign_none.py, test/simple_source/misc/assign_none_str.py, test/simple_source/operation_binary/add.py, test/simple_source/operation_binary/and.py, test/simple_source/operation_binary/divide_floor.py, test/simple_source/operation_binary/divide_true.py, test/simple_source/operation_binary/modulo.py, test/simple_source/operation_binary/multiply.py, test/simple_source/operation_binary/or.py, test/simple_source/operation_binary/power.py, test/simple_source/operation_binary/shift_left.py, test/simple_source/operation_binary/shift_right.py, test/simple_source/operation_binary/subscription.py, test/simple_source/operation_binary/subtract.py, test/simple_source/operation_binary/xor.py, test/simple_source/operation_comparison/equal.py, test/simple_source/operation_comparison/greater.py, test/simple_source/operation_comparison/greater_equal.py, test/simple_source/operation_comparison/less.py, test/simple_source/operation_comparison/less_equal.py, test/simple_source/operation_comparison/notequal.py, test/simple_source/operation_inplace/add.py, test/simple_source/operation_inplace/and.py, test/simple_source/operation_inplace/divide_floor.py, test/simple_source/operation_inplace/divide_true.py, test/simple_source/operation_inplace/modulo.py, test/simple_source/operation_inplace/multiply.py, test/simple_source/operation_inplace/or.py, test/simple_source/operation_inplace/power.py, test/simple_source/operation_inplace/shift_left.py, test/simple_source/operation_inplace/shift_right.py, test/simple_source/operation_inplace/subtract.py, test/simple_source/operation_inplace/xor.py, test/simple_source/operation_logic/or.py, test/simple_source/operation_unary/invert.py, test/simple_source/operation_unary/iter.py, test/simple_source/operation_unary/negative.py, test/simple_source/operation_unary/not.py, test/simple_source/operation_unary/positive.py, test/simple_source/precedence/left.py, test/simple_source/precedence/right.py, test/simple_source/precedence/structure.py, test/simple_source/slice/01_slice.py: Regularize test names. 2015-12-21 rocky * test/Makefile, test/simple-source/slice/01-slice.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/tok.py, uncompyle6/semantics/pysource.py: Start Python3 slices. Split off token routine. 2015-12-21 rocky * uncompyle6/__init__.py, uncompyle6/marsh.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Start slice and build list on Python3. Do sanity check on marshal load of code. 2015-12-20 rocky * Makefile, bin/uncompyle6, pytest/test_load.py, test/Makefile, test/test_pythonlib.py, uncompyle6/__init__.py, uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/load.py, uncompyle6/main.py, uncompyle6/semantics/__init__.py, uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py, uncompyle6/verify.py, uncompyle6/walker.py: Part of a much needed cleanup. Move semantics routines into its own directory. Move out lots of stuff from __init__ to their own files. Add file loading tests. Document AST handling a tad more complete. 2015-12-20 rocky * test/Makefile, test/simple-source/misc/assign_none.py, test/simple-source/misc/assign_none_str.py, uncompyle6/marsh.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py: Python 3 decompilation from Python2 2015-12-20 rocky * test/Makefile, test/simple-source/comprehension/01-lc.py, test/test_pythonlib.py, uncompyle6/deparser.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner34.py, uncompyle6/walker.py: First list comprehensions from Python3. More test makefile hacking 2015-12-20 rocky * uncompyle6/disas.py: dissasemble_file output is needed for pytest 2015-12-20 rocky * Makefile, README.rst, test/Makefile, test/dis-compare.py, uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/walker.py: Go over makefiles to make "make check" work. walker, deparser: use zip_longest 2015-12-19 rocky * uncompyle6/deparser.py, uncompyle6/walker.py: 3.4: correct picking up parameter names on oa function call 2015-12-19 rocky * uncompyle6/deparser.py, uncompyle6/walker.py: Python3 compatiblity for getting precidence. n_mkfunc needs to key off of bytecode version, not running Python version. 2015-12-19 rocky * README.rst: rSt-style linking 2015-12-19 rocky * README.rst: Update what this is about 2015-12-19 rocky * test/simple-source/def/def0.py, test/simple-source/def/def1.py, uncompyle6/__init__.py, uncompyle6/deparser.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner34.py, uncompyle6/verify.py, uncompyle6/walker.py: Python 3.4: MAKE_FUNCTION starts to work. 2015-12-19 rocky * LICENSE, README.rst: Docs 2015-12-19 rocky * test/simple-source/operation_binary/multiply.py, test/simple-source/operation_binary/or.py, test/simple-source/operation_binary/power.py, test/simple-source/operation_binary/shift_left.py, test/simple-source/operation_binary/shift_right.py, test/simple-source/operation_binary/subscription.py, test/simple-source/operation_binary/subtract.py, test/simple-source/operation_binary/xor.py, test/simple-source/operation_comparison/equal.py, test/simple-source/operation_comparison/greater.py, test/simple-source/operation_comparison/greater_equal.py, test/simple-source/operation_comparison/less.py, test/simple-source/operation_comparison/less_equal.py, test/simple-source/operation_comparison/notequal.py, test/simple-source/operation_inplace/add.py, test/simple-source/operation_inplace/and.py, test/simple-source/operation_inplace/divide_floor.py, test/simple-source/operation_inplace/divide_true.py, test/simple-source/operation_inplace/modulo.py, test/simple-source/operation_inplace/multiply.py, test/simple-source/operation_inplace/or.py, test/simple-source/operation_inplace/power.py, test/simple-source/operation_inplace/shift_left.py, test/simple-source/operation_inplace/shift_right.py, test/simple-source/operation_inplace/subtract.py, test/simple-source/operation_inplace/xor.py, test/simple-source/operation_logic/and.py, test/simple-source/operation_logic/complex1.py, test/simple-source/operation_logic/complex2.py, test/simple-source/operation_logic/complex3.py, test/simple-source/precedence/left.py, test/simple-source/precedence/right.py, test/simple-source/precedence/structure.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner34.py: Python 3 bytecode handles opcodes with varargs (better). Decompiling assert works. Add more of the simple tests and their compiled bytecode. 2015-12-18 rocky * uncompyle6/disas.py, uncompyle6/opcodes/opcode_23.py: disas.py: track load_module API change opcode_23.py: make it more like opcode_27.py 2015-12-18 rocky * uncompyle6/__init__.py, uncompyle6/magics.py, uncompyle6/marsh.py, uncompyle6/verify.py: verify.py: Don't try to verify bytecode against compiled code if magics of running interpreter mismatch bytecode to be compared. load_module() now returns the magic found in the code object file. 2015-12-18 rocky * test/Makefile, uncompyle6/__init__.py, uncompyle6/marsh.py, uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py: marshal.py: Python2 marshal code shouldn't try to turn a code object into a string. parse3.py: handle both keyword and positional function calls. scanner34.py: Remove extra level of quoting in LOAD_CONST. Keyward handling now works cross Python 2/3. Some other spelling and doc fixes. 2015-12-18 rocky * README.rst, test/simple-source/call_arguments/positional.py, uncompyle6/disas.py, uncompyle6/parser.py, uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner27.py, uncompyle6/walker.py: Python3 postional arguments. Clean up code more along the lines of uncompyle3. 2015-12-18 rocky * test/simple-source/comprehension/forelse.py, uncompyle6/disas.py: disas.py: Do better for finding/turning a .py file into a .pyc file across supported versions of Python. Add for else list comprehension test 2015-12-17 rocky * uncompyle6/__init__.py: Restrict marshal.loads when magic is the same. This is more stringent than using the Python major/minor version 2015-12-17 rocky * test/Makefile, test/bytecode_2.5/README, test/bytecompile-tests, test/simple-source/misc/assert.py, test/simple-source/misc/assign.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Frank Ebersoll's grammar fix to make "assert isinstance(1, int)" work. 2015-12-17 rocky * test/ok_lib2.7/asyncore.py: Remove 2.7 lib testfile pending further resolution 2015-12-17 rocky * Makefile: correct makefile build targets 2015-12-17 rocky * Makefile, bin/pydisassemble, bin/uncompyle6, test/bytecompile-tests, test/dis-compare.py, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/verify.py: Python 2.6 compatability via ericfrederich's patch. DRY version-checking code 2015-12-17 rocky * .travis.yml, Makefile, circle.yml, pytest/test_disasm.py, pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right, pytest/testdata/test1.right, test/Makefile, test/bytecode_2.7/README, test/bytecode_3.4/README, test/ok_2.6/anydbm.py, test/ok_2.7/aifc.py, test/ok_2.7/antigravity.py, test/ok_2.7/anydbm.py, test/ok_2.7/asynchat.py, test/ok_2.7/asyncore.py, test/ok_2.7/atexit.py, test/ok_2.7/audiodev.py, test/ok_2.7/base64.py, test/ok_2.7/binhex.py, test/ok_2.7/bisect.py, test/ok_2.7/bsddb/__init__.py, test/ok_2.7/bsddb/db.py, test/ok_2.7/bsddb/dbobj.py, test/ok_2.7/bsddb/dbrecio.py, test/ok_2.7/bsddb/dbshelve.py, test/ok_2.7/bsddb/dbutils.py, test/ok_2.7/calendar.py, test/ok_2.7/cgitb.py, test/ok_2.7/chunk.py, test/ok_2.7/codeop.py, test/ok_2.7/colorsys.py, test/ok_2.7/commands.py, test/ok_2.7/compileall.py, test/ok_2.7/compiler/__init__.py, test/ok_2.7/compiler/ast.py, test/ok_2.7/compiler/consts.py, test/ok_2.7/compiler/future.py, test/ok_2.7/compiler/misc.py, test/ok_2.7/compiler/syntax.py, test/ok_2.7/ctypes/_endian.py, test/ok_2.7/ctypes/util.py, test/ok_2.7/ctypes/wintypes.py, test/ok_2.7/curses/__init__.py, test/ok_2.7/curses/ascii.py, test/ok_2.7/curses/has_key.py, test/ok_2.7/curses/panel.py, test/ok_2.7/curses/wrapper.py, test/ok_2.7/dircache.py, test/ok_2.7/dis.py, test/ok_lib2.6/README, test/ok_lib2.6/anydbm.py, test/ok_lib2.7/README, test/ok_lib2.7/aifc.py, test/ok_lib2.7/antigravity.py, test/ok_lib2.7/anydbm.py, test/ok_lib2.7/asynchat.py, test/ok_lib2.7/asyncore.py, test/ok_lib2.7/atexit.py, test/ok_lib2.7/audiodev.py, test/ok_lib2.7/base64.py, test/ok_lib2.7/binhex.py, test/ok_lib2.7/bisect.py, test/ok_lib2.7/calendar.py, test/ok_lib2.7/cgitb.py, test/ok_lib2.7/chunk.py, test/ok_lib2.7/codeop.py, test/ok_lib2.7/colorsys.py, test/ok_lib2.7/commands.py, test/ok_lib2.7/compileall.py, test/simple-source/operation_binary/add.py, test/simple-source/operation_binary/and.py, test/simple-source/operation_binary/divide_floor.py, test/simple-source/operation_binary/divide_true.py, test/simple-source/operation_binary/modulo.py, test/test_pythonlib.py, uncompyle6/__init__.py, uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/spark.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner34.py, uncompyle6/verify.py, uncompyle6/walker.py: Python3: remove "return None" at end of main for uncompyle. Fix up verify for Python3. First automated Python 3.4 tests via "makecheck-3.4" in test directory. 2015-12-17 rocky * test/bytecompile-tests, test/simple-source/branching/if.py, test/simple-source/branching/ifelse.py, test/simple-source/looping/for.py, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/parsers/spark.py: Add spark grammar debugging. Start to comment grammer construct covered by simple tests. 2015-12-17 rocky * uncompyle6/opcodes/opcode_34.py, uncompyle6/parsers/parse3.py: Python 3.4 correct grammar for some looping constructs 2015-12-17 rocky * test/bytecompile-tests, test/compile_tests, test/simple-source/README, test/simple-source/branching/if.py, test/simple-source/branching/ifelse.py, test/simple-source/call_arguments/keyword.py, test/simple-source/call_arguments/positional.py, test/simple-source/looping/for.py, test/simple-source/looping/while.py, test/source_3.4/branching/if.py, test/source_3.4/branching/ifelse.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py, uncompyle6/scanners/scanner34.py: Python 3.4 if ifelse decompyling now works. 2015-12-16 rocky * test/dis-compare.py, test/simple-uncompyle-code-test.py, uncompyle6/__init__.py, uncompyle6/deparser.py, uncompyle6/parser.py, uncompyle6/parsers/__init__.py, uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, uncompyle6/parsers/spark.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py, uncompyle6/spark.py, uncompyle6/walker.py: Supoer multiple parsers, specifically for Python2 and Python3. In the process some OO cleanup and some global variable hacks removed. 2015-12-16 rocky * uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/parser.py, uncompyle6/scanner.py, uncompyle6/walker.py: Add LICENSE. Add demo programs and DRY code a little 2015-12-16 rocky * uncompyle6/opcodes/opcode_34.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner34.py: On Python3.4 decompiling Python 3.4 instructions, use its built-in disassembler routines. In contrast to what was here, they most likely work! 2015-12-16 rocky * Makefile, pytest/testdata/.gitignore, test/Makefile, test/compile_tests, uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/marsh.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/verify.py: Tidy a little bit 2015-12-16 rocky * .gitignore, pytest/.gitignore, pytest/testdata/test1.right, pytest/testdata/test_import_25.right, test/compile_tests, test/dis-compare.py, test/simple-uncompyle-code-test.py, test/source_3.4/branching/if.py, test/source_3.4/branching/ifelse.py, test/uncompyle-code.py, uncompyle6/.gitignore, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py: Start 3.4 more stringent disassembly testing. Disassembly format has changed slightly. misc small bugs. 2015-12-15 rocky * : 2.7 pyc for disasm test 2015-12-15 rocky * Makefile, circle.yml, pytest/Makefile, pytest/test_disasm.py, pytest/testdata/test1.right, pytest/testdata/test_import_25.right, test-requirements.txt, test/Makefile, test/test_pythonlib.py, uncompyle6/marsh.py, uncompyle6/verify.py: Add some disassemble tests using pytest. 2015-12-15 rocky * test/.gitignore, uncompyle6/__init__.py: Less ignore. Not sure what's up with not finding marsh in python3 2015-12-15 rocky * test/.gitignore, uncompyle6/disasm/__init__.py, uncompyle6/disasm/dis_25.py: disasm is unused code. More ignore. 2015-12-15 rocky * .gitignore, __pkginfo__.py, bin/pydisassemble, bin/pydissassemble, test/test_pythonlib.py, uncompyle6/__init__.py, uncompyle6/deparser.py, uncompyle6/disas.py, uncompyle6/magics.py, uncompyle6/marsh.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py: Split out marhsal and disassemble code and spell disassemble correctly. Fix some lint issues 2015-12-15 R. Bernstein * README.rst: Update README.rst 2015-12-15 R. Bernstein * README.rst: Update README.rst 2015-12-15 rocky * PKG-INFO, README.rst, bin/pydissassemble, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py: README.rst: note addition of pydisassemble Remove duplicate disassembly printing from scanners and put common code in caller(s). Show source-code line numbers in disassembly output and fix alignment of byte offsets. disas.py: workaround Python 2/3 different layouts before we get to bytecodes in a code object. 2015-12-14 rocky * __pkginfo__.py: Disable installing pydisassemble for now pending understanding what's up with CI 2015-12-14 rocky * __pkginfo__.py, setup.py: Package scripts correctly now 2015-12-14 rocky * MANIFEST.in, __pkginfo__.py, bin/pydissassemble, bin/uncompyle6, scripts/pydissassemble, scripts/uncompyle6, setup.py: scripts->bin. Add pydisassemble to list of scripts to install 2015-12-14 rocky * Makefile, README.rst, scripts/pydissassemble, scripts/uncompyle6, test/Makefile, uncompyle6/__init__.py, uncompyle6/verify.py: Add a standalone disassemble utility. __init__.py: Shun using 0, 1 for booleans 2015-12-14 rocky * uncompyle6/verify.py: Typos 2015-12-14 rocky * uncompyle6/__init__.py, uncompyle6/deparser.py, uncompyle6/disasm/__init__.py, uncompyle6/disasm/dis_25.py, uncompyle6/opcodes/opcode_32.py, uncompyle6/scanner.py, uncompyle6/scanners/scanner32.py, uncompyle6/verify.py: Start to move deparser from python-deparse here. Start Python 3.2 tolerance 2015-12-14 rocky * .travis.yml: Clean up travis file now that I know what works 2015-12-14 rocky * .travis.yml: Travis: try install a different way 2015-12-14 rocky * .travis.yml, circle.yml: Do setup install on CI boxes 2015-12-14 rocky * circle.yml: A correct way to set a circleci envvar? 2015-12-14 rocky * circle.yml: Add --compile to cicleci build 2015-12-14 rocky * circle.yml: Try circleci 2015-12-14 rocky * uncompyle6/dparser.py, uncompyle6/parser.py, uncompyle6/walker.py: uncompyle6/dparser -> uncompyle6/parser 2015-12-14 rocky * uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/magics.py, uncompyle6/scanners/scanner34.py: Closer to being able to handle Python 3.4 bytecode. Loading of Python Python bytecode now works. magics from 3.3 to Python 3.4 has been added. Some Python 3.4 scanner issues have been fixed. 2015-12-14 rocky * Makefile, test/Makefile, test/base-tests/compile_tests, test/base-tests/python2.7/test_applyEquiv.py, test/base-tests/python2.7/test_applyEquiv.pyc_dis_unverified, test/base-tests/python2.7/test_augmentedAssign.py, test/base-tests/python2.7/test_augmentedAssign.pyc_dis_unverified, test/base-tests/python2.7/test_class.py, test/base-tests/python2.7/test_class.pyc_dis_unverified, test/base-tests/python2.7/test_del.py, test/base-tests/python2.7/test_divide_future.py, test/base-tests/python2.7/test_divide_future.pyc_dis_unverified, test/base-tests/python2.7/test_divide_no_future.py, test/base-tests/python2.7/test_docstring.py, test/base-tests/python2.7/test_empty.py, test/base-tests/python2.7/test_exceptions.py, test/base-tests/python2.7/test_exceptions.pyc_dis_unverified, test/base-tests/python2.7/test_exec.py, test/base-tests/python2.7/test_expressions.py, test/base-tests/python2.7/test_extendedImport.py, test/base-tests/python2.7/test_extendedPrint.py, test/base-tests/python2.7/test_extendedarg.py-notyet, test/base-tests/python2.7/test_functions.py, test/base-tests/python2.7/test_global.py, test/base-tests/python2.7/test_globals.py, test/base-tests/python2.7/test_import.py, test/base-tests/python2.7/test_import_as.py, test/base-tests/python2.7/test_integers.py, test/base-tests/python2.7/test_iterators.py, test/base-tests/python2.7/test_lambda.py, test/base-tests/python2.7/test_listComprehensions.py, test/base-tests/python2.7/test_loops.py, test/base-tests/python2.7/test_loops2.py, test/base-tests/python2.7/test_mine.py, test/base-tests/python2.7/test_misc.py, test/base-tests/python2.7/test_nested_elif.py, test/base-tests/python2.7/test_nested_scopes.py, test/base-tests/python2.7/test_prettyprint.py, test/base-tests/python2.7/test_print.py, test/base-tests/python2.7/test_print_to.py, test/base-tests/python2.7/test_single_stmt.py, test/base-tests/python2.7/test_slices.py, test/base-tests/python2.7/test_tuple_params.py-notyet, test/base-tests/python2.7/test_tuples.py-notyet, test/base-tests/python2.7/test_yield.py, test/base_tests/compile_tests, test/base_tests/python2.7/test_applyEquiv.py, test/base_tests/python2.7/test_augmentedAssign.py, test/base_tests/python2.7/test_class.py, test/base_tests/python2.7/test_del.py, test/base_tests/python2.7/test_divide_future.py, test/base_tests/python2.7/test_divide_no_future.py, test/base_tests/python2.7/test_docstring.py, test/base_tests/python2.7/test_empty.py, test/base_tests/python2.7/test_exceptions.py, test/base_tests/python2.7/test_exec.py, test/base_tests/python2.7/test_expressions.py, test/base_tests/python2.7/test_extendedImport.py, test/base_tests/python2.7/test_extendedPrint.py, test/base_tests/python2.7/test_extendedarg.py-notyet, test/base_tests/python2.7/test_functions.py, test/base_tests/python2.7/test_global.py, test/base_tests/python2.7/test_globals.py, test/base_tests/python2.7/test_import.py, test/base_tests/python2.7/test_import_as.py, test/base_tests/python2.7/test_integers.py, test/base_tests/python2.7/test_iterators.py, test/base_tests/python2.7/test_lambda.py, test/base_tests/python2.7/test_listComprehensions.py, test/base_tests/python2.7/test_loops.py, test/base_tests/python2.7/test_loops2.py, test/base_tests/python2.7/test_mine.py, test/base_tests/python2.7/test_misc.py, test/base_tests/python2.7/test_nested_elif.py, test/base_tests/python2.7/test_nested_scopes.py, test/base_tests/python2.7/test_prettyprint.py, test/base_tests/python2.7/test_print.py, test/base_tests/python2.7/test_print_to.py, test/base_tests/python2.7/test_single_stmt.py, test/base_tests/python2.7/test_slices.py, test/base_tests/python2.7/test_tuple_params.py-notyet, test/base_tests/python2.7/test_tuples.py-notyet, test/base_tests/python2.7/test_yield.py, test/base_tests/python3.4/__init__.py, test/test_pythonlib.py, uncompyle6/__init__.py, uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/opcodes/opcode_34.py, uncompyle6/scanner.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/scanner27.py, uncompyle6/scanner34.py, uncompyle6/scanners/__init__.py, uncompyle6/scanners/scanner25.py, uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner34.py, uncompyle6/verify.py: Move scanners in its own directory. Dir base-tests -> base_tests so we can import from that. 2015-12-14 rocky * scripts/uncompyle6, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/scanner.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/scanner27.py: Python3 compatibility: (disas, scanner*) Reduce useless verbiage in status messages and DRY code a little; __init__, uncompyle6 2015-12-13 rocky * test/Makefile, test/test_pythonlib.py: Make sure we pass return code back. 2015-12-13 rocky * uncompyle6/__init__.py: Add Python version and tidy up stats output: don't show verify stats if we didn't verify! 2015-12-13 rocky * test/test_pythonlib.py: Correct testing python version check 2015-12-13 rocky * .travis.yml: Force 2.7 bytecode compilation on Travis 2015-12-13 rocky * .travis.yml: Try Travis 2015-12-13 rocky * test/Makefile, test/ok_2.7/aifc.pyc_dis, test/ok_2.7/antigravity.pyc_dis, test/ok_2.7/anydbm.pyc_dis, test/ok_2.7/asynchat.pyc_dis, test/ok_2.7/asyncore.pyc_dis, test/ok_2.7/atexit.pyc_dis, test/ok_2.7/audiodev.pyc_dis, test/test_pythonlib.py, uncompyle6/walker.py: test_pythonlib: Fix bug in traversing directores walker.py: imports; Add test Python2.5 bytecode - it works! Makefile: remove temporary directories and _dis files which were added by mistake 2015-12-13 rocky * MANIFEST.in, test/test_pythonlib.py, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/dparser.py, uncompyle6/magics.py, uncompyle6/verify.py, uncompyle6/walker.py: need disas.py for cross version Python compiling fixup MANIFEST.in pythonlib.py: store expected python version and don't compile if it mismatches. Work files now go in temp directory. Start masrhal load in Python for Python3. 2015-12-13 rocky * test/Makefile, test/base-tests/compile_tests, test/base-tests/python2.7/test_applyEquiv.py, test/base-tests/python2.7/test_applyEquiv.pyc_dis_unverified, test/base-tests/python2.7/test_augmentedAssign.py, test/base-tests/python2.7/test_augmentedAssign.pyc_dis_unverified, test/base-tests/python2.7/test_class.py, test/base-tests/python2.7/test_class.pyc_dis_unverified, test/base-tests/python2.7/test_del.py, test/base-tests/python2.7/test_divide_future.py, test/base-tests/python2.7/test_divide_future.pyc_dis_unverified, test/base-tests/python2.7/test_divide_no_future.py, test/base-tests/python2.7/test_docstring.py, test/base-tests/python2.7/test_empty.py, test/base-tests/python2.7/test_exceptions.py, test/base-tests/python2.7/test_exceptions.pyc_dis_unverified, test/base-tests/python2.7/test_exec.py, test/base-tests/python2.7/test_expressions.py, test/base-tests/python2.7/test_extendedImport.py, test/base-tests/python2.7/test_extendedPrint.py, test/base-tests/python2.7/test_extendedarg.py-notyet, test/base-tests/python2.7/test_functions.py, test/base-tests/python2.7/test_global.py, test/base-tests/python2.7/test_globals.py, test/base-tests/python2.7/test_import.py, test/base-tests/python2.7/test_import_as.py, test/base-tests/python2.7/test_integers.py, test/base-tests/python2.7/test_iterators.py, test/base-tests/python2.7/test_lambda.py, test/base-tests/python2.7/test_listComprehensions.py, test/base-tests/python2.7/test_loops.py, test/base-tests/python2.7/test_loops2.py, test/base-tests/python2.7/test_mine.py, test/base-tests/python2.7/test_misc.py, test/base-tests/python2.7/test_nested_elif.py, test/base-tests/python2.7/test_nested_scopes.py, test/base-tests/python2.7/test_prettyprint.py, test/base-tests/python2.7/test_print.py, test/base-tests/python2.7/test_print_to.py, test/base-tests/python2.7/test_single_stmt.py, test/base-tests/python2.7/test_slices.py, test/base-tests/python2.7/test_tuple_params.py-notyet, test/base-tests/python2.7/test_tuples.py-notyet, test/base-tests/python2.7/test_yield.py, test/base-tests/python2/compile_tests, test/base-tests/python2/test_applyEquiv.py, test/base-tests/python2/test_augmentedAssign.py, test/base-tests/python2/test_class.py, test/base-tests/python2/test_del.py, test/base-tests/python2/test_divide_future.py, test/base-tests/python2/test_divide_no_future.py, test/base-tests/python2/test_docstring.py, test/base-tests/python2/test_empty.py, test/base-tests/python2/test_exceptions.py, test/base-tests/python2/test_exec.py, test/base-tests/python2/test_expressions.py, test/base-tests/python2/test_extendedImport.py, test/base-tests/python2/test_extendedPrint.py, test/base-tests/python2/test_extendedarg.py-notyet, test/base-tests/python2/test_functions.py, test/base-tests/python2/test_global.py, test/base-tests/python2/test_globals.py, test/base-tests/python2/test_import.py, test/base-tests/python2/test_import_as.py, test/base-tests/python2/test_integers.py, test/base-tests/python2/test_iterators.py, test/base-tests/python2/test_lambda.py, test/base-tests/python2/test_listComprehensions.py, test/base-tests/python2/test_loops.py, test/base-tests/python2/test_loops2.py, test/base-tests/python2/test_mine.py, test/base-tests/python2/test_misc.py, test/base-tests/python2/test_nested_elif.py, test/base-tests/python2/test_nested_scopes.py, test/base-tests/python2/test_prettyprint.py, test/base-tests/python2/test_print.py, test/base-tests/python2/test_print_to.py, test/base-tests/python2/test_single_stmt.py, test/base-tests/python2/test_slices.py, test/base-tests/python2/test_tuple_params.py-notyet, test/base-tests/python2/test_tuples.py-notyet, test/base-tests/python2/test_yield.py, test/ok_2.6/anydbm.py, test/test_pythonlib.py: add a single Python 2.6 source/code test 2015-12-13 rocky * uncompyle6/scanner.py, uncompyle6/scanner34.py: Start off with Anton Vorobyov's (DarkFenX) Python 3 scanner. 2015-12-13 rocky * MANIFEST, MANIFEST.in, PKG-INFO, README.rst, uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/spark.py, uncompyle6/verify.py: Correct MANIFEST->MANIFEST.in more lint 2015-12-13 R. Bernstein * README.rst: Update README.rst 2015-12-13 R. Bernstein * README.rst: Update README.rst 2015-12-13 rocky * scripts/uncompyle6, uncompyle6/#spark.py#, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/scanner34.py, uncompyle6/spark.py, uncompyle6/verify.py: Make uncompyle6 run on Python3.4 and Python 2.7 We don't need our own disassembler. Python's will do fine 2015-12-13 R. Bernstein * README.rst: Update README.rst 2015-12-13 R. Bernstein * README.rst: rSt formatting 2015-12-13 rocky * .gitignore, Makefile, README.rst, test/Makefile, test/base-tests/python2/compile_tests, test/base-tests/python2/test_applyEquiv.py, test/base-tests/python2/test_augmentedAssign.py, test/base-tests/python2/test_class.py, test/base-tests/python2/test_del.py, test/base-tests/python2/test_divide_future.py, test/base-tests/python2/test_divide_no_future.py, test/base-tests/python2/test_docstring.py, test/base-tests/python2/test_empty.py, test/base-tests/python2/test_exceptions.py, test/base-tests/python2/test_exec.py, test/base-tests/python2/test_expressions.py, test/base-tests/python2/test_extendedImport.py, test/base-tests/python2/test_extendedPrint.py, test/base-tests/python2/test_extendedarg.py-notyet, test/base-tests/python2/test_functions.py, test/base-tests/python2/test_global.py, test/base-tests/python2/test_globals.py, test/base-tests/python2/test_import.py, test/base-tests/python2/test_import_as.py, test/base-tests/python2/test_integers.py, test/base-tests/python2/test_iterators.py, test/base-tests/python2/test_lambda.py, test/base-tests/python2/test_listComprehensions.py, test/base-tests/python2/test_loops.py, test/base-tests/python2/test_loops2.py, test/base-tests/python2/test_mine.py, test/base-tests/python2/test_misc.py, test/base-tests/python2/test_nested_elif.py, test/base-tests/python2/test_nested_scopes.py, test/base-tests/python2/test_prettyprint.py, test/base-tests/python2/test_print.py, test/base-tests/python2/test_print_to.py, test/base-tests/python2/test_single_stmt.py, test/base-tests/python2/test_slices.py, test/base-tests/python2/test_tuple_params.py-notyet, test/base-tests/python2/test_tuples.py-notyet, test/base-tests/python2/test_yield.py, test/compile_tests, test/ok_2.7/aifc.py, test/ok_2.7/aifc.pyc_dis, test/ok_2.7/antigravity.py, test/ok_2.7/antigravity.pyc_dis, test/ok_2.7/anydbm.py, test/ok_2.7/anydbm.pyc_dis, test/ok_2.7/asynchat.py, test/ok_2.7/asynchat.pyc_dis, test/ok_2.7/asyncore.py, test/ok_2.7/asyncore.pyc_dis, test/ok_2.7/atexit.py, test/ok_2.7/atexit.pyc_dis, test/ok_2.7/audiodev.py, test/ok_2.7/audiodev.pyc_dis, test/ok_2.7/base64.py, test/ok_2.7/binhex.py, test/ok_2.7/bisect.py, test/ok_2.7/bsddb/__init__.py, test/ok_2.7/bsddb/db.py, test/ok_2.7/bsddb/dbobj.py, test/ok_2.7/bsddb/dbrecio.py, test/ok_2.7/bsddb/dbshelve.py, test/ok_2.7/bsddb/dbutils.py, test/ok_2.7/calendar.py, test/ok_2.7/cgitb.py, test/ok_2.7/chunk.py, test/ok_2.7/codeop.py, test/ok_2.7/colorsys.py, test/ok_2.7/commands.py, test/ok_2.7/compileall.py, test/ok_2.7/compiler/__init__.py, test/ok_2.7/compiler/ast.py, test/ok_2.7/compiler/consts.py, test/ok_2.7/compiler/future.py, test/ok_2.7/compiler/misc.py, test/ok_2.7/compiler/syntax.py, test/ok_2.7/ctypes/_endian.py, test/ok_2.7/ctypes/util.py, test/ok_2.7/ctypes/wintypes.py, test/ok_2.7/curses/__init__.py, test/ok_2.7/curses/ascii.py, test/ok_2.7/curses/has_key.py, test/ok_2.7/curses/panel.py, test/ok_2.7/curses/wrapper.py, test/ok_2.7/dircache.py, test/ok_2.7/dis.py, test/test_applyEquiv.py, test/test_augmentedAssign.py, test/test_class.py, test/test_del.py, test/test_divide_future.py, test/test_divide_no_future.py, test/test_docstring.py, test/test_empty.py, test/test_exceptions.py, test/test_exec.py, test/test_expressions.py, test/test_extendedImport.py, test/test_extendedPrint.py, test/test_extendedarg.py, test/test_functions.py, test/test_global.py, test/test_globals.py, test/test_import.py, test/test_import_as.py, test/test_integers.py, test/test_iterators.py, test/test_lambda.py, test/test_listComprehensions.py, test/test_loops.py, test/test_loops2.py, test/test_mine.py, test/test_misc.py, test/test_nested_elif.py, test/test_nested_scopes.py, test/test_one, test/test_prettyprint.py, test/test_print.py, test/test_print_to.py, test/test_pythonlib.py, test/test_single_stmt.py, test/test_slices.py, test/test_tuple_params.py, test/test_tuples.py, test/test_yield.py, test/uncompyle-code.py, test_one, test_pythonlib.py, uncompyle-code.py, uncompyle6/#spark.py#, uncompyle6/__init__.py, uncompyle6/verify.py: Add tests and start a more turnkey testing system. 2015-12-12 rocky * tox.ini, uncompyle-code.py, uncompyle6/dparser.py, uncompyle6/scanner25.py, uncompyle6/scanner27.py, uncompyle6/scanner34.py, uncompyle6/spark.py, uncompyle6/walker.py: Minimal disassemble, ast compile and deparse work on Python 3. Some linting 2015-12-12 rocky * uncompyle6/dparser.py, uncompyle6/parser.py, uncompyle6/walker.py: parser -> dparser so as not to conflict with python3's parser. 2015-12-12 rocky * uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/scanner.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/scanner27.py, uncompyle6/verify.py, uncompyle6/walker.py: More Python3 compatability. Remove duplicate disassembly code and get it from Python's standard library instead. 2015-12-12 rocky * uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/parser.py, uncompyle6/scanner.py, uncompyle6/walker.py: Python3 compatibility 2015-12-11 rocky * uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/walker.py: python3 compatibiity and remove some flake8 warnings. 2015-12-11 rocky * Makefile, uncompyle6/Makefile, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/parser.py, uncompyle6/scanner26.py, uncompyle6/scanner27.py, uncompyle6/scanner34.py, uncompyle6/walker.py: Lint stuff 2015-12-11 rocky * .gitignore, __pkginfo__.py, setup.py, test/compile_tests, test_pythonlib.py, uncompyle-code.py, uncompyle6/__init__.py, uncompyle6/magics.py, uncompyle6/opcode/__init__.py, uncompyle6/opcode/opcode_23.py, uncompyle6/opcode/opcode_24.py, uncompyle6/opcode/opcode_25.py, uncompyle6/opcode/opcode_26.py, uncompyle6/opcode/opcode_27.py, uncompyle6/opcodes/__init__.py, uncompyle6/opcodes/opcode_23.py, uncompyle6/opcodes/opcode_24.py, uncompyle6/opcodes/opcode_25.py, uncompyle6/opcodes/opcode_26.py, uncompyle6/opcodes/opcode_27.py, uncompyle6/parser.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/scanner27.py, uncompyle6/spark.py: More python2 -> python3 compatibility 2015-12-11 rocky * .travis.yml, Makefile, scripts/uncompyle2, scripts/uncompyle6, setup.py, test_one, tox.ini, uncompyle-code.py, uncompyle2/__init__.py, uncompyle2/disas.py, uncompyle2/magics.py, uncompyle2/opcode/__init__.py, uncompyle2/opcode/opcode_23.py, uncompyle2/opcode/opcode_24.py, uncompyle2/opcode/opcode_25.py, uncompyle2/opcode/opcode_26.py, uncompyle2/opcode/opcode_27.py, uncompyle2/parser.py, uncompyle2/scanner.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py, uncompyle2/spark.py, uncompyle2/verify.py, uncompyle2/walker.py, uncompyle6/__init__.py, uncompyle6/disas.py, uncompyle6/magics.py, uncompyle6/opcode/__init__.py, uncompyle6/opcode/opcode_23.py, uncompyle6/opcode/opcode_24.py, uncompyle6/opcode/opcode_25.py, uncompyle6/opcode/opcode_26.py, uncompyle6/opcode/opcode_27.py, uncompyle6/parser.py, uncompyle6/scanner25.py, uncompyle6/scanner26.py, uncompyle6/scanner27.py, uncompyle6/spark.py, uncompyle6/verify.py, uncompyle6/walker.py: Start process of making python3 compatible 2015-11-25 rocky * .gitignore, uncompyle-code.py, uncompyle2/walker.py: First steps to find-offset-based routine 2015-06-25 Mysterie * : Merge pull request #27 from kernelsmith/master call python via /usr/bin/env python to make script more portable 2014-11-26 Mysterie * : Merge pull request #23 from jbremer/master support hardcoded 64-bit integers (sorry, so late lol) 2014-02-12 root * uncompyle2/scanner25.py, uncompyle2/scanner26.py: Fix Raise TODO + NOP opcode 2013-12-30 root * README.rst: MAJ readme 2013-07-19 root * uncompyle2/disas.py: marshal unpack cast bug 2013-07-18 root * uncompyle2/__init__.py, uncompyle2/disas.py: Fix marshal UTF8 bug 2013-07-16 root * uncompyle2/__init__.py, uncompyle2/disas.py, uncompyle2/magics.py, uncompyle2/scanner27.py, uncompyle2/walker.py: marshal disassembly improvement 2013-06-20 Mysterie * : Merge pull request #13 from ralph-moeritz/master Minor script cleanup 2013-04-25 root * uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py, uncompyle2/walker.py: Improvement from wibiti 2013-03-05 root * README.rst, uncompyle2/parser.py, uncompyle2/scanner.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py, uncompyle2/walker.py: Grammar improvement 2013-03-05 Mysterie * : Merge pull request #9 from SuperVirus/master Fix for issue #6 2013-02-20 Mysterie * : Merge pull request #8 from skyfion/master fix error 2013-02-13 skyfion * uncompyle2/__init__.py: correct work if list in def uncompyle_file 2013-02-09 root * test/test_functions.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py: Fix for RETURN_END_IF bug 2013-01-10 Mysterie * uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py: Patch bug on LOAD_CLOSURE 2012-12-14 Mysterie * uncompyle2/opcode/opcode_25.py, uncompyle2/opcode/opcode_26.py, uncompyle2/opcode/opcode_27.py, uncompyle2/scanner.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py: modification of LIST_APPEND opcode handling 2012-11-25 Mysterie * : Merge pull request #3 from htgoebel/mysterie Update email and URLs for original author. 2012-11-16 Hartmut Goebel * build/scripts-2.7/uncompyle2, uncompyle2.py, uncompyle2/__init__.py, uncompyle2/parser.py, uncompyle2/scanner.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py, uncompyle2/verify.py, uncompyle2/walker.py: Updating original authors email-address. 2012-10-26 Mysterie * README, README.rst: README patch 2012-10-26 Mysterie * MANIFEST, MANIFEST.in, README, test_pythonlib.py, uncompyle2/disas.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py: Patch for while loop + manifest + bug in test_pythonlib.py 2012-10-11 Mysterie * scripts/uncompyle2, setup.py, test/test_loops.py, test/test_tuples.py, test_one, test_pythonlib, test_pythonlib.py, uncompyle2.py, uncompyle2/Parser.py, uncompyle2/Scanner.py, uncompyle2/Scanner25.py, uncompyle2/Scanner26.py, uncompyle2/Scanner27.py, uncompyle2/Walker.py, uncompyle2/__init__.py, uncompyle2/disas.py, uncompyle2/opcode/opcode_25.py, uncompyle2/opcode/opcode_26.py, uncompyle2/opcode/opcode_27.py, uncompyle2/parser.py, uncompyle2/scanner.py, uncompyle2/scanner25.py, uncompyle2/scanner26.py, uncompyle2/scanner27.py, uncompyle2/spark.py, uncompyle2/verify.py, uncompyle2/walker.py: Cleaning code & patch 2012-09-22 Mysterie * test/test_loops.py, uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: Improvement of loop handling 2012-09-22 Mysterie * uncompyle2/Scanner26.py: Little modification in Scanner26 2012-09-21 Mysterie * test/compile_tests, test/test_applyEquiv.py, test/test_augmentedAssign.py, test/test_class.py, test/test_del.py, test/test_docstring.py, test/test_exec.py, test/test_expressions.py, test/test_extendedImport.py, test/test_extendedPrint.py, test/test_extendedarg.py, test/test_functions.py, test/test_global.py, test/test_globals.py, test/test_import.py, test/test_import_as.py, test/test_integers.py, test/test_lambda.py, test/test_listComprehensions.py, test/test_loops.py, test/test_loops2.py, test/test_misc.py, test/test_nested_elif.py, test/test_nested_scopes.py, test/test_prettyprint.py, test/test_print.py, test/test_print_to.py, test/test_slices.py, test/test_tuple_params.py, test/test_tuples.py, uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: Patch for conditional tuple 2012-09-20 Mysterie * uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: Optimisation for bytecode 2.5/2.6 restructuration 2012-09-20 Mysterie * uncompyle2/Parser.py, uncompyle2/Scanner25.py, uncompyle2/Scanner26.py, uncompyle2/Scanner27.py, uncompyle2/Walker.py: Update from master branch uncompyle2 2012-06-14 Mysterie * uncompyle2/Scanner25.py, uncompyle2/Scanner26.py, uncompyle2/__init__.py: fix for the with statement 2012-06-12 Mysterie * uncompyle2/Scanner25.py, uncompyle2/Scanner26.py: fix module & 2.6 2012-06-12 Mysterie * uncompyle2/Scanner.py: fix module & 2.6 2012-06-05 Mysterie * build/lib.linux-i686-2.7/uncompyle2/Parser.py, build/lib.linux-i686-2.7/uncompyle2/Scanner.py, build/lib.linux-i686-2.7/uncompyle2/Scanner25.py, build/lib.linux-i686-2.7/uncompyle2/Scanner26.py, build/lib.linux-i686-2.7/uncompyle2/Scanner27.py, build/lib.linux-i686-2.7/uncompyle2/Walker.py, build/lib.linux-i686-2.7/uncompyle2/__init__.py, build/lib.linux-i686-2.7/uncompyle2/disas.py, build/lib.linux-i686-2.7/uncompyle2/magics.py, build/lib.linux-i686-2.7/uncompyle2/opcode/__init__.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_23.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_24.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_25.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_26.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_27.py, build/lib.linux-i686-2.7/uncompyle2/spark.py, build/lib.linux-i686-2.7/uncompyle2/verify.py: creating clean .py 2012-06-05 Mysterie * build/lib.linux-i686-2.7/uncompyle2/Parser.py, build/lib.linux-i686-2.7/uncompyle2/Scanner25.py, build/lib.linux-i686-2.7/uncompyle2/Scanner26.py, build/lib.linux-i686-2.7/uncompyle2/Scanner27.py, build/lib.linux-i686-2.7/uncompyle2/Walker.py, build/lib.linux-i686-2.7/uncompyle2/__init__.py, build/lib.linux-i686-2.7/uncompyle2/disas.py, build/lib.linux-i686-2.7/uncompyle2/magics.py, build/lib.linux-i686-2.7/uncompyle2/opcode/__init__.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_23.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_24.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_25.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_26.py, build/lib.linux-i686-2.7/uncompyle2/opcode/opcode_27.py, build/lib.linux-i686-2.7/uncompyle2/spark.py, build/lib.linux-i686-2.7/uncompyle2/verify.py, uncompyle2/__init__.py: creating clean .py 2012-06-05 Mysterie * PKG-INFO, setup.cfg, setup.py: MAJ owner/information 2012-06-05 Mysterie * uncompyle2/Scanner.py: delete old file 2012-06-05 Mysterie * first commit