diff --git a/.gitignore b/.gitignore index 856518e3..c51eeaab 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ build /.venv* /.idea /.hypothesis +./ChangeLog diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index b9dae641..00000000 --- a/ChangeLog +++ /dev/null @@ -1,7366 +0,0 @@ -2017-11-26 rocky - - * uncompyle6/version.py: Get ready for release 2.14.0 - -2017-11-26 rocky - - * uncompyle6/parsers/parse2.py: Back of build_set/build_list - separation - -2017-11-26 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, - uncompyle6/semantics/pysource.py: Isolate build_set from build_list - in Python 2... More work is needed. Not done in Python 3 yet - -2017-11-26 rocky - - * test/stdlib/runtests.sh: stdlib/runtess.sh python version - detection - -2017-11-26 rocky - - * pytest/test_grammar.py, test/simple_source/bug22/01_kv.py, - test/simple_source/bug32/05_while_true_break.py: Work around grammar - remove rule bug... And reinstate source to a current 3.3 bug (which we don't detect). - But at least it is noted for future work. - -2017-11-26 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse22.py, - uncompyle6/parsers/parse24.py, uncompyle6/parsers/parse25.py, - uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, - uncompyle6/parsers/parse32.py: Isolaate kv, kv2 and kv3 better - -2017-11-26 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse22.py: Localize kv - -2017-11-26 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse26.py, - uncompyle6/parsers/parse32.py: remove comp_ifnot - -2017-11-25 rocky - - * : Another test - -2017-11-25 rocky - - * test/Makefile, test/simple_source/bug27+/05_for_try_except.py, - uncompyle6/parsers/parse27.py: 2.7 control-flow bug: except/pass in - loop - -2017-11-25 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, - uncompyle6/semantics/pysource.py: back off of build_slice{2,3} - ->slice{2,3} There is another slice rule that interferes with this. - -2017-11-25 rocky - - * test/simple_source/slice/02_slice.py, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, - uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, - uncompyle6/semantics/pysource.py: localize 2 and 3 argument - BUILD_SLICE... Nontermninal name matches AST anme now. Add test. - -2017-11-25 rocky - - * test/Makefile: Improve grammar-cover targets - -2017-11-25 rocky - - * pytest/test_grammar.py, test/Makefile, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py: remove unpack_list rule and ... tidy things a bit more - -2017-11-24 rocky - - * uncompyle6/semantics/pysource.py: Fix bug in 2.x with decorator of - old-style class - -2017-11-24 rocky - - * test/simple_source/expression/01_float.py, - uncompyle6/semantics/pysource.py: Handle inf, +inf, -nan, and nan - constants - -2017-11-24 rocky - - * test/simple_source/expression/03_tuple_assign.py, - test/simple_source/stmts/04_withas.py, - uncompyle6/semantics/consts.py, uncompyle6/semantics/pysource.py: A - couple more bugs found running 2.7 stdlib tests - -2017-11-24 rocky - - * : One more (lambda) test - -2017-11-24 rocky - - * test/simple_source/expression/10_lambda.py, - uncompyle6/semantics/make_function.py: Fix bug where lambda has a - yield in it - -2017-11-24 rocky - - * uncompyle6/parser.py, uncompyle6/semantics/consts.py: cmp -> - compare ... to better match the Python AST name Compare. This forces us to - change compare -> compare_single Relates to Issue #29 - -2017-11-24 rocky - - * test/simple_source/bug33/01_triple_compare.py, - uncompyle6/parser.py, uncompyle6/parsers/parse2.py, - uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py, - uncompyle6/semantics/consts.py: cmp_list -> compare_chained ... to better match the Python AST name Compare. Relates to Issue #29 - -2017-11-23 rocky - - * test/stdlib/README.md, test/stdlib/compile-file.py, - test/stdlib/runtests.sh, uncompyle6/parsers/parse2.py: Start another - kind of testing... And fix a bug found in that with 3-way equal - -2017-11-23 rocky - - * uncompyle6/parsers/parse36.py: Forgot to update a call in last - change - -2017-11-23 rocky - - * uncompyle6/parsers/parse3.py: Reduce 3.5 call_aysnc grammar rules - -2017-11-23 rocky - - * test/simple_source/bug32/03_if_try_raise.py, - uncompyle6/parsers/parse32.py: Trystmt grammar from 3.3 needed in - 3.2 Add test to cover this - -2017-11-23 rocky - - * uncompyle6/parsers/parse32.py, uncompyle6/parsers/parse33.py, - uncompyle6/parsers/parse35.py: Add triple compare from 3.3 into 3.2 - -2017-11-23 rocky - - * uncompyle6/parsers/parse32.py, uncompyle6/parsers/parse33.py: - Improve try else in 3.2... Grammar from 3.3 is relevant here - -2017-11-23 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse27.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py: Remove - whileelselastsmt ... Right now I don't know what it does and we don't have something that - needs it - -2017-11-23 rocky - - * uncompyle6/parsers/parse27.py: provisional 2.7 whileelselast rule - -2017-11-23 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse26.py, - uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse34.py: - grammar reduction of while loops - -2017-11-23 rocky - - * test/simple_source/bug30/01_ops.py, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse32.py: 3.x Grammar reduction of custom - rules... by looking for token patterns GET_ITER CALL_FUNCTION_1 - -2017-11-23 rocky - - * test/Makefile, test/simple_source/bug33/01_triple_compare.py, - uncompyle6/parser.py, uncompyle6/parsers/parse26.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse33.py: Grammar coverage and pruning - -2017-11-22 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse3.py: Isotate - conditionalnot - -2017-11-22 rocky - - * test/simple_source/expression/02_true_divide.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse25.py, - uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py: 2.x - Grammar reduction/isolation - -2017-11-22 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, - uncompyle6/parsers/parse24.py: Grammar reduction for load_attrs - -2017-11-22 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Reduce - unecessary grammar rules in 2.x - -2017-11-22 rocky - - * test/simple_source/stmts/01_augmented_assign.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py: - Increase grammar coverage - -2017-11-22 rocky - - * admin-tools/setup-master.sh, admin-tools/setup-python-2.4.sh: - Administrivia: add "git pull"s - -2017-11-18 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse33.py, - uncompyle6/parsers/parse34.py: 3.3. grammar cleanup ... need build_list in for BUILD_TUPLE_0 - -2017-11-18 rocky - - * pytest/test_grammar.py, uncompyle6/parser.py, - uncompyle6/parsers/parse24.py, uncompyle6/semantics/pysource.py: - Grammar cleanup: import_as_cont -> import_as - -2017-11-18 rocky - - * __pkginfo__.py, pytest/test_grammar.py: Track spark_parser changes - -2017-11-17 rocky - - * test/Makefile, uncompyle6/parsers/parse3.py: custom rule hacking - ... Reduce extraneous 3.x "load_list" and "load_closure" rules - -2017-11-17 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse33.py: - Python 3 grammar clean up and reorganization - -2017-11-17 rocky - - * test/Makefile, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse36.py: More grammar isolation. narrow custom - rules... Specifically: _mklambda with load_closure is Python2 only Add - classdefdeco2 rule only when we have seen a LOAD_BUILD_CLASS - -2017-11-16 rocky - - * uncompyle6/parsers/parse34.py: Python 3.4 while grammar cleanup - -2017-11-16 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse3.py: More grammar - cleanups - -2017-11-16 rocky - - * uncompyle6/semantics/consts.py: Tag %c nonterminals in more - template rules - -2017-11-16 rocky - - * uncompyle6/parsers/parse2.py: Bump copyright - -2017-11-16 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse2.py, - uncompyle6/parsers/parse3.py: More grammar isolation: assert2 in - Python3 - -2017-11-16 rocky - - * uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse3.py: - Isolate "assert2" rule - -2017-11-16 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse23.py: Isolate - "and2" rule to 2.3 - -2017-11-16 rocky - - * test/simple_source/stmts/05_with.py, - uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py: Python - 2.5 "with"; Isolate 2.5-2.6 grammar better - -2017-11-16 rocky - - * test/simple_source/expression/02_true_divide.py: Add - BINARY_TRUE_DIVIDE tests for 2.{6,7} - -2017-11-16 rocky - - * uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py: More - grammar cleanup - -2017-11-16 rocky - - * uncompyle6/scanners/scanner2.py: 2.7 continue-detection bug - -2017-11-15 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py: More - 2.7/2.7- grammer separation & cleanup - -2017-11-15 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py: - Grammar cleanup: separate some 2.7 from 2.7- rules - -2017-11-15 rocky - - * uncompyle6/parser.py: I said, remove dict/setcomp from <= 2.6! - -2017-11-15 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py, - uncompyle6/parsers/parse3.py: grammar cleanup: dict/set - comprehensions 2.7+ - -2017-11-15 rocky - - * HOW-TO-REPORT-A-BUG.md: Grammar typo - -2017-11-15 rocky - - * HOW-TO-REPORT-A-BUG.md: Grammar typo - -2017-11-15 rocky - - * : One more pypy test - -2017-11-15 rocky - - * : Keep bytecode_2.7 pypy free... We need to add _another_ pypy directory - -2017-11-15 rocky - - * : del stmt testing on 2.7 - -2017-11-15 rocky - - * test/Makefile, uncompyle6/parsers/parse3.py: Stronger 3.4 testing - ... parse3.py: remove unused grammar rule - -2017-11-15 rocky - - * test/Makefile, test/simple_source/stmts/10_del.py, - test/test_pyenvlib.py, uncompyle6/parsers/parse26.py, - uncompyle6/semantics/check_ast.py, uncompyle6/semantics/pysource.py: - Profiling workarounds, more coverage ... test/Makefile: more grammar checking. Update python versions - 10_del.pyc add test of DEL_GLOBAL check_ast.py, pysource.py: Profileing workarounds - -2017-11-14 rocky - - * uncompyle6/parsers/parse2.py: Guard around null ast This can happen in profiling - -2017-11-13 rocky - - * HOW-TO-REPORT-A-BUG.md: bug report doc tweak - -2017-11-13 rocky - - * HOW-TO-REPORT-A-BUG.md: add note on illegal use - -2017-11-13 rocky - - * ChangeLog, uncompyle6/parser.py, uncompyle6/semantics/pysource.py: - detected old-style Python 2.4 class better - -2017-11-13 rocky - - * admin-tools/check-older-versions.sh: Administrivia - -2017-11-13 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.13.3 - -2017-11-12 rocky - - * test/Makefile: Back off --verify for --weak-verify - -2017-11-12 rocky - - * test/Makefile: Back off --verify for --weak-verify - -2017-11-12 rocky - - * : Reinstate previously failed tests 2.6, 3.5 and 3.6 decompilation has gotten better - -2017-11-10 rocky - - * __pkginfo__.py: Use newer xdis - -2017-11-09 rocky - - * uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py: - Fix bug in return-optimized try stmt - -2017-11-09 rocky - - * HOW-TO-REPORT-A-BUG.md: More detail is needed in bug reporting... sigh. - -2017-11-09 rocky - - * test/simple_source/bug35/04_importlist.py, uncompyle6/parser.py, - uncompyle6/semantics/consts.py: bug in 3.x importlists consts.py: add rule for importlists. imports weren't separated by ', - '. parser.py: Make importlist a list type of node. test/* add test for importlist - -2017-11-08 rocky - - * : commit e9b60ddbf020ee7f14d8d77c6f4a8588d2968377 Author: rocky - Date: Wed Nov 8 23:05:01 2017 -0500 - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: more wordsmithing - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: more wordsmithing - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: more wordsmithing - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: Typo - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: Typo - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: Typo - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: Typo - -2017-11-08 rocky - - * HOW-TO-REPORT-A-BUG.md: Tweak how to report a bug. - -2017-11-08 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse36.py, - uncompyle6/scanners/scanner3.py: Add 3.6+ grammar for except's - ending in RETURN... Not totally out of the maze in 3.6 control flow... There are still - problems with erroneous RETURN_VALUEs becoming RETURN_END_IF, - -2017-11-07 R. Bernstein - - * : Merge pull request #135 from rocky/3.6-instruction-refactor 3.6 instruction refactor - -2017-11-06 rocky - - * uncompyle6/scanners/scanner3.py: Small tweaks to sync up better - with scanner2.py - -2017-11-06 rocky - - * pytest/test_fjt.py: Remove parts of erroneous 2.7 test for now - -2017-11-06 rocky - - * pytest/test_fjt.py, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner36.py: Fix 3.{3,4} pytest. Remove dup - find_jump_targets - -2017-11-06 rocky - - * Makefile, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner36.py: Move refactored find-jump-targets - from 3.6 to 3.x - -2017-11-06 rocky - - * test/Makefile, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner36.py: Move refactored ingest from 3.6 to - 3.x... We are getting away from working with bytecode in favor of working - with full-fledged structured instructions Up next: find_jump_targets() - -2017-11-06 rocky - - * uncompyle6/parsers/parse36.py: awith custom COME_FROMs ... Now that jump branching has been properly fixed up for EXTENDED_ARG - instructions which are more prevalent with wordcode encoding. - -2017-11-06 rocky - - * : commit 9379922c89573972aa387e4f0b9abcba7358d1a3 Author: rocky - Date: Mon Nov 6 00:38:22 2017 -0500 - -2017-11-06 rocky - - * uncompyle6/scanners/scanner36.py: Revert change that should have - been in a branch - -2017-11-06 rocky - - * uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner36.py: xdis _disassemble->disassemble - -2017-11-04 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py: Add flag to tolerate deparse - errors... and keep going. The fragment parser should ignore errors in nested - function definitions - -2017-11-04 rocky - - * uncompyle6/scanner.py, uncompyle6/semantics/fragments.py: Add - Python 3.6.3 scanner lookup - -2017-11-03 R. Bernstein - - * : Merge pull request #134 from mikemrm/master Corrected python3 import from queue - -2017-10-29 rocky - - * test/simple_source/bug36/10_extended_arg_loop.py, - uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner3.py: - Python 3.6 control flow bug... Much more is needed, but it's a start - -2017-10-29 rocky - - * uncompyle6/verify.py: In verify, JUMP_BACK is the same as - CONTINUE... at least for now. See FIXME in verify - -2017-10-29 rocky - - * uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner30.py: - Python 3.6-inspired instruction size cleanup Revise and generalize for Python 3.6+ instructions vs < 3.6 - instuctions. Used more of the generalized methods in xdis and - remove some (but not all) of the magic numbers. This is a lot of changes, but not all of the refactoring needed. - Much crap still remains. Also, there are still bugs in handling 3.6 - bytecodes. - -2017-10-24 rocky - - * Makefile, __pkginfo__.py: Bump uncompyle. Pypy 5.8.0-beta - tolerance - -2017-10-13 rocky - - * test/Makefile, uncompyle6/semantics/consts.py: Tag more semantic - actions with nonterminals - -2017-10-13 rocky - - * uncompyle6/parser.py, uncompyle6/semantics/consts.py: More node - checking in tables - -2017-10-13 rocky - - * pytest/test_pysource.py, uncompyle6/parser.py, - uncompyle6/parsers/parse24.py, uncompyle6/semantics/consts.py, - uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: - Start allowing node names in template engine These are now used to assert we have the right node type. Simplify import_from - -2017-10-13 rocky - - * HISTORY.md, uncompyle6/semantics/pysource.py: Small changes - -2017-10-12 rocky - - * admin-tools/make-dist-newer.sh, admin-tools/make-dist-older.sh: - Administrivia - generalize shell code - -2017-10-12 rocky - - * admin-tools/how-to-make-a-release.md: Update install doc - -2017-10-12 rocky - - * admin-tools/how-to-make-a-release.md: Update instructions - -2017-10-12 rocky - - * admin-tools/make-dist-newer.sh, admin-tools/make-dist-older.sh: - Administrivia - -2017-10-12 rocky - - * admin-tools/how-to-make-a-release.md: Minor - -2017-10-12 rocky - - * : commit 491572ed2dd01bf655288638a121bf48c530b303 Author: rocky - Date: Thu Oct 12 06:48:49 2017 -0400 - -2017-10-12 rocky - - * ChangeLog, Makefile, NEWS, admin-tools/how-to-make-a-release.txt, - uncompyle6/version.py: Get ready for release 2.13.2 - -2017-10-11 rocky - - * admin-tools/check-older-versions.sh, - admin-tools/make-dist-newer.sh, admin-tools/make-dist-older.sh, - admin-tools/pyenv-newer-versions, admin-tools/pyenv-older-versions, - admin-tools/setup-master.sh: Administrivia - -2017-10-11 rocky - - * admin-tools/check-newer-versions.sh, - admin-tools/check-older-versions.sh, - admin-tools/how-to-make-a-release.txt, - admin-tools/make-dist-newer.sh, admin-tools/make-dist-older.sh: - Adminstrivia - -2017-10-11 rocky - - * admin-tools/README.md, admin-tools/check-newer-versions.sh, - admin-tools/check-older-versions.sh, - admin-tools/how-to-make-a-release.txt, - admin-tools/make-dist-newer.sh, admin-tools/make-dist-older.sh, - admin-tools/pyenv-newer-versions, admin-tools/pyenv-older-versions, - admin-tools/setup-master.sh, admin-tools/setup-python-2.4.sh: Some - admin tools I use. - -2017-10-11 rocky - - * setup.py: remove python_requires - -2017-10-11 rocky - - * uncompyle6/bin/uncompile.py: Program name was incorrect. uncompile -> uncompyle6 - -2017-10-11 rocky - - * Makefile, NEWS, setup.py, uncompyle6/version.py: Administrivia - woes - -2017-10-10 rocky - - * : commit 9cfd7d669edc7f065bfc314924cfecbb6c7219ec Author: rocky - Date: Tue Oct 10 21:50:06 2017 -0400 - -2017-10-10 rocky - - * HOW-TO-REPORT-A-BUG.md, test/Makefile, uncompyle6/parser.py, - uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, - uncompyle6/semantics/consts.py, uncompyle6/semantics/pysource.py: - Improve parse trace. lambda fixes yet again - -2017-10-10 rocky - - * test/simple_source/branching/02_ifelse_lambda.py, - uncompyle6/semantics/consts.py: Address dead code in lambda ifelse - -2017-10-10 rocky - - * uncompyle6/parsers/parse24.py, uncompyle6/scanners/scanner3.py: - Misc bugs - -2017-10-10 R. Bernstein - - * : Merge pull request #131 from rocky/type2kind-rework Adjust for spark-parser 2.7.0 incompatibilities - -2017-10-10 rocky - - * __pkginfo__.py, pytest/test_grammar.py, pytest/test_pysource.py, - uncompyle6/parser.py, uncompyle6/parsers/astnode.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse24.py, - uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse27.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse34.py, uncompyle6/parsers/parse35.py, - uncompyle6/parsers/parse36.py, uncompyle6/parsers/parse37.py, - uncompyle6/scanners/scanner22.py, uncompyle6/scanners/scanner26.py, - uncompyle6/scanners/scanner27.py, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/tok.py, uncompyle6/semantics/check_ast.py, - uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py, uncompyle6/verify.py, - uncompyle6/version.py: Adjust for spark-parser 2.7.0 - incompatabilities - -2017-10-05 rocky - - * : One more test - -2017-10-05 rocky - - * : commit b3359439f94c136619b198beaecbfce1b827d2db Author: rocky - Date: Thu Oct 5 11:00:55 2017 -0400 - -2017-10-03 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse24.py, - uncompyle6/parsers/parse26.py: handle newer parser reduction - behavior - -2017-10-03 rocky - - * uncompyle6/semantics/pysource.py: Remove schumutz - -2017-10-03 rocky - - * uncompyle6/semantics/pysource.py: More table doc tweaks - -2017-10-03 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Go over table-semantics - description yet again - -2017-10-02 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: - spark-parser induced changes... reduce rules can be called without token streams. - -2017-09-30 rocky - - * uncompyle6/parser.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner3.py: Document hacky customize arg count - better. - -2017-09-26 rocky - - * README.rst: Word hacking - -2017-09-26 rocky - - * ChangeLog, NEWS: Get ready for release 2.12.0 - -2017-09-26 rocky - - * uncompyle6/parsers/parse3.py: No unicode in Python3. but we need it in Python2. The bug was probably introduced as a - result of recent Python code type unteroperability canonicalization - -2017-09-26 rocky - - * uncompyle6/parsers/parse3.py: Pyton 3.1 Annotation args can be - unicode? - -2017-09-25 rocky - - * : Adjust for xdis opcode JUMP_OPS. release 2.12.0 - -2017-09-21 rocky - - * pytest/test_pysource.py: Python 3 compatibility - -2017-09-21 rocky - - * pytest/test_pysource.py, uncompyle6/semantics/consts.py, - uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: - Unit test for format-specifiers And in the process we catch some small bugs - -2017-09-20 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Tidy pysource and fragments a - little more - -2017-09-20 rocky - - * uncompyle6/semantics/consts.py: Tidy/regularize table entry - formatting - -2017-09-20 rocky - - * test/test_pythonlib.py, uncompyle6/semantics/pysource.py: Small - fixes test_pyenvlib.py: it is sys.exit(), not exit() pysource.py: - reinstate nod type of async_func_call - -2017-09-20 rocky - - * uncompyle6/semantics/consts.py, uncompyle6/semantics/pysource.py: - More small doc changes - -2017-09-20 rocky - - * pytest/test_pysource.py, uncompyle6/semantics/pysource.py: Update - Table-driven info... Start a pysource unit test. - -2017-09-17 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: engine -> template_engine - -2017-09-13 rocky - - * test/Makefile: Need weak-verification on 3.4 for now - -2017-09-10 rocky - - * uncompyle6/semantics/fragments.py: Revert one of the changes - pending a better fix - -2017-09-10 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: More semantic action cleanup - -2017-09-10 rocky - - * uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py: Match - Python 3.4's terms a little names better - -2017-09-09 rocky - - * uncompyle6/scanners/tok.py: Revert last revert - -2017-09-09 rocky - - * uncompyle6/scanners/tok.py: Revert last change - -2017-09-09 rocky - - * uncompyle6/scanners/tok.py: New-style Python classes only, please. - -2017-08-31 rocky - - * uncompyle6/scanner.py, uncompyle6/scanners/scanner37.py: Skeletal - support for Python 3.7 Largely failing though. - -2017-08-31 rocky - - * README.rst: Remove python versions tag I think it's messing up Pypi's very fussy formatting - -2017-08-31 rocky - - * ChangeLog, NEWS, README.rst, __pkginfo__.py, - uncompyle6/parsers/parse37.py, - uncompyle6/semantics/make_function.py, uncompyle6/version.py: Get - ready for release 2.11.5 - -2017-08-15 rocky - - * Makefile: 3.7 support - -2017-08-15 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.11.4 - -2017-08-15 rocky - - * __pkginfo__.py, pytest/validate.py, uncompyle6/parser.py, - uncompyle6/scanner.py: Misc cleanups... remove code now in xdis require at least xdis 3.5.4 PyPy tolerance - in validate testing - -2017-08-13 rocky - - * pytest/test_basic.py, uncompyle6/parser.py, uncompyle6/scanner.py: - Allow 3-part version string lookups, e.g 2.7.1 We allow a float here, but if passed a string like '2.7'. or - '2.7.13', accept that in looking up either a scanner or a parser. - -2017-08-10 rocky - - * README.rst: Link typo Name is trepan2 now not trepan - -2017-08-09 rocky - - * ChangeLog, NEWS, README.rst, __pkginfo__.py, - uncompyle6/semantics/consts.py, uncompyle6/version.py: Get ready for - release 2.11.3 need xdis 3.5.1 for now. Adjust for xdis "is-not" which we need as - "is not" - -2017-08-02 rocky - - * __pkginfo__.py: Revert commit to wrong branch - -2017-08-02 rocky - - * __pkginfo__.py: Remove six from Python-2.4/2.5 package - -2017-07-17 rocky - - * __pkginfo__.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner30.py: - xdis's "exception match" is now "exception-match" - -2017-07-15 rocky - - * __pkginfo__.py: xdis 3.5.1 is botched? - -2017-07-14 rocky - - * __pkginfo__.py: Use newer xdis - -2017-07-14 R. Bernstein - - * README.rst: Fixes issue #124 - -2017-07-14 rocky - - * HISTORY.md: History updates - -2017-07-09 rocky - - * README.rst: RsT doc formatting - -2017-07-09 rocky - - * ChangeLog, HOW-TO-REPORT-A-BUG.md, NEWS, uncompyle6/version.py: - Get ready for release 2.11.2 - -2017-07-08 rocky - - * __pkginfo__.py, uncompyle6/scanner.py, - uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, - uncompyle6/scanners/scanner3.py, uncompyle6/scanners/scanner30.py, - uncompyle6/scanners/tok.py: Use xdis 3.5.0's opcode sets - -2017-07-08 rocky - - * test/test_pyenvlib.py, uncompyle6/scanners/pypy32.py, - uncompyle6/scanners/pypy35.py, uncompyle6/scanners/scanner15.py, - uncompyle6/scanners/scanner32.py, uncompyle6/scanners/scanner34.py, - uncompyle6/scanners/scanner35.py, uncompyle6/scanners/scanner36.py: - Start supporting Pypy 3.5 (5.7.1-beta) - -2017-07-05 rocky - - * test/simple_source/bug26/03_loop_if_cf.py, - uncompyle6/parsers/parse26.py: Loops in Python 2.4-2.6 loop - come_from Looks like Python 2.4-2.6 may have a COME_FROM(_LOOP) before the - jump_back. Fixes Issue #123 - -2017-06-29 rocky - - * : Work around not having real flow-control analysis - -2017-06-28 rocky - - * uncompyle6/semantics/make_function.py: A guard against badly - formated bytecode - -2017-06-25 rocky - - * ChangeLog, NEWS, test/simple_source/bug31/04_def_annotate.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py: 3.x funciton and annotation bug - fixes - -2017-06-25 rocky - - * uncompyle6/version.py: Get ready for release 2.11.1 - -2017-06-24 rocky - - * __pkginfo__.py, uncompyle6/scanner.py, - uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner30.py, uncompyle6/semantics/pysource.py: - Use xdis' instruction offset calculation fns.. next_offset, op_size, has_argument - -2017-06-19 rocky - - * uncompyle6/semantics/pysource.py: Python 2 sometimes need - str->uncode in writing? - -2017-06-19 rocky - - * uncompyle6/semantics/pysource.py: Allow deparsed out to be str as - well as unicode - -2017-06-18 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.11.0 - -2017-06-13 rocky - - * uncompyle6/semantics/fragments.py: Adjust nodeInfo if it is a - Token - -2017-06-13 rocky - - * uncompyle6/semantics/fragments.py: Add nonterminal node in - extractInfo - -2017-06-10 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py: Fragment tag more expressions Revise make_function3 comment wrt args and kwargs - -2017-06-10 rocky - - * uncompyle6/semantics/fragments.py: Fragment tag array subscripts - -2017-06-10 R. Bernstein - - * README.rst: Create README.rst - -2017-06-10 R. Bernstein - - * README.rst: Create README.rst - -2017-06-10 rocky - - * uncompyle6/semantics/fragments.py: Set YIELD_VALUE offset in a - expr - -2017-06-10 rocky - - * uncompyle6/semantics/make_function.py: Python 3.2 MAKE_FUNCTION - again.. Was handling bug32/01_named_and_kwargs.py wrong again - -2017-06-09 R. Bernstein - - * : Merge pull request #119 from rocky/scan-longconstant Simplify access to L65536 ... - -2017-06-09 rocky - - * uncompyle6/semantics/make_function.py: Attempt to document the - MAKE_FUNCTION/MAKE_LAMBDA mess... in Python 3.0+ - -2017-06-08 rocky - - * uncompyle6/semantics/make_function.py: Correct make_function3 for - Pytohn 3.2 - -2017-06-08 rocky - - * uncompyle6/semantics/pysource.py: Disable "continue" removal in - pysource.py "continue" could be the only statement and then removing it might - lead to a dangling "else". - -2017-06-07 rocky - - * uncompyle6/semantics/fragments.py: Mark "pass" offsets. Start routine to find previous node. - -2017-06-06 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py: - Remove hacky fragments try fixup... hacky call_function code is also not needed or will be reinstated - properly. Better grammar structure for Python 3.6 call_function. - -2017-06-05 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py, - uncompyle6/scanners/scanner36.py: BUILD_{MAP,TUPLE}_UNPACK & - CALL_FUNCTION_EX_KW... Bang on these in 3.6. Not totally succesfull right now. In fact a - regression on one of the test cases - -2017-06-05 rocky - - * uncompyle6/semantics/fragments.py: Important fragments bug fix... start, finish that had been adjusted wasn't getting reflected in - final returned deparsed.offsets dictionary. Redo keeping API - compatibility, i.e we still use namedtuple NodeInfo. - -2017-06-04 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: - Python 3.5 *args with kwargs handling. 3.5 is a snowflake here. Thank you, Python. Fully fixes Issue 95. 3.6 is broken on this source, but for a *different* reason. Sigh. - -2017-06-03 rocky - - * README.rst, __pkginfo__.py, - test/simple_source/bug35/04_CALL_FUNCTION_VAR_KW.py, - uncompyle6/semantics/fragments.py: Small changes. fragment tag EXEC_STMT - -2017-06-03 rocky - - * .travis.yml: Streamline .travis.yml a little bit - -2017-06-03 rocky - - * __pkginfo__.py: We need six - -2017-06-03 rocky - - * README.rst, circle.yml, requirements-dev.txt: Go over - administrivia - -2017-06-03 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.10.1 - -2017-06-03 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Fragment bugs fragment.py: * deparse_code_aorund_offset: was sometimes returning the wrong type * capture function name offset * lint imports pysource.py: use a clearer variable name - -2017-06-02 rocky - - * uncompyle6/semantics/fragments.py: Track changes in ifelstmtr.. in fragments from pysource - -2017-05-30 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.10.0 - -2017-05-30 rocky - - * uncompyle6/semantics/fragments.py: Python 3.6 makefunction - handling for fragments - -2017-05-23 rocky - - * uncompyle6/semantics/pysource.py: Fix up 3.6 unmapexpr - -2017-05-23 rocky - - * uncompyle6/semantics/pysource.py: Fix up retreiving "async" - property on 3.6 - -2017-05-23 rocky - - * uncompyle6/semantics/pysource.py: Fix bug in a 3.6 class name. - -2017-05-23 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Add fuzzy offset deparse lookup - -2017-05-21 rocky - - * uncompyle6/scanners/scanner3.py: Correct EXTENDED_ARG handling on - Python 3.6... where it can appear several times and xdis may handle it as well. - It possibly in other versions bug since EXTENDED_ARG is used so - rarely there because it has such a high value 1<<16, it's hard to - test and determine that. - -2017-05-20 rocky - - * uncompyle6/semantics/pysource.py: Worse results. Revert some of - the last changes - -2017-05-20 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: - More explicit about 3.5 UNMAP_PACK Have to reduce 3.5 bytecode testing for now, code is more solid. - -2017-05-19 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py, - uncompyle6/scanners/scanner3.py: Simplify EXTENDED_ARG on 3.x We largely remove them and fold them itno the next op. - MAKE_FUNCTION though before 3.6 is an exception as that indicates an - annotated function - -2017-05-19 rocky - - * uncompyle6/scanners/scanner26.py: EXTENDED_ARG is implemented in - 2.6 - -2017-05-19 rocky - - * test/simple_source/expression/06_huge_list.py, - uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Fix - EXTENDED_ARG for long lists, sets, maps - -2017-05-19 rocky - - * uncompyle6/scanners/scanner3.py: Another attempt at getting - get_target() correct - -2017-05-19 rocky - - * uncompyle6/parsers/parse3.py: Bug in pypy JUMP_IF_NOT_DEBUG - handling - -2017-05-19 rocky - - * uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner3.py: - EXTENDED_ARG handling... get_target() wasn't taking into account EXTENDED_ARG before opcode. This is mostly relevant in Python 3.6 where the max size before - needing EXTENDED_ARG has been reduced to 256, but theoretically - possible in earlier versions. - -2017-05-18 rocky - - * __pkginfo__.py: Enforce using xdis >=3.3.1 .. to pick up bug fixes to 3.6 in xdis - -2017-05-17 rocky - - * __pkginfo__.py, uncompyle6/parsers/parse36.py, - uncompyle6/scanners/scanner3.py: Small changes.... * __pkginfo__.py: Need spark parser 1.6.1 for corrected - remove_rules() fn * parser36.py: remove replaced Python3 rules * scanner3.py: corrected comment. Thanks to moagstar here. * - -2017-05-16 rocky - - * uncompyle6/parsers/parse36.py: Fix broken CI on 3.6... Another grammar rule replacing SETUP_LOOP with setup_loop - -2017-05-16 rocky - - * uncompyle6/parsers/parse36.py: More EXTENDED_ARGS on 3.6 - -2017-05-16 rocky - - * uncompyle6/parsers/parse36.py: extend use of EXTENDED_ARGS in 3.6 switching to a wordcode seems to have made opcode fields smaller so - we need EXTENDED_ARG more? - -2017-05-16 rocky - - * uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py: - Allow LOAD_CONST EXTENDED_ARG - -2017-05-15 rocky - - * uncompyle6/parsers/parse3.py: Reinstate 3.6 listcomp rule - -2017-05-15 rocky - - * uncompyle6/parsers/parse3.py: Bang on 3.6 MAKE_FUNCTION some more - -2017-05-14 rocky - - * uncompyle6/semantics/pysource.py: towards fixing a - 3.5.CALL_FUNCTONI_VAR bug - -2017-05-14 rocky - - * test/simple_source/bug35/04_CALL_FUNCTION_VAR_KW.py, - uncompyle6/parsers/parse3.py: Python 3.5 kw arg can be an expr Fixes Issue #95 - -2017-05-14 R. Bernstein - - * : Merge pull request #117 from rocky/3.6-MAKE_FUNCTION 3.6 make function - -2017-05-13 rocky - - * uncompyle6/scanners/scanner3.py: MAKE_FUNCTION_FLAGS can be a - simpler tuple - -2017-05-13 rocky - - * uncompyle6/parsers/parse3.py: Grammar rules for Python 3.6 - MAKE_FUNCTION - -2017-05-13 rocky - - * README.rst, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py: - Bang on 3.6 MAKE_FUNCTION a bit more parse3.py, parse36.py: adding return_closure rule tags what's going - on with this rule pysource.py: start changing semantic rules to support code changed - by new make_function semantics README.rst: typo - -2017-05-13 rocky - - * uncompyle6/scanners/scanner3.py: Typo - -2017-05-12 rocky - - * uncompyle6/parsers/parse27.py: Bug in 2.7 decompiling ourself! Troublesome file was uncompyle6.semantics.pysource.engine() - -2017-05-11 R. Bernstein - - * : Merge pull request #113 from grkov90/patch-1 Fixed out_base bug - -2017-05-11 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, - uncompyle6/semantics/make_function.py: WIP: start 3.6 MAKE_FUNCTION - handling - -2017-05-11 Daniel Bradburn - - * : Merge pull request #116 from moagstar/function_call_keyword_only Added support for Python 3.6 CALL_FUNCTION_KW - -2017-05-10 Daniel Bradburn - - * uncompyle6/semantics/pysource.py: Fixed bug in compiling double - star arg only function calls where the closing parenthesis would be - missed - -2017-05-10 Daniel Bradburn - - * requirements-dev.txt: Adding requirement for pytest >= 3.0 to fix - strange INTERNALERROR in combination with hypothesis when using - pytest 2.6.4 - -2017-05-10 Daniel Bradburn - - * pytest/test_CALL_FUNCTION_KW.sh, pytest/test_function_call.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py, - uncompyle6/scanners/scanner36.py, uncompyle6/semantics/pysource.py: - Added support for support for Python 3.6 CALL_FUNCTION_KW - -2017-05-08 rocky - - * appveyor.yml, test/test_pyenvlib.py, - uncompyle6/semantics/pysource.py: pysource guard and another - appveyor test - -2017-05-08 rocky - - * appveyor.yml: appveyor take 2 - -2017-05-08 rocky - - * appveyor.yml, appveyor/install.ps1, appveyor/run_with_env.cmd: Try - appveyor - -2017-05-07 rocky - - * uncompyle6/semantics/pysource.py: More guarded CONTINUE deletion - -2017-05-07 rocky - - * uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py, - uncompyle6/semantics/pysource.py: Reduce spurious "continue" - statements - -2017-05-07 rocky - - * test/Makefile: --weak-verify on 3.3 with inclusion of last commit Note that the result is sematically equivalent, so it is is correct. - -2017-05-07 rocky - - * test/simple_source/looping/12_if_while_true_pass.py, - uncompyle6/scanners/scanner3.py: Python 3.x control-flow bug... "pass" statement inside "while True" - -2017-05-07 rocky - - * HOW-TO-REPORT-A-BUG.md: Small typo - -2017-05-07 rocky - - * uncompyle6/scanners/scanner3.py: Fix improper COME_FROM_EXCEPT in - Python 3.3+ - -2017-05-06 rocky - - * uncompyle6/parsers/parse33.py: python 3.3 while True parsing bug - -2017-05-06 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.9.11 - -2017-05-06 rocky - - * test/Makefile: fix PYTHON variable setting in test/Makefile - -2017-05-06 rocky - - * test/simple_source/bug32/01_try_except_raise.py, - test/simple_source/bug32/03_if.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse33.py: Fix more Python3.2 parser errors - -2017-05-05 rocky - - * uncompyle6/parsers/parse32.py, uncompyle6/scanners/scanner3.py: - Improve Python 3.2 decompilation ... by removing a lot of the control-flow labels of 3.3+ - -2017-05-05 rocky - - * .travis.yml: Try CI testing on Python 3.6 - -2017-05-03 Gregory - - * uncompyle6/main.py: Some fix - -2017-05-03 Gregory - - * uncompyle6/main.py: Fixed out_base bug Variable filename using in for tags uncompyle6 -o haven't worked argument -o haven't worked - -2017-05-02 rocky - - * test/simple_source/bug35/01_map_unpack.py, uncompyle6/parser.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py, - uncompyle6/semantics/pysource.py: Bang more on BUIlD_MAP_UNPACK there are still bugs. Note: {**{'x': 1}, **{'y': 2}} and {{'x': 1}, **{'y': 2}} generate the same Python 3.5+ bytecode. - -2017-05-02 rocky - - * test/simple_source/bug35/01_map_unpack.py, uncompyle6/parser.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py: - BUILD_MAP_UNPACK'ing of dictionaries in 3.5 - -2017-05-01 rocky - - * uncompyle6/semantics/pysource.py: Remove extra unpack *. Issue #98 - -2017-04-29 R. Bernstein - - * HISTORY.md: Update HISTORY.md - -2017-04-29 rocky - - * test/simple_source/bug35/01_map_unpack.py, - uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py: - Handle BUILD_MAP_UNPACK in a build_list - -2017-04-27 rocky - - * uncompyle6/semantics/pysource.py: A hacky way to get - CALL_FUNCTION_EX_KW to work. - -2017-04-26 rocky - - * uncompyle6/semantics/pysource.py: remove debug code - -2017-04-25 rocky - - * test/simple_source/bug36/01_call_function.py, - uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner36.py, - uncompyle6/semantics/pysource.py: Python 3.6 CALL_FUNCTION_EX first - attempt - -2017-04-22 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse34.py: Reduse scope - of LOAD_ASSERT as expr to 3.4+ - -2017-04-22 rocky - - * uncompyle6/parser.py, uncompyle6/verify.py: LOAD_ASSERT can also - be an expr This may have the undesirable property that assert statements might - get tagged with equivalant low-level Python code that uses "raise - AssertionError", but so be it. Fixes #103 - -2017-04-22 R. Bernstein - - * HISTORY.md: Update HISTORY.md - -2017-04-22 R. Bernstein - - * HISTORY.md: Update HISTORY.md - -2017-04-22 rocky - - * HISTORY.md: History keeps gettting amended - -2017-04-22 rocky - - * README.rst: Document Python 3.x status - -2017-04-22 rocky - - * test/simple_source/bug35/03_async_await.py, - uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py: Add - await expr Fixes #111 - -2017-04-22 rocky - - * : Update test - -2017-04-22 rocky - - * test/simple_source/bug33/02_pos_args.py, - uncompyle6/parsers/parse3.py, uncompyle6/semantics/make_function.py: - 3.3+ bug in handling single kwarg after * Towards fixing issue #110 - -2017-04-20 rocky - - * test/simple_source/bug35/02_async_for.py, - uncompyle6/parsers/parse35.py: Add async for with pass statement Fixes #109 - -2017-04-19 rocky - - * test/simple_source/bug35/03_while-if-break.py, - uncompyle6/parsers/parse3.py: 3.5 ifelsestmtl grammar bug. Fixes #108 - -2017-04-18 rocky - - * test/simple_source/bug35/03_async_await.py, - uncompyle6/parsers/parse35.py: Expand await stmt handling Fixes #107 - -2017-04-18 rocky - - * test/simple_source/bug33/01_delete_deref.py, - uncompyle6/parsers/parse32.py, uncompyle6/semantics/pysource.py: Add - DELETE_DEREF grammar rule Fixes Issue #106 - -2017-04-17 rocky - - * test/simple_source/bug36/01_extended_arg.py, - test/simple_source/bug36/01_if_file.py: Rename test case to - something more appropriate - -2017-04-17 rocky - - * test/simple_source/bug36/01_if_file.py: Fix botched test case Thanks to Zm908 for pointing this out - -2017-04-16 rocky - - * uncompyle6/parsers/parse3.py: Comment on what's up with last - change - -2017-04-16 rocky - - * test/simple_source/bug22/03_if1.py, - test/simple_source/bug31/02_ifelse_comprehension.py, - uncompyle6/parsers/parse3.py: Python 3.x ifelse in comprehension Fixes Issue #91 - -2017-04-16 rocky - - * : Add 2.7 complex test - -2017-04-15 rocky - - * test/simple_source/bug35/01_map_unpack.py, - uncompyle6/semantics/pysource.py: Correct bug in 3.5+ build_list - with UNPACK - -2017-04-15 R. Bernstein - - * HOW-TO-REPORT-A-BUG.md: Update HOW-TO-REPORT-A-BUG.md - -2017-04-15 R. Bernstein - - * HOW-TO-REPORT-A-BUG.md: Update HOW-TO-REPORT-A-BUG.md - -2017-04-15 rocky - - * test/simple_source/bug36/01_if_file.py, - uncompyle6/parsers/parse36.py: 3.6 generates Wonky EXTENDED_ARG in - expression Fixes Issue #102 - -2017-04-15 rocky - - * HOW-TO-REPORT-A-BUG.md, MANIFEST.in: Add how to report a bug Add test case for ... if 1 else ... - -2017-04-14 rocky - - * test/simple_source/bug35/01_map_unpack.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py, - uncompyle6/semantics/pysource.py: Python 3.5+ BUILD_UNMAP_PACK rules Towards addressing Issue #98 - -2017-04-14 rocky - - * uncompyle6/scanners/scanner3.py: Reduce adding RETURN_END_IF in - 3.5+ The whole control flow determination has to be redone in a less - haphazard way using real flow-control analysis. Hopefully that's on - the way. In the meantime we have this hack. - -2017-04-14 rocky - - * test/simple_source/bug27+/03_if_1_else.py, - test/simple_source/bug27+/03_if_true_else.py: Better names for a - test - -2017-04-13 rocky - - * test/simple_source/bug27+/03_if_true_else.py, - uncompyle6/parser.py, uncompyle6/parsers/parse3.py, - uncompyle6/semantics/consts.py: Add if1else. Fixes #101 - -2017-04-13 rocky - - * uncompyle6/parsers/parse3.py: In 3.x come_from should include - COME_FROM_EXCEPT - -2017-04-13 rocky - - * uncompyle6/parsers/parse35.py: Towards fixing issue #92 - -2017-04-13 rocky - - * uncompyle6/parsers/parse23.py, uncompyle6/semantics/pysource.py: - Add Python 2.3 rule for "if 1: ..." Fully fixes #97 for Python 2.3. Python 2.4 was fixed in a previous - commit. - -2017-04-12 rocky - - * uncompyle6/parsers/parse3.py, - uncompyle6/semantics/make_function.py: annotate args type need to be - expr's not constants - -2017-04-12 rocky - - * uncompyle6/parsers/parse24.py: Handle Python 2.4 "if 1...." - -2017-04-11 rocky - - * test/simple_source/bug31/04_def_annotate.py, - uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py: Bang on 3.x annotations - -2017-04-11 rocky - - * test/simple_source/bug31/04_def_annotate.py, - uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: - Towards fixing annotated decorator functions... and annotate functions - -2017-04-10 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner27.py, - uncompyle6/semantics/check_ast.py, uncompyle6/semantics/pysource.py: - Misc bugs parse2.py: restore accidently-removed while1stmt rule scanner27.py: - grammar typo check_ast: add while1else to list of looping constructs - pysource.py: CALL_FUNCTION_VAR_KW_ARGS with positional args rule is - different? - -2017-04-10 rocky - - * test/simple_source/stmts/02_while1else.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse35.py: Add more while1else grammar rules Towards addressing issue #93 - -2017-04-09 rocky - - * : One more FUNCTION_VAR test for 3.3 - -2017-04-09 rocky - - * test/simple_source/def/10_kw+pos_args-bug.py, - uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: - Another Python 3.5 FUNCTION_VAR bug Fixes #94 - -2017-04-09 rocky - - * : commit 4199bc7f617e387fb03fc06939cd17366dc15c5e Author: rocky - Date: Sun Apr 9 05:30:45 2017 -0400 - -2017-04-03 rocky - - * : commit 6773a66b99d07e48290a77dbbbe3c71cc39c31ba Author: rocky - Date: Mon Apr 3 06:53:12 2017 -0400 - -2017-03-27 rocky - - * : commit a91cd716670be09d3cef34e1bb36a67f96f91712 Author: rocky - Date: Mon Mar 27 07:08:59 2017 -0400 - -2017-03-19 rocky - - * __pkginfo__.py: Use more-recent xdis - -2017-03-15 rocky - - * HISTORY.md, test/simple_source/bug33/01_if_try_except.py: grammar - typo and add another test - -2017-03-12 rocky - - * uncompyle6/scanners/scanner3.py: Python 3.0 doesn't have - POP_JUMP_IF... - -2017-03-12 rocky - - * README.rst: Note problem in handling pathologically long lists - -2017-03-07 rocky - - * uncompyle6/scanners/scanner3.py: Small cleanup - remove - POP_JUMP_TF - -2017-03-05 rocky - - * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse33.py, uncompyle6/scanners/scanner3.py: More - accurate ranges of try blocks in 3.x - -2017-03-05 rocky - - * test/simple_source/bug33/01_try_except.py: More accurate ranges of - try blocks in 3.x - -2017-03-04 R. Bernstein - - * : Merge pull request #84 from - moagstar/property_based_test_function_call Property based test function call - -2017-03-04 rocky - - * README.rst: README updates for 3.5 and 1.5 - -2017-03-04 rocky - - * test/simple_source/bug32/01_named_and_kwargs.py, - uncompyle6/parsers/parse3.py: Bug found by hypothesis in creating - function calls - -2017-03-04 Daniel Bradburn - - * pytest/test_function_call.py: marked all function call tests as - failing until they pass across all python versions - -2017-03-04 Daniel Bradburn - - * pytest/test_function_call.py: added minimal examples for various - function call opcodes - -2017-03-04 Daniel Bradburn - - * pytest/test_function_call.py: added property based test for - verifying uncompylation of function calls. A number of minimal - examples for the various function call opcodes have been generated - with the majority marked as expected failure until python 3.6 opcode - support is complete. I'm hoping this will make it easier to figure - out what needs to be done to support the new opcodes and changed - semntics for function calls - -2017-03-03 Daniel Bradburn - - * pytest/test_function_call.py: reduced errors when generating - function call instances - -2017-03-03 Daniel Bradburn - - * pytest/test_function_call.py: added test file for function calls - -2017-03-03 Daniel Bradburn - - * .gitignore: added .idea to gitignore - -2017-03-03 Daniel Bradburn - - * .gitignore: added .venv to gitignore - -2017-03-01 rocky - - * uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner3.py, uncompyle6/verify.py: COME_FROM for - 3.x POP_EXCEPT, DRY with op_name() ... Start adding COME_FROMs for POP_EXCEPT in preparation for getting - tryelse blocks correct. Simpler opname access functions: - self.op_name(op) is self.opc.opname[op] - self.op_name_from_offset(offset) is - self.opc.opname[self.code[offset]] verify.py: not all offsets are ints - -2017-02-28 rocky - - * README.rst, uncompyle6/parser.py, uncompyle6/parsers/parse26.py: - Python 2.6 a == b or c == d == 3 grammar bug - -2017-02-28 rocky - - * : 2.6 a == b or x == y == z bug - -2017-02-28 rocky - - * test/simple_source/bug26/03_double_equals.py, - uncompyle6/semantics/consts.py: Predidence of cmp_list: x == y == z The x, y, z should not have parenthesis around pairs of them (x == - y) or (y == z) - -2017-02-28 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse27.py: Python 2.7 - check jump targets of "and" - -2017-02-25 rocky - - * ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready - for release 2.9.10 - -2017-02-25 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse26.py: Python 2.6 - parsing bugs .. and some parser list nonterminal cleanup - -2017-02-24 rocky - - * test/simple_source/bug25/03_if_for.py, - uncompyle6/parsers/parse26.py: Python 2.6 control flow bug with - added COME_FROM - -2017-02-22 rocky - - * test/simple_source/bug25/02_try_else.py, - uncompyle6/parsers/parse25.py: Python 2.5 wasn't handling tryelse - properly - -2017-02-20 rocky - - * : New test doesn't --verify correctly. Sigh. - -2017-02-20 rocky - - * test/simple_source/bug33/02_while1.py: Add test for last while1 - bug fix - -2017-02-20 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py: - Python 3.x needs more "while 1" grammar rules - -2017-02-20 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py, - uncompyle6/scanners/scanner3.py: Some Python 3.4 bugss fixed by - using 3.5 rules - -2017-02-20 rocky - - * test/simple_source/exception/02_try_finally.py, - uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: More - COME_FROM's in Python 3... Need this to find boundaries of simple if better - -2017-02-19 rocky - - * uncompyle6/parsers/parse26.py: Marginally better for Python 2.6 - but... control flow is still wrong. - -2017-02-10 rocky - - * : commit f9d47abb2be7c3839df06c0ed69d3d513694af4e Author: rocky - Date: Fri Feb 10 02:07:04 2017 -0500 - -2017-02-10 rocky - - * test/simple_source/bug22/01_ops.py, test/test_pythonlib.py: Beef - up grammar coverage - -2017-01-29 rocky - - * test/Makefile, test/simple_source/bug22/01_ops.py, - uncompyle6/parsers/parse25.py, uncompyle6/semantics/consts.py, - uncompyle6/semantics/pysource.py: Changes based on grammar coverage - info - -2017-01-29 R. Bernstein - - * : Merge pull request #83 from rocky/coverage Coverage - -2017-01-29 rocky - - * test/simple_source/bug22/01_ops.py, test/test_pyenvlib.py: Add - --coverage to test_pyenvlib and ... improve grammar coverage on 2.7 - -2017-01-29 rocky - - * : commit 3dc766d0a9537842470c7b4f79e8ccb3d5a46843 Author: rocky - Date: Sun Jan 29 07:34:49 2017 -0500 - -2017-01-29 rocky - - * test/test_pythonlib.py: Add --coverage option. WOOT! - -2017-01-27 rocky - - * __pkginfo__.py: Bump min spark_parser version - -2017-01-24 rocky - - * uncompyle6/scanners/scanner2.py, uncompyle6/semantics/consts.py, - uncompyle6/semantics/pysource.py: More 2.6, 2.7 control flow Todo more COME_FROMs but now need to check targets better. In some - cases we're relying on grammar ambiguity to work out right and in - 2.7 it doesn't - -2017-01-24 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py, - uncompyle6/scanners/scanner2.py, uncompyle6/semantics/consts.py, - uncompyle6/semantics/pysource.py: More 2.6, 2.7 control-flow bugs Wasn't limiting exception clause to try finally. Probably still has - bugs in try-finally nesting Add another 2.6/2.7 COME_FROM to try to limit if/end scope better - -2017-01-23 rocky - - * uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py, uncompyle6/verify.py: Improve - Python 2.6 & 2.7 verification - -2017-01-22 rocky - - * uncompyle6/parsers/parse30.py, uncompyle6/verify.py: Fix up Python - 3.0 handling - -2017-01-21 rocky - - * : commit 545a46dffaa0fe2246dd7cc1b560c58db525c2b4 Author: rocky - Date: Sat Jan 21 06:24:31 2017 -0500 - -2017-01-20 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py, - uncompyle6/semantics/pysource.py: Handle BUILD_CONST_KEY_MAP as a - varargs custom rules with BUILD_CONST_KEY_MAP are pinned to the specific - number of args seen. - -2017-01-19 R. Bernstein - - * : Merge pull request #81 from moagstar/BUILD_CONST_KEY_MAP fixed bug with BUILD_CONST_KEY_MAP - -2017-01-19 R. Bernstein - - * : Merge pull request #80 from moagstar/BUILD_CONST_KEY_MAP Build const key map - -2017-01-18 Daniel Bradburn - - * uncompyle6/semantics/pysource.py: added generation of dict display - from BUILD_CONST_KEY_MAP - -2017-01-18 Daniel Bradburn - - * pytest/test_build_const_key_map.py: fixed typo - -2017-01-18 Daniel Bradburn - - * pytest/test_build_const_key_map.py: added some more test cases for - BUILD_CONST_KEY_MAP - -2017-01-17 Daniel Bradburn - - * pytest/test_build_const_key_map.py: simplified test cases for - test_build_const_key_map - -2017-01-17 Daniel Bradburn - - * pytest/test_build_const_key_map.py, pytest/validate.py: added - validation code for checking decompilation of an expression - -2017-01-15 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: - Handle 3.6 BUILD_CONST_KEYMAP - -2017-01-15 rocky - - * uncompyle6/scanners/scanner2.py: Python 2.1 doesn't have FOR_ITER - or GET_ITER... adjust locgic for this fact - -2017-01-12 rocky - - * uncompyle6/__init__.py: sys.recursionlimit is optional, not - essential - -2017-01-11 rocky - - * : commit b131c20e99514d3a969a51e841d3a823017f1beb Author: rocky - Date: Wed Jan 11 21:32:26 2017 -0500 - -2017-01-11 rocky - - * ChangeLog, NEWS: Get ready for release 2.10.9 - -2017-01-11 R. Bernstein - - * : Merge pull request #79 from rocky/revert-78-patch-1 Revert "fix bug : not generate all files when use "-ro"" - -2017-01-11 R. Bernstein - - * : Merge pull request #78 from jlugjb/patch-1 fix bug : not generate all files when use "-ro" - -2017-01-10 rocky - - * test/simple_source/bug35/03_double_star_unpack.py, - uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: - Improve BUILD_xxx_UNPACK slightly - -2017-01-09 rocky - - * test/simple_source/bug35/03_async_await.py, - uncompyle6/parsers/parse3.py, uncompyle6/semantics/pysource.py: Add - async_call_function for 3.5+ - -2017-01-09 rocky - - * : Reinstate test - -2017-01-08 rocky - - * : Works now - -2017-01-08 rocky - - * uncompyle6/parsers/parse30.py, uncompyle6/scanners/scanner3.py: - Python 3.0 decompile bugs - -2017-01-08 rocky - - * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner30.py: Towards better 3.0 decompilation Sync scanner2 and scanner3 better - -2017-01-08 rocky - - * test/simple_source/bug35/03_while-if-break.py, - uncompyle6/parsers/parse35.py, uncompyle6/scanner.py, - uncompyle6/scanners/scanner3.py: Fix 3.5, 3.6 while true if/break - bug - -2017-01-08 rocky - - * uncompyle6/__init__.py, uncompyle6/main.py, - uncompyle6/semantics/consts.py, uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Misc cleanups Favor "decompile" over "uncompyle" since "decompile" is in common - use Reduce size of pysource.py by splitting out constants - -2017-01-08 rocky - - * test/simple_source/bug35/03_async_await.py, - uncompyle6/parsers/parse35.py, uncompyle6/scanners/scanner3.py, - uncompyle6/semantics/pysource.py: Add 3.5+ async with/for .. scanner3.py: 3.6 bytecode vs wordcode fix - -2017-01-07 rocky - - * test/simple_source/bug35/03_async_await.py, - uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py: - Start to add 3.5+ await and async - -2017-01-07 rocky - - * test/simple_source/bug31/04_def_annotate.py, - uncompyle6/semantics/make_function.py: More Python 3 annotation bugs - -2017-01-07 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse31.py, - uncompyle6/parsers/parse32.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py: Fix some errors in deparsing - Python 3 annotations - -2017-01-07 rocky - - * uncompyle6/semantics/make_function.py: Small Pyhton 3.x annotate - bug - -2017-01-03 rocky - - * README.rst: Note what's up with Python 3 decompile quality - -2017-01-03 rocky - - * uncompyle6/scanners/scanner3.py: 3.5 continue check is needed on - 3.6 - -2017-01-03 rocky - - * test/test_pyenvlib.py, uncompyle6/parsers/parse36.py, - uncompyle6/scanners/scanner3.py: Towards better 3.6 support - -2017-01-02 rocky - - * uncompyle6/parsers/parse35.py, uncompyle6/scanners/scanner3.py: - Python 3.5 continue detection bug - -2017-01-01 rocky - - * uncompyle6/scanners/scanner3.py: add come_from for setup_finally - and setup_except - -2017-01-01 rocky - - * uncompyle6/parsers/parse35.py, uncompyle6/scanners/scanner3.py: - Towards fixing Python 3.5 return bugs - -2017-01-01 rocky - - * README.rst: Note how to verify correctness ... with --verify, --weak-verify and cross checking with pycdc - -2016-12-31 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.9.9 - -2016-12-31 rocky - - * uncompyle6/parsers/parse26.py: 2.x list_if may have a THEN in it - -2016-12-31 rocky - - * uncompyle6/scanners/scanner3.py: Towards fixing a Python 3.3 - return/continue bug - -2016-12-30 rocky - - * uncompyle6/main.py: On --verify if we can't unbuffer output, don't - -2016-12-29 rocky - - * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py: - dectect_structure() -> detect_control_flow() - -2016-12-29 rocky - - * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py: - DRY code and emitted Python 3 source * Python 3: break; continue -> break * Use variable in detect_structure for pre[rtarget] * Make Python 2 and Python 3 detect_structure more alie - -2016-12-29 rocky - - * uncompyle6/scanners/scanner3.py: More if/then detection in Python - 3.x - -2016-12-29 R. Bernstein - - * : Merge pull request #73 from rocky/then-crap Add THEN token to improve Python 2.2-2.6 control flow detection - -2016-12-28 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/scanners/tok.py: Misc - bugs - -2016-12-28 rocky - - * : commit 723fa5dfed5bb198c66741c594e2c277ded88970 Author: rocky - Date: Wed Dec 28 18:57:09 2016 -0500 - -2016-12-28 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse33.py: Towards fixing a 3.2 while true: ... - break bug - -2016-12-28 rocky - - * test/Makefile, uncompyle6/main.py, uncompyle6/parsers/parse26.py, - uncompyle6/verify.py: Bugs in Python 2.6- "and" and "lambda" - handling .. and clean up verify output - -2016-12-27 rocky - - * uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py, uncompyle6/semantics/pysource.py: - WIP : Add THEN to disambigute from "and" - -2016-12-27 rocky - - * uncompyle6/scanners/scanner2.py: Make 2.6 and 2.7 ingest more - alike - -2016-12-26 rocky - - * : Update 2.7 bytecode file for last fix - -2016-12-26 R. Bernstein - - * : Merge pull request #71 from jiangpengcheng/tupple_bug tupples which contain only 1 element need a comma - -2016-12-26 jiangpch - - * uncompyle6/semantics/pysource.py: tupples which contain only 1 - element need a comma - -2016-12-26 rocky - - * uncompyle6/parsers/parse25.py: fix bug in using python2 AST rules - in python 2.5 - -2016-12-26 rocky - - * : commit f1a947f106b231fb1480ba301b15e3ceaf78c94f Author: rocky - Date: Mon Dec 26 00:43:02 2016 -0500 - -2016-12-25 rocky - - * uncompyle6/scanners/scanner23.py, - uncompyle6/scanners/scanner24.py, uncompyle6/semantics/pysource.py, - uncompyle6/verify.py: Scanner call fixes. NAME_MODULE removal for - <=2.4 - -2016-12-24 rocky - - * uncompyle6/parsers/astnode.py, uncompyle6/parsers/parse2.py, - uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner15.py, - uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner21.py, - uncompyle6/scanners/scanner22.py, - uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: - Lint - -2016-12-24 rocky - - * uncompyle6/semantics/pysource.py: Remove stray debug hook - -2016-12-20 rocky - - * uncompyle6/semantics/pysource.py: Bang on 3.6 - build_map_unpack_with_call Probably will fix better in the future. - -2016-12-18 rocky - - * uncompyle6/bin/pydisassemble.py, uncompyle6/bin/uncompile.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse25.py, - uncompyle6/parsers/parse27.py, uncompyle6/parsers/parse3.py, - uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner3.py: - Python flake8 crap Was testing realgud's C-x!8 (goto flake8 warning/error) - -2016-12-18 rocky - - * pytest/.gitignore, test/simple_source/bug25/02_try_else.py, - uncompyle6/parsers/parse25.py, uncompyle6/parsers/parse26.py: Python - 2.5 mistaken try/else - -2016-12-17 rocky - - * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner25.py: - show-asm on python2.5 is optional make scanner2 look a little more like scanner3 - -2016-12-16 rocky - - * NEWS: Release 2.9.8 news - -2016-12-16 rocky - - * __pkginfo__.py, uncompyle6/version.py: Get ready for release 2.9.8 - -2016-12-16 rocky - - * test/simple_source/bug35/02_build_map_unpack_with_call.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse35.py, - uncompyle6/parsers/parse36.py, uncompyle6/scanners/scanner3.py, - uncompyle6/semantics/pysource.py: Start to handle 3.5 - build_map_unpack_with_call 3.6 also started but needs even more work - -2016-12-15 rocky - - * uncompyle6/scanner.py, uncompyle6/scanners/scanner3.py: Some - Python 3.6 bytecode->wordcode fixes - -2016-12-13 rocky - - * uncompyle6/semantics/fragments.py: Was passing wrong type - -2016-12-11 rocky - - * uncompyle6/parser.py: option -g: show start-end range when - possible - -2016-12-11 rocky - - * uncompyle6/semantics/make_function.py, uncompyle6/verify.py: two - misc changes - track print_docstring move to help (used in python 3.1) - verify: allow RETURN_VALUE to match RETURN_END_IF - -2016-12-10 rocky - - * .travis.yml, test/Makefile: 3.2 needs --weak-verify - -2016-12-10 rocky - - * .travis.yml: Try testing on 3.2 - -2016-12-10 rocky - - * __pkginfo__.py, uncompyle6/bin/uncompile.py: Can run in Python 3.1 - and Python 3.2 - -2016-12-10 rocky - - * test/Makefile, uncompyle6/parsers/parse3.py, - uncompyle6/scanners/scanner3.py: Another python 3 ELSE fixes and ... Makefile: - test python 3.0 bytecode - turn full --verify back on Python 3.x - -2016-12-10 rocky - - * uncompyle6/scanners/scanner3.py: Another faulty Python3 ELSE tag - remove - -2016-12-09 rocky - - * pytest/test_grammar.py: Grammar check: ELSE on RHS is ok. - -2016-12-09 rocky - - * uncompyle6/scanners/tok.py, uncompyle6/verify.py: Back of some of - the verification changes - -2016-12-09 rocky - - * : commit a5d2237435ee51e681c73db9e7ea379d56456205 Author: rocky - Date: Fri Dec 9 21:10:10 2016 -0500 - -2016-12-04 rocky - - * ChangeLog, NEWS, uncompyle6/main.py, uncompyle6/parser.py, - uncompyle6/parsers/parse26.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse34.py, uncompyle6/parsers/parse35.py, - uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner23.py, uncompyle6/scanners/scanner24.py, - uncompyle6/scanners/scanner3.py, uncompyle6/scanners/tok.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py, uncompyle6/verify.py, - uncompyle6/version.py: Get ready for release 2.9.7 Some of the many lint things. Linting is kind of stupid though. - -2016-11-28 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse36.py: - Shorten Python3 grammars with + and * - -2016-11-28 rocky - - * __pkginfo__.py, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py: Try new spark 2.5.1 grammar syntax - shortcuts This package I now declare stable - -2016-11-28 R. Bernstein - - * README.rst: Update README.rst - -2016-11-27 rocky - - * README.rst: Limitations of decompiling control structures. - -2016-11-27 R. Bernstein - - * : Merge pull request #69 from rocky/ast-reduce-checks AST reduce checks - -2016-11-26 rocky - - * test/simple_source/bug26/03_elif_vs_continue.py, - uncompyle6/main.py, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py: Misc changes scanner26.py: make scanner2.py and scanner26.py more alike - scanner2.py: check that return stmt is last in list. (May change) - main.py: show filename on verify error test/*: add more - -2016-11-25 rocky - - * __pkginfo__.py, test/Makefile, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Start - grammar reduction checks - -2016-11-24 rocky - - * uncompyle6/parsers/parse27.py, uncompyle6/scanners/scanner2.py, - uncompyle6/semantics/helper.py, uncompyle6/semantics/pysource.py: - 2.7 grammar bug workaround. Fix docstring bug - -2016-11-24 rocky - - * uncompyle6/semantics/pysource.py: Better line number tracking Indent Python 2 list comprehensions, albeit badly. DRY code a - little via indent_if_source_nl - -2016-11-24 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner2.py: - <2.7 "if" detection and dup Python 3 grammar rule - -2016-11-23 rocky - - * __pkginfo__.py, pytest/test_grammar.py, uncompyle6/parser.py, - uncompyle6/parsers/parse26.py: Python 2.6 grammary bug and.. __pkginfo.py__: Bump spark_parser version for parse_flags 'dups' - -2016-11-23 rocky - - * __pkginfo__.py: Note that we now work on 2.4 and 2.5 - -2016-11-23 rocky - - * : commit 6aa1531972de83ecab15b4c96b89c873ea5a7458 Author: rocky - Date: Wed Nov 23 00:48:38 2016 -0500 - -2016-11-22 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse33.py, uncompyle6/parsers/parse34.py, - uncompyle6/parsers/parse35.py: DRY Python3 grammar - -2016-11-22 rocky - - * uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse27.py, - uncompyle6/scanners/scanner2.py: More detailed COME_FROMs For now we only add COME_FROM_FINALLY and COME_FROM_WITH and even - here only on 2.7 - -2016-11-22 rocky - - * circle.yml, pytest/test_grammar.py, tox.ini, - uncompyle6/parser.py, uncompyle6/parsers/parse2.py, - uncompyle6/parsers/parse27.py: Remove redundant 2.7 (and 2.x) - grammar rules - -2016-11-22 rocky - - * pytest/test_docstring.py, uncompyle6/linenumbers.py, - uncompyle6/semantics/fragments.py, uncompyle6/semantics/helper.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py: Split out print_docstring move from pysource.py to new helper.py - -2016-11-20 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.9.6 - -2016-11-20 R. Bernstein - - * : Merge pull request #68 from rocky/line-mappings Line mappings - -2016-11-20 rocky - - * : Merge remote-tracking branch 'origin' into line-mappings - -2016-11-20 rocky - - * uncompyle6/parsers/parse27.py: Back off a test. That means bugs in 2.7 still not fixed. Sigh. - -2016-11-20 rocky - - * pytest/test_fjt.py, uncompyle6/parsers/parse27.py, - uncompyle6/scanners/scanner2.py: more 2.7 control flow bug fixing - -2016-11-20 rocky - - * uncompyle6/scanners/scanner26.py: Pass debug in scanner26 - find_targets - -2016-11-20 rocky - - * uncompyle6/scanners/scanner3.py: Add debug option on Python 3 - find_jump_targets() - -2016-11-20 rocky - - * uncompyle6/semantics/pysource.py: A little closesr in PyPy 2.7 - list comprehensions pysource.py: note need to handle line breaks in list comprehensions - -2016-11-20 rocky - - * pytest/test_fjt.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py, uncompyle6/scanners/scanner3.py: - Start to improve detect_structure for 2.7 and 2.x Add debug flag to find_jump_targets to show the structure we found. - When there are control-flow bugs, it's often reflected here. scanner3.py: make code make more similar to 2.x code - -2016-11-18 rocky - - * : commit d7f898b4fbf79d1f66eabadb25f0f9f0f38730cb Author: rocky - Date: Fri Nov 18 09:02:00 2016 -0500 - -2016-11-17 R. Bernstein - - * : Merge pull request #67 from rocky/2.6-cf-ignore-if 2.6 cf ignore if - -2016-11-16 rocky - - * test/simple_source/bug26/03_if_vs_and.py, uncompyle6/main.py, - uncompyle6/semantics/check_ast.py, uncompyle6/semantics/pysource.py: - More AST checking Small fixes in output format - -2016-11-15 rocky - - * uncompyle6/parsers/parse23.py, uncompyle6/parsers/parse26.py, - uncompyle6/scanners/scanner2.py: WIP Grammar changes - reinstatng - COME_FROMs around ignore_if's - -2016-11-14 rocky - - * MANIFEST.in: Revise MANIFEST.in with what we have - -2016-11-15 rocky - - * : commit 0f719d41fdf08d41de594abb1664ab42ff92bbdf Author: rocky - Date: Mon Nov 14 20:20:07 2016 -0500 - -2016-11-14 rocky - - * uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py: - WIP remove COME_FROMs around ignore_if's - -2016-11-14 rocky - - * uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py: - WIP remove COME_FROMs around ignore_if's - -2016-11-14 rocky - - * uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py: - Show line numbers in 2.6 "after" asm .. start to understand some of the Python 2.6 bytecode parse failures. - -2016-11-13 rocky - - * README.rst, uncompyle6/verify.py: Handle verify syntax errors... Update README.rst stats - -2016-11-13 rocky - - * setup.py: Administrivia: Fixes #66 - -2016-11-13 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.9.5 - -2016-11-13 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse30.py, - uncompyle6/semantics/make_function.py: Python 3 bugs ... - Was using "while 1 .. else" improperly - docstring indent bug: was indenting docstring improperly - -2016-11-13 rocky - - * README.rst: Revise what works and what doesn't - -2016-11-13 rocky - - * test/simple_source/bug30/02_while1_if_while1.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse30.py, - uncompyle6/scanners/scanner3.py, uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Python 3.0 while1 if bug... Is a workaround. We really need more tagging in of SETUP_LOOP and - COME_FROM. - -2016-11-11 rocky - - * uncompyle6/parser.py, uncompyle6/semantics/check_ast.py, - uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: - Revert augassign change but.. Make note of what's going on and add grammar test for bad situations - we have in Python 2.6 (and perhaps others) - -2016-11-11 rocky - - * test/test_pyenvlib.py, uncompyle6/parser.py, - uncompyle6/semantics/pysource.py: augassign semantic action bug - -2016-11-10 rocky - - * test/simple_source/bug33/02_pos_args.py, - test/simple_source/bug33/03_func_params.py, - uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py: Bug in detecting 3.3 default - value in lambda - -2016-11-10 rocky - - * uncompyle6/main.py, uncompyle6/semantics/check_ast.py, - uncompyle6/semantics/fragments.py, uncompyle6/semantics/pysource.py: - Detect some erroneous decompilations Until we can actually prevent these in grammar rules, we will warn - of improper decompilations. Also, we now stop when we hit a decompile error. Previously we were - not. - -2016-11-10 rocky - - * uncompyle6/semantics/pysource.py: Remove unused imports - -2016-11-07 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse30.py, - uncompyle6/parsers/parse32.py: Possiby tidy grammar - -2016-11-06 rocky - - * __pkginfo__.py: Bump xdis to get correct 3.0 bytecodes - -2016-11-06 rocky - - * uncompyle6/parsers/parse33.py, uncompyle6/parsers/parse34.py: Some - Python 3.4 grammar rules apply to Python 3.3 - -2016-11-06 rocky - - * test/Makefile, test/test_pythonlib.py, - uncompyle6/parsers/parse30.py: Start bytecode 3.0 decompiling - -2016-11-06 rocky - - * uncompyle6/parsers/parse30.py, uncompyle6/scanners/scanner3.py, - uncompyle6/scanners/scanner30.py: Python 3.0 doesn't have POP_JUMP - ops... In some ways Python 3.0 code generation is more like Python 2.6 (and - before) than it is Python 2.7 or 3.0. - -2016-11-05 R. Bernstein - - * : Merge pull request #63 from rocky/python-3.0 Python 3.0 - -2016-11-05 rocky - - * : commit cd3cf5ec2960a733e9fedca9c4549caf33c2d1d0 Author: rocky - Date: Thu Nov 3 21:26:12 2016 -0400 - -2016-11-02 rocky - - * ChangeLog, NEWS, __pkginfo__.py, uncompyle6/version.py: Get ready - for release 2.9.4 - -2016-11-02 rocky - - * README.rst: Update unpyc3 info. - -2016-11-01 rocky - - * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse31.py, uncompyle6/parsers/parse32.py, - uncompyle6/semantics/make_function.py: Clean up annotation grammar a - little - -2016-11-01 rocky - - * test/simple_source/bug31/04_def_annotate.py, - uncompyle6/semantics/make_function.py: Full Python 3 annotations - -2016-10-30 rocky - - * .gitignore, README.rst, test/simple_source/def/03_class_method.py: - Note github unpyc3 and.. - Add source to bytecode_2.2/03_class_method.pyc - more ignore - -2016-10-30 rocky - - * uncompyle6/semantics/make_function.py: More source-code line - indention in make_function.. and remove Python 3 situations from make_function2() - -2016-10-29 rocky - - * uncompyle6/semantics/make_function.py, - uncompyle6/semantics/pysource.py: More annotation processing in to - make_function Move return-value annotation determination from n_mkfunc_annotate to - make_function_annotate which is where other kinds of annotation - handling will also need to be done. - -2016-10-29 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/make_function.py, - uncompyle6/semantics/parser_error.py, - uncompyle6/semantics/pysource.py: Break out make_function() into its - own file. It is already too complex and will get worse in Python 3.6. Note: make_function in fragments.py is still inside and probably - needs fixup. - -2016-10-28 rocky - - * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse31.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse35.py, uncompyle6/semantics/pysource.py: - More complete annotate handling Still have a bit of work to do though. - -2016-10-28 rocky - - * pytest/test_grammar.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse32.py, uncompyle6/parsers/parse33.py, - uncompyle6/parsers/parse34.py, uncompyle6/semantics/pysource.py: - Expand annotate return to Python 3.4 - -2016-10-28 rocky - - * pytest/test_grammar.py, uncompyle6/parsers/parse31.py, - uncompyle6/parsers/parse32.py, uncompyle6/semantics/pysource.py: - Expand annotate handling to 3.3 (and possibly 3.2) - DRY Python 3.1-3.3 grammar a little - -2016-10-28 rocky - - * uncompyle6/parser.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse31.py, uncompyle6/parsers/parse32.py, - uncompyle6/parsers/parse33.py, uncompyle6/parsers/parse35.py: Split - out 3.1-3.3 parsers from parser3.py This is anticipation of extending annotation to Python 3.2+ - -2016-10-27 rocky - - * test/simple_source/bug31/04_def_annotate.py, - test/simple_source/bug31/04_def_attr.py, - uncompyle6/parsers/parse31.py, uncompyle6/semantics/pysource.py: - Clean and fix Python 3 annotate arg return - -2016-10-26 rocky - - * __pkginfo__.py: Dependencies stay within 2nd semantic level - -2016-10-26 rocky - - * ChangeLog, NEWS, uncompyle6/version.py: Get ready for release - 2.9.3 - -2016-10-26 rocky - - * test/simple_source/bug31/04_def_attr.py, - uncompyle6/parsers/parse31.py, uncompyle6/scanner.py, - uncompyle6/semantics/pysource.py: Start to attack Python 3.1 def() - -> xx construct Start to localize make_function routines by Python version - -2016-10-25 rocky - - * __pkginfo__.py, uncompyle6/parser.py, - uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse31.py: Split - out Python 3.1 parser from rest. __pkginfo__.py: use Python 3.1 bytecode fixes - -2016-10-25 rocky - - * uncompyle6/parsers/parse3.py: Handle Python 3.1 "with ... as" - statement - -2016-10-24 rocky - - * test/Makefile: Add python 3.1 bytecode testing - -2016-10-24 rocky - - * test/simple_source/stmts/07_withstmt_fn.py, - uncompyle6/parsers/parse3.py: Python 3.1 "with" statement bug - -2016-10-24 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/parsers/parse34.py, - uncompyle6/parsers/parse35.py: Python 3.1 compile bug. DRY Python - 3.x rules ... via inheritance - -2016-10-24 rocky - - * uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: Fix - some Python 3.1 bugs - -2016-10-24 rocky - - * Makefile, test/Makefile, test/test_pyenvlib.py, - uncompyle6/bin/uncompile.py, uncompyle6/parser.py, - uncompyle6/parsers/parse3.py, uncompyle6/scanner.py, - uncompyle6/scanners/scanner3.py: Start Python 3.0 decoding Fix some Python 3.1 bugs - -2016-10-22 Daniel Bradburn - - * : Merge pull request #60 from rocky/buildstring Buildstring - -2016-10-22 rocky - - * pytest/test_fstring.py, test/simple_source/bug36/01_fstring.py, - uncompyle6/semantics/pysource.py: Move fstring rules inside a 3.6+ - check - -2016-10-22 rocky - - * : commit d6f7ef4e178e04d9a612d3a6c0b77a008732357f Author: rocky - Date: Fri Oct 21 07:40:35 2016 -0400 - -2016-10-20 moagstar - - * pytest/test_fstring.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py: - further work on supporting single and multiple fstring decompilation - -2016-10-20 rocky - - * uncompyle6/main.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py: DRY Python 2.x unmangle_classname main.py: small typo: Disassembled -> Decompiled - -2016-10-19 moagstar - - * pytest/test_fstring.py, uncompyle6/parsers/parse3.py, - uncompyle6/parsers/parse36.py, uncompyle6/semantics/pysource.py: - urther work on fstrings for python 3.6 - there is a new opcode - build_string which is used to improve fstring performance, but broke - the fstring support in uncompyle - -2016-10-15 rocky - - * uncompyle6/main.py: Change meta data info in uncompyle6: * Show file size of source when possible, i.e. in Python 3.x * Show full information about python interpreter used to decompile - -2016-10-15 rocky - - * ChangeLog, NEWS, __pkginfo__.py, requirements.txt, - uncompyle6/version.py: Get ready for release 2.9.2 - -2016-10-14 rocky - - * : commit a7ef513849cc2564b35636d3865561242e46e63f Author: rocky - Date: Fri Oct 14 21:34:55 2016 -0400 - -2016-10-14 rocky - - * uncompyle6/parsers/parse26.py: Python 2.6- _ifstmst_jump bug - -2016-10-13 rocky - - * uncompyle6/semantics/pysource.py: Pretty-print constant tuples - -2016-10-13 rocky - - * uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py: 2.6 and before: try_middle - come_from per except - -2016-10-13 rocky - - * uncompyle6/parsers/parse26.py, uncompyle6/scanners/scanner2.py, - uncompyle6/scanners/scanner26.py: 2.6 try statement (and below) They may neeed arbitrary come_froms for each except clause - -2016-10-13 rocky - - * uncompyle6/semantics/pysource.py: Bug in handling kv, kv2 - -2016-10-13 rocky - - * test/simple_source/stmts/08_source_linebreaks.py, - uncompyle6/semantics/pysource.py: Start to track line breaks on - lists - -2016-10-11 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: DRY fragments.py preorder code pysource.py: doc typo - -2016-10-11 rocky - - * __pkginfo__.py, requirements.txt: Need xdis 3.0.2 for Python 1.5 - bug fixes - -2016-10-11 rocky - - * __pkginfo__.py, requirements.txt, test/Makefile, - test/test_pythonlib.py, uncompyle6/scanners/scanner26.py: Fix Python - 1.5 bytecode deparse Need xdis 3.0.2 though since the bug is really there. - -2016-10-11 rocky - - * test/Makefile, test/test_pythonlib.py, - uncompyle6/scanners/scanner26.py: Fix python 1.5 decompile bugs ... add bytecode 1.5 tests from decompyle - -2016-10-10 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Map expression with - source-directed linebreaks ... for Python 3.4 and 3.5 - -2016-10-10 rocky - - * uncompyle6/semantics/fragments.py, - uncompyle6/semantics/pysource.py: Start using source linebreaks in - formatting... .. large literals like maps and dicts, and tuples - -2016-10-10 rocky - - * ChangeLog, NEWS, README.rst, __pkginfo__.py, requirements.txt, - uncompyle6/version.py: Get ready for release 2.9.1 - -2016-10-10 rocky - - * uncompyle6/parsers/parse15.py, uncompyle6/scanners/scanner15.py, - uncompyle6/semantics/pysource.py: Python 1.5 scanner and parser and - .. .. slightly improved Forgot to check in files before. Handle Python pre 2.2. classes - -2016-10-10 rocky - - * ChangeLog, NEWS, __pkginfo__.py, requirements.txt, - uncompyle6/disas.py, uncompyle6/main.py, uncompyle6/parser.py, - uncompyle6/parsers/parse2.py, uncompyle6/scanner.py, - uncompyle6/scanners/scanner2.py, uncompyle6/scanners/scanner26.py, - uncompyle6/verify.py, uncompyle6/version.py: Get ready for release - 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 -