You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 01:09:52 +08:00
Compare commits
82 Commits
release-2.
...
release-2.
Author | SHA1 | Date | |
---|---|---|---|
|
affc504418 | ||
|
ecbbc7dfea | ||
|
6c5bd6289f | ||
|
9f0b0809b1 | ||
|
f0a8505887 | ||
|
04cc80b0d6 | ||
|
281f429223 | ||
|
8cfecff9c4 | ||
|
116b6eb468 | ||
|
2509d212e5 | ||
|
96b83c3d85 | ||
|
a3e10db8dc | ||
|
7e1aa6a34d | ||
|
476eb50868 | ||
|
285444e19a | ||
|
aed4d23c34 | ||
|
1c50e34c30 | ||
|
808e468e5e | ||
|
936b213cec | ||
|
21683719e1 | ||
|
9754d27597 | ||
|
7e8173b076 | ||
|
ca9888ace4 | ||
|
070b7dab7b | ||
|
44d95e40e6 | ||
|
f6f3ad362b | ||
|
21377f3b43 | ||
|
a5f45f232d | ||
|
7c4316d4fb | ||
|
d1ef0bf21b | ||
|
063e517a7c | ||
|
4a3a62d01b | ||
|
ea733c31d7 | ||
|
63ec3f934a | ||
|
7c261d8495 | ||
|
942b15e3c6 | ||
|
69e65463b7 | ||
|
cd8cbf9200 | ||
|
accc959b71 | ||
|
0ee52aeeef | ||
|
c9d1f72424 | ||
|
29990c8da0 | ||
|
4e6e38358d | ||
|
fb870ccd8d | ||
|
7b7a9fa4cf | ||
|
1e25ffa879 | ||
|
7cc55f0c5f | ||
|
723ba1365f | ||
|
6a125d49d8 | ||
|
fd0d8d2567 | ||
|
772c67fcd7 | ||
|
bc86b73cf0 | ||
|
b99f196d18 | ||
|
78f24f9c66 | ||
|
55b269f744 | ||
|
8e0413273b | ||
|
c10b9babbe | ||
|
9fdf70f68d | ||
|
f571f6dfce | ||
|
59ba8a65cd | ||
|
9c2f48ca4a | ||
|
44dba42a40 | ||
|
af62286357 | ||
|
3cd3f7ccdf | ||
|
52b71bb01a | ||
|
c098b834fa | ||
|
15bb9e3823 | ||
|
21da5e787e | ||
|
b44c566a9f | ||
|
65b9ecee31 | ||
|
047c95a1e5 | ||
|
5f9f8f4d79 | ||
|
ac45e5757c | ||
|
e40d5d3897 | ||
|
ae78e9f930 | ||
|
0075c8a5f7 | ||
|
d6b35d57e4 | ||
|
11eddb7940 | ||
|
ec66dc0639 | ||
|
e31f829a56 | ||
|
61535a010d | ||
|
62e60817f6 |
484
ChangeLog
484
ChangeLog
@@ -1,6 +1,488 @@
|
||||
2016-07-26 rocky <rb@dustyfeet.com>
|
||||
|
||||
* README.rst, __pkginfo__.py, requirements.txt,
|
||||
test/test_pyenvlib.py, uncompyle6/version.py: Get ready for release
|
||||
2.7.1
|
||||
|
||||
2016-07-26 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right,
|
||||
uncompyle6/scanners/tok.py: Instruction formatting - yet again
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
|
||||
uncompyle6/semantics/pysource.py: Add grammar for PyPy 2-arg assert
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parser.py, uncompyle6/parsers/parse2.py: Handle PyPy
|
||||
BUILD_MAP_0 where actual kw_args > 0
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py: Clean
|
||||
up PyPy load_attr grammar rules
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* Makefile: Enable more PyPy testing
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* test/Makefile: Start checking PyPy bytecodes
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* test/Makefile, uncompyle6/scanners/pypy27.py,
|
||||
uncompyle6/scanners/pypy32.py: Add pypy scanners
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* __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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse2.py: add_custom_rules() in 2.x and 3.x
|
||||
are more alike
|
||||
|
||||
2016-07-25 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* Makefile, test/Makefile, uncompyle6/parsers/parse2.py,
|
||||
uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py: More
|
||||
PyPy LOOKUP_METHOD rules
|
||||
|
||||
2016-07-24 rocky <rb@dustyfeet.com>
|
||||
|
||||
* Makefile, __pkginfo__.py, pytest/test_fjt.py, requirements.txt,
|
||||
test/Makefile, test/test_pythonlib.py,
|
||||
uncompyle6/parsers/parse2.py, uncompyle6/parsers/parse3.py,
|
||||
uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
|
||||
uncompyle6/scanners/scanner3.py, uncompyle6/semantics/pysource.py:
|
||||
PyPy support * Use proper PYPY 32 opcodes * handle opcodes LOOKUP_METHOD and CALL_METHOD * Administrative stuff for PyPy
|
||||
|
||||
2016-07-24 rocky <rb@dustyfeet.com>
|
||||
|
||||
* test/add-test.py: add-test: Make sure PyPy bytecode is separated
|
||||
|
||||
2016-07-24 rocky <rb@dustyfeet.com>
|
||||
|
||||
* : commit 21683719e1a07d51095d32200ec294d659746474 Author: rocky
|
||||
<rb@dustyfeet.com> Date: Sun Jul 24 04:16:54 2016 -0400
|
||||
|
||||
2016-07-24 rocky <rb@dustyfeet.com>
|
||||
|
||||
* : commit 7e8173b07620c344a73660b354f05a61c4723d18 Author: rocky
|
||||
<rb@dustyfeet.com> Date: Sun Jul 24 03:44:26 2016 -0400
|
||||
|
||||
2016-07-23 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* : commit a5f45f232decad2e74bfdf476255604273fd95fd Author: rocky
|
||||
<rb@dustyfeet.com> Date: Sat Jul 23 10:37:41 2016 -0400
|
||||
|
||||
2016-07-21 rocky <rb@dustyfeet.com>
|
||||
|
||||
* __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 <rb@dustyfeet.com>
|
||||
|
||||
* HISTORY.md, README.rst: Update HISTORY and add link to it in
|
||||
README.md
|
||||
|
||||
2016-07-17 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/scanners/scanner3.py: Respect after/both option in
|
||||
scanner3
|
||||
|
||||
2016-07-17 rocky <rb@dustyfeet.com>
|
||||
|
||||
* pytest/testdata/if-2.7.right, pytest/testdata/ifelse-2.7.right:
|
||||
Adjust test data for changed disasm output
|
||||
|
||||
2016-07-16 rocky <rb@dustyfeet.com>
|
||||
|
||||
* : commit 942b15e3c62963b32aaba877fd451ffe304c07a9 Author: rocky
|
||||
<rb@dustyfeet.com> Date: Sat Jul 16 14:12:31 2016 -0400
|
||||
|
||||
2016-07-16 rocky <rb@dustyfeet.com>
|
||||
|
||||
* README.rst: More explicit usage info
|
||||
|
||||
2016-07-15 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for
|
||||
release 2.7.0
|
||||
|
||||
2016-07-14 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* : Reinstate some code for verification
|
||||
|
||||
2016-07-13 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/main.py: Back off showing verification errors Pending why this failing in make.
|
||||
|
||||
2016-07-13 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* : commit fd0d8d25672b9450bafc1d5c6781bedd7ec8bd1d Author: rocky
|
||||
<rb@dustyfeet.com> Date: Wed Jul 13 13:00:03 2016 -0400
|
||||
|
||||
2016-07-13 rocky <rb@dustyfeet.com>
|
||||
|
||||
* test/simple_source/stmts/11_return_val.py,
|
||||
uncompyle6/semantics/pysource.py: Debugging smutz caused verify
|
||||
failures
|
||||
|
||||
2016-07-12 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse3.py, uncompyle6/semantics/fragments.py,
|
||||
uncompyle6/semantics/pysource.py: Document/correct hide_internal and
|
||||
store_locals
|
||||
|
||||
2016-07-12 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for
|
||||
release 2.6.2
|
||||
|
||||
2016-07-11 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* test/simple_source/def/05_static_method.py: Add missing a test
|
||||
source file
|
||||
|
||||
2016-07-11 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/scanners/scanner2.py: Revert recent 2.x code which fail
|
||||
verification
|
||||
|
||||
2016-07-10 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/scanner.py, uncompyle6/scanners/scanner2.py,
|
||||
uncompyle6/scanners/scanner3.py: DRY and clean up code a little
|
||||
|
||||
2016-07-10 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/scanners/scanner3.py: Python 2/3 compatibility bug
|
||||
|
||||
2016-07-10 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse3.py, uncompyle6/scanners/scanner3.py:
|
||||
Bugs caused by 3.x jump_forward misclasification
|
||||
|
||||
2016-07-10 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse34.py: 3.4 continue handling. More work is
|
||||
needed
|
||||
|
||||
2016-07-09 rocky <rb@dustyfeet.com>
|
||||
|
||||
* __pkginfo__.py: Need xdis 2.4 bugfix
|
||||
|
||||
2016-07-09 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parser.py, uncompyle6/parsers/parse3.py,
|
||||
uncompyle6/parsers/parse34.py: Start splitting off 3.4 grammar from
|
||||
rest
|
||||
|
||||
2016-07-09 rocky <rb@dustyfeet.com>
|
||||
|
||||
* test/simple_source/comprehension/01_list_comprehension.py,
|
||||
uncompyle6/parsers/parse23.py: Python 2.3 list comprehensions
|
||||
|
||||
2016-07-09 rocky <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse23.py: 2.3 while1stmt bug
|
||||
|
||||
2016-07-09 rocky <rb@dustyfeet.com>
|
||||
|
||||
* : commit ac45e5757c8c57af2c918c79ff4f6195268afec1 Author: rocky
|
||||
<rocky@gnu.org> Date: Sat Jul 9 05:59:02 2016 -0400
|
||||
|
||||
2016-07-09 rocky <rb@dustyfeet.com>
|
||||
|
||||
* uncompyle6/parsers/parse23.py: Merge conflict
|
||||
|
||||
2016-07-09 rocky <rocky@gnu.org>
|
||||
|
||||
* uncompyle6/scanners/scanner3.py: Python3 scanner code cleanup
|
||||
|
||||
2016-07-08 rocky <rocky@gnu.org>
|
||||
|
||||
* README.rst, uncompyle6/version.py: Get ready for release 2.6.1
|
||||
* 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 <rb@dustyfeet.com>
|
||||
|
||||
* 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 <rocky@gnu.org>
|
||||
|
||||
* : Add more 2.4 and 2.6 tests
|
||||
|
||||
2016-07-08 rocky <rocky@gnu.org>
|
||||
|
||||
* uncompyle6/parsers/parse24.py: 2.4 "import *" grammar rule
|
||||
|
||||
2016-07-08 rocky <rocky@gnu.org>
|
||||
|
||||
* 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 <rocky@gnu.org>
|
||||
|
||||
* __pkginfo__.py, uncompyle6/parsers/parse24.py,
|
||||
uncompyle6/scanners/scanner2.py: <2.5 grammar customizations for
|
||||
imports and loops
|
||||
|
||||
2016-07-08 rocky <rocky@gnu.org>
|
||||
|
||||
* __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 <rocky@gnu.org>
|
||||
|
||||
* ChangeLog, NEWS, README.rst, uncompyle6/version.py: Get ready for
|
||||
release 2.6.1
|
||||
|
||||
2016-07-08 rocky <rocky@gnu.org>
|
||||
|
||||
|
@@ -112,8 +112,7 @@ Fenx's uncompyle3 which I used for inspiration for Python3 support.
|
||||
I started working on this late 2015, mostly to add fragment support.
|
||||
In that, I decided to make this runnable on Python 3.2+ and Python 2.6+
|
||||
while, handling Python bytecodes from Python versions 2.5+ and
|
||||
3.2+. (I think I could go back further, but I'd consider doing that
|
||||
only after code is better cleaned up and supports Python 3 better.)
|
||||
3.2+.
|
||||
|
||||
Over the many years, code styles and Python features have
|
||||
changed. However brilliant the code was and still is, it hasn't really
|
||||
|
8
Makefile
8
Makefile
@@ -40,6 +40,14 @@ check-3.2 check-3.5:
|
||||
check-2.6:
|
||||
$(MAKE) -C test $@
|
||||
|
||||
#:PyPy 2.6.1 or PyPy 5.0.1
|
||||
# Skip for now
|
||||
2.6 5.0:
|
||||
|
||||
#:PyPy pypy3-2.4.0 Python 3:
|
||||
pypy-3.2 2.4:
|
||||
$(MAKE) -C test $@
|
||||
|
||||
#: Run py.test tests
|
||||
pytest:
|
||||
$(MAKE) -C pytest check
|
||||
|
22
NEWS
22
NEWS
@@ -1,3 +1,25 @@
|
||||
uncompyle6 2.7.1 2016-07-26
|
||||
|
||||
- PyPy bytecodes for 2.7 and 3.2 added
|
||||
- Instruction formatting improved slightly
|
||||
- 2.7 bytecode "continue" bug fixed
|
||||
|
||||
uncompyle6 2.7.0 2016-07-15
|
||||
|
||||
- Many Syntax and verifification bugs removed
|
||||
tested on standard libraries from 2.3.7 to 3.5.1
|
||||
and they all decompile and verify fine.
|
||||
I'm sure there are more bugs though.
|
||||
|
||||
uncompyle6 2.6.2 2016-07-11 Manhattenhenge
|
||||
|
||||
- Extend bytecodes back to 2.3
|
||||
- Fix bugs:
|
||||
* 3.x and 2.7 set comprehensions,
|
||||
* while1 loops
|
||||
* continue statements
|
||||
- DRY and segregate grammar more
|
||||
|
||||
uncompyle6 2.6.1 2016-07-08
|
||||
|
||||
- Go over Python 2.5 bytecode deparsing
|
||||
|
66
README.rst
66
README.rst
@@ -11,19 +11,20 @@ Introduction
|
||||
------------
|
||||
|
||||
*uncompyle6* translates Python bytecode back into equivalent Python
|
||||
source code. It accepts bytecodes from Python version 2.5 to 3.5 or
|
||||
so. The code requires Python 2.6 or later and has been tested on Python
|
||||
running versions 2.6, 2.7, 3.2, 3.3, 3.4 and 3.5.
|
||||
source code. It accepts bytecodes from Python version 2.3 to 3.5 or
|
||||
so, including PyPy bytecode.
|
||||
|
||||
Why this?
|
||||
---------
|
||||
|
||||
There were a number of decompyle, uncompile, uncompyle2, uncompyle3
|
||||
forks around. All of them come basically from the same code base, and
|
||||
almost all of them not maintained very well. This code pulls these together
|
||||
and addresses a number of open issues in those.
|
||||
forks around. All of them came basically from the same code base, and
|
||||
almost all of them no were no longer actively maintained. Only one
|
||||
handled Python 3, and even there, only 3.2. This code pulls these
|
||||
together and moves forward. It also addresses a number of open issues
|
||||
in the previous forks.
|
||||
|
||||
What makes this different from other CPython bytecode decompilers? Its
|
||||
What makes this different from other CPython bytecode decompilers?: its
|
||||
ability to deparse just fragments and give source-code information
|
||||
around a given bytecode offset.
|
||||
|
||||
@@ -39,6 +40,13 @@ location in more detail than just a line number. It can be also used
|
||||
when source-code information does not exist and there is just bytecode
|
||||
information.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
This project requires Python 2.6 or later, PyPy 3-2.4, or PyPy-5.0.1.
|
||||
The bytecode files it can read has been tested on Python bytecodes from
|
||||
versions 2.3-2.7, and 3.2-3.5 and the above-mentioned PyPy versions.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
@@ -76,33 +84,33 @@ Run
|
||||
|
||||
::
|
||||
|
||||
./bin/uncompyle6 -h
|
||||
$ uncompyle6 *compiled-python-file-pyc-or-pyo*
|
||||
|
||||
for usage help.
|
||||
For usage help:
|
||||
|
||||
::
|
||||
|
||||
$ uncompyle6 -h
|
||||
|
||||
|
||||
Known Bugs/Restrictions
|
||||
-----------------------
|
||||
|
||||
Python 2 deparsing decompiles each and all the Python 2.7.10 and
|
||||
2.7.11 installed packages I have on my system, more than 90% verify
|
||||
ok. Some of these failures may be bugs in the verification process.
|
||||
At this point, 2.7 decompilation is better than uncompyle2. A number
|
||||
of bugs have been fixed over what was in uncompyle2.
|
||||
Python 2 deparsing decompiles and about 90% verifies from Python 2.3.7 to Python
|
||||
3.4.2 on the standard library packages I have on my system.
|
||||
|
||||
All of the Python 3.2-3.5 Python standard lib packages that I have
|
||||
installed on my system deparse. Each Python version has about 200
|
||||
bytecode files. I'm not sure how well these verify though.
|
||||
(Verification is the process of decompiling bytecode, compiling with a
|
||||
Python for that byecode version, and then comparing the byetcode
|
||||
produced by the decompiled/compiled program. Some allowance is made
|
||||
for inessential differences.)
|
||||
|
||||
There are a few constructs that still need to be added to Python 3.5
|
||||
Later distributions average about 200 files. At this point, 2.7
|
||||
decompilation is better than uncompyle2. A number of bugs have been
|
||||
fixed.
|
||||
|
||||
Python 3.5 largely works, but still has some bugs in it.
|
||||
Python 3.6 changes things drastically by using word codes rather than
|
||||
byte codes. So that will be yet another challenge
|
||||
|
||||
Python 2.5 and 2.6 installed library routines also decompile; it is
|
||||
probably the same as uncompyle2, although some 2.6 bugs from
|
||||
uncompyle2 have been fixed. We handle 2.5 and 2.6 bytecode a little
|
||||
bit differently than the way uncompyle2 does so it is harder to assess
|
||||
quality.
|
||||
byte codes, and that needs to be addressed.
|
||||
|
||||
There is lots to do, so please dig in and help.
|
||||
|
||||
@@ -110,14 +118,12 @@ See Also
|
||||
--------
|
||||
|
||||
* https://github.com/zrax/pycdc : supports all versions of Python and is written in C++
|
||||
* https://code.google.com/archive/p/unpyc3/ : supports Python 3.2 only
|
||||
|
||||
The above projects use a different decompiling technique what is used here.
|
||||
|
||||
The HISTORY file.
|
||||
* https://code.google.com/archive/p/unpyc3/ : supports Python 3.2 only. The above projects use a different decompiling technique what is used here.
|
||||
* The HISTORY_ file.
|
||||
|
||||
.. |downloads| image:: https://img.shields.io/pypi/dd/uncompyle6.svg
|
||||
.. _trepan: https://pypi.python.org/pypi/trepan
|
||||
.. _HISTORY: https://github.com/rocky/python-uncompyle6/blob/master/HISTORY.md
|
||||
.. _debuggers: https://pypi.python.org/pypi/trepan3k
|
||||
.. _remake: https://bashdb.sf.net/remake
|
||||
.. _pycdc: https://github.com/zrax/pycdc
|
||||
|
@@ -37,7 +37,7 @@ entry_points={
|
||||
]}
|
||||
ftp_url = None
|
||||
install_requires = ['spark-parser >= 1.4.0',
|
||||
'xdis >= 1.1.4']
|
||||
'xdis >= 2.0.3']
|
||||
license = 'MIT'
|
||||
mailing_list = 'python-debugger@googlegroups.com'
|
||||
modname = 'uncompyle6'
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
from uncompyle6 import PYTHON_VERSION
|
||||
from uncompyle6 import PYTHON_VERSION, IS_PYPY
|
||||
from uncompyle6.scanner import get_scanner
|
||||
from array import array
|
||||
def bug(state, slotstate):
|
||||
@@ -12,7 +12,7 @@ def test_if_in_for():
|
||||
code = bug.__code__
|
||||
scan = get_scanner(PYTHON_VERSION)
|
||||
print(PYTHON_VERSION)
|
||||
if 2.7 <= PYTHON_VERSION <= 3.0:
|
||||
if 2.7 <= PYTHON_VERSION <= 3.0 and not IS_PYPY:
|
||||
n = scan.setup_code(code)
|
||||
scan.build_lines_data(code, n)
|
||||
scan.build_prev_op(n)
|
||||
|
6
pytest/testdata/if-2.7.right
vendored
6
pytest/testdata/if-2.7.right
vendored
@@ -2,11 +2,11 @@
|
||||
# Embedded file name: simple_source/branching/05_if.py
|
||||
|
||||
6 0 LOAD_NAME 0 'True'
|
||||
3 POP_JUMP_IF_FALSE 15 '15'
|
||||
3 POP_JUMP_IF_FALSE 15 'to 15'
|
||||
|
||||
7 6 LOAD_NAME 1 'False'
|
||||
9 STORE_NAME 2 'b'
|
||||
12 JUMP_FORWARD 0 '15'
|
||||
12 JUMP_FORWARD 0 'to 15'
|
||||
15_0 COME_FROM '12'
|
||||
15 LOAD_CONST 0 ''
|
||||
18 RETURN_VALUE ''
|
||||
18 RETURN_VALUE
|
||||
|
6
pytest/testdata/ifelse-2.7.right
vendored
6
pytest/testdata/ifelse-2.7.right
vendored
@@ -2,14 +2,14 @@
|
||||
# Embedded file name: simple_source/branching/05_ifelse.py
|
||||
|
||||
3 0 LOAD_NAME 0 'True'
|
||||
3 POP_JUMP_IF_FALSE 15 '15'
|
||||
3 POP_JUMP_IF_FALSE 15 'to 15'
|
||||
|
||||
4 6 LOAD_CONST 0 1
|
||||
9 STORE_NAME 1 'b'
|
||||
12 JUMP_FORWARD 6 '21'
|
||||
12 JUMP_FORWARD 6 'to 21'
|
||||
|
||||
6 15 LOAD_CONST 1 2
|
||||
18 STORE_NAME 2 'd'
|
||||
21_0 COME_FROM '12'
|
||||
21 LOAD_CONST 2 ''
|
||||
24 RETURN_VALUE ''
|
||||
24 RETURN_VALUE
|
||||
|
@@ -1 +1,2 @@
|
||||
spark-parser >= 1.2.1
|
||||
xdis >= 2.0.3
|
||||
|
@@ -30,33 +30,41 @@ check-3.2: check-bytecode
|
||||
check-3.3: check-bytecode
|
||||
$(PYTHON) test_pythonlib.py --bytecode-3.3 --verify $(COMPILE)
|
||||
|
||||
#: Run working tests from Python 3.5
|
||||
check-3.5: check-bytecode
|
||||
|
||||
#: Run working tests from Python 3.4
|
||||
check-3.4: check-bytecode check-3.4-ok check-2.7-ok
|
||||
$(PYTHON) test_pythonlib.py --bytecode-3.4 --verify $(COMPILE)
|
||||
|
||||
#: Run working tests from Python 3.5
|
||||
check-3.5: check-bytecode
|
||||
$(PYTHON) test_pythonlib.py --bytecode-3.5 --verify $(COMPILE)
|
||||
|
||||
#: Check deparsing only, but from a different Python version
|
||||
check-disasm:
|
||||
$(PYTHON) dis-compare.py
|
||||
|
||||
#: Check deparsing bytecode 2.x only
|
||||
check-bytecode-2:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.3 --bytecode-2.5 --bytecode-2.6 --bytecode-2.7
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.3 --bytecode-2.4 \
|
||||
--bytecode-2.5 --bytecode-2.6 --bytecode-2.7 --bytecode-pypy2.7
|
||||
|
||||
#: Check deparsing bytecode 3.x only
|
||||
check-bytecode-3:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-3.2 --bytecode-3.3 --bytecode-3.4 --bytecode-3.5
|
||||
$(PYTHON) test_pythonlib.py --bytecode-3.2 --bytecode-3.3 \
|
||||
--bytecode-3.4 --bytecode-3.5 --bytecode-pypy3.2
|
||||
|
||||
#: Check deparsing bytecode that works running Python 2 and Python 3
|
||||
check-bytecode: check-bytecode-3
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.5 --bytecode-2.6 --bytecode-2.7
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.3 --bytecode-2.4 \
|
||||
--bytecode-2.5 --bytecode-2.6 --bytecode-2.7 --bytecode-pypy2.7
|
||||
|
||||
#: Check deparsing Python 2.3
|
||||
check-bytecode-2.3:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.3
|
||||
|
||||
#: Check deparsing Python 2.4
|
||||
check-bytecode-2.4:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.4
|
||||
|
||||
#: Check deparsing Python 2.5
|
||||
check-bytecode-2.5:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-2.5
|
||||
@@ -105,6 +113,18 @@ check-3.2-ok:
|
||||
check-3.4-ok:
|
||||
$(PYTHON) test_pythonlib.py --ok-3.4 --verify $(COMPILE)
|
||||
|
||||
#: PyPy of some sort. E.g. [PyPy 5.0.1 with GCC 4.8.4]
|
||||
# Skip for now
|
||||
2.6:
|
||||
|
||||
#: PyPy 5.0.x with Python 2.7 ...
|
||||
pypy-2.7 5.0:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-pypy2.7 --verify
|
||||
|
||||
#: PyPy 2.4.x with Python 3.2 ...
|
||||
pypy-3.2 2.4:
|
||||
$(PYTHON) test_pythonlib.py --bytecode-pypy3.2 --verify
|
||||
|
||||
clean: clean-py-dis clean-dis clean-unverified
|
||||
|
||||
clean-dis:
|
||||
|
@@ -2,12 +2,15 @@
|
||||
""" Trivial helper program to bytecompile and run an uncompile
|
||||
"""
|
||||
import os, sys, py_compile
|
||||
assert len(sys.argv) == 2
|
||||
path = sys.argv[1]
|
||||
short = os.path.basename(path)
|
||||
assert len(sys.argv) >= 2
|
||||
version = sys.version[0:3]
|
||||
cfile = "bytecode_%s/%s" % (version, short) + 'c'
|
||||
print("byte-compiling %s to %s" % (path, cfile))
|
||||
py_compile.compile(path, cfile)
|
||||
if sys.version >= (2, 6, 0):
|
||||
os.system("../bin/uncompyle6 -a -t %s" % cfile)
|
||||
for path in sys.argv[1:]:
|
||||
short = os.path.basename(path)
|
||||
if hasattr(sys, 'pypy_version_info'):
|
||||
cfile = "bytecode_pypy%s/%s" % (version, short) + 'c'
|
||||
else:
|
||||
cfile = "bytecode_%s/%s" % (version, short) + 'c'
|
||||
print("byte-compiling %s to %s" % (path, cfile))
|
||||
py_compile.compile(path, cfile)
|
||||
if isinstance(version, str) or version >= (2, 6, 0):
|
||||
os.system("../bin/uncompyle6 -a -t %s" % cfile)
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
test/bytecode_2.3/01_boolean.pyc
Normal file
BIN
test/bytecode_2.3/01_boolean.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/01_class.pyc
Normal file
BIN
test/bytecode_2.3/01_class.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/01_fns.pyc
Normal file
BIN
test/bytecode_2.3/01_fns.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/01_list_comprehension.pyc
Normal file
BIN
test/bytecode_2.3/01_list_comprehension.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/01_positional.pyc
Normal file
BIN
test/bytecode_2.3/01_positional.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/02_closure.pyc
Normal file
BIN
test/bytecode_2.3/02_closure.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/02_def.pyc
Normal file
BIN
test/bytecode_2.3/02_def.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/02_slice.pyc
Normal file
BIN
test/bytecode_2.3/02_slice.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/03_if_elif.pyc
Normal file
BIN
test/bytecode_2.3/03_if_elif.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/04_raise.pyc
Normal file
BIN
test/bytecode_2.3/04_raise.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/05-ret-or.pyc
Normal file
BIN
test/bytecode_2.3/05-ret-or.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/05_abc_class.pyc
Normal file
BIN
test/bytecode_2.3/05_abc_class.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/05_dup_top_two.pyc
Normal file
BIN
test/bytecode_2.3/05_dup_top_two.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/05_if.pyc
Normal file
BIN
test/bytecode_2.3/05_if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/05_ifelse.pyc
Normal file
BIN
test/bytecode_2.3/05_ifelse.pyc
Normal file
Binary file not shown.
Binary file not shown.
BIN
test/bytecode_2.3/06_classbug.pyc
Normal file
BIN
test/bytecode_2.3/06_classbug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/06_for_break.pyc
Normal file
BIN
test/bytecode_2.3/06_for_break.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/06_list_ifnot.pyc
Normal file
BIN
test/bytecode_2.3/06_list_ifnot.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/06_list_ifnot_and.pyc
Normal file
BIN
test/bytecode_2.3/06_list_ifnot_and.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/06_return_bug.pyc
Normal file
BIN
test/bytecode_2.3/06_return_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/06_return_if.pyc
Normal file
BIN
test/bytecode_2.3/06_return_if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/07_classderef.pyc
Normal file
BIN
test/bytecode_2.3/07_classderef.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/07_classparam.pyc
Normal file
BIN
test/bytecode_2.3/07_classparam.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/07_for_if_continue.pyc
Normal file
BIN
test/bytecode_2.3/07_for_if_continue.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/07_if_return_bug.pyc
Normal file
BIN
test/bytecode_2.3/07_if_return_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/07_try_pass.pyc
Normal file
BIN
test/bytecode_2.3/07_try_pass.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/09_class_closure.pyc
Normal file
BIN
test/bytecode_2.3/09_class_closure.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/09_whiletrue_bug.pyc
Normal file
BIN
test/bytecode_2.3/09_whiletrue_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/10_class.pyc
Normal file
BIN
test/bytecode_2.3/10_class.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/10_del.pyc
Normal file
BIN
test/bytecode_2.3/10_del.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/10_if_break_finally.pyc
Normal file
BIN
test/bytecode_2.3/10_if_break_finally.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/10_if_pass.pyc
Normal file
BIN
test/bytecode_2.3/10_if_pass.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/10_keyword.pyc
Normal file
BIN
test/bytecode_2.3/10_keyword.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/10_mixed_boolean.pyc
Normal file
BIN
test/bytecode_2.3/10_mixed_boolean.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/11-list-if.pyc
Normal file
BIN
test/bytecode_2.3/11-list-if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/11_classbug.pyc
Normal file
BIN
test/bytecode_2.3/11_classbug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/11_classbug_subclass_fn.pyc
Normal file
BIN
test/bytecode_2.3/11_classbug_subclass_fn.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/11_return_val.pyc
Normal file
BIN
test/bytecode_2.3/11_return_val.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/15_assert.pyc
Normal file
BIN
test/bytecode_2.3/15_assert.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/15_for_if.pyc
Normal file
BIN
test/bytecode_2.3/15_for_if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.3/20_try_except.pyc
Normal file
BIN
test/bytecode_2.3/20_try_except.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/00_assign.pyc
Normal file
BIN
test/bytecode_2.4/00_assign.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/00_import.pyc
Normal file
BIN
test/bytecode_2.4/00_import.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/00_pass.pyc
Normal file
BIN
test/bytecode_2.4/00_pass.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/01_boolean.pyc
Normal file
BIN
test/bytecode_2.4/01_boolean.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/01_class.pyc
Normal file
BIN
test/bytecode_2.4/01_class.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/01_fns.pyc
Normal file
BIN
test/bytecode_2.4/01_fns.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/01_list_comprehension.pyc
Normal file
BIN
test/bytecode_2.4/01_list_comprehension.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/01_positional.pyc
Normal file
BIN
test/bytecode_2.4/01_positional.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/02_closure.pyc
Normal file
BIN
test/bytecode_2.4/02_closure.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/02_complex.pyc
Normal file
BIN
test/bytecode_2.4/02_complex.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/02_def.pyc
Normal file
BIN
test/bytecode_2.4/02_def.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/02_slice.pyc
Normal file
BIN
test/bytecode_2.4/02_slice.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/03_if_elif.pyc
Normal file
BIN
test/bytecode_2.4/03_if_elif.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/03_map.pyc
Normal file
BIN
test/bytecode_2.4/03_map.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/04_raise.pyc
Normal file
BIN
test/bytecode_2.4/04_raise.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05-ret-or.pyc
Normal file
BIN
test/bytecode_2.4/05-ret-or.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_abc_class.pyc
Normal file
BIN
test/bytecode_2.4/05_abc_class.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_closure_bug.pyc
Normal file
BIN
test/bytecode_2.4/05_closure_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_const_map.pyc
Normal file
BIN
test/bytecode_2.4/05_const_map.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_dup_top_two.pyc
Normal file
BIN
test/bytecode_2.4/05_dup_top_two.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_for_for.pyc
Normal file
BIN
test/bytecode_2.4/05_for_for.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_if.pyc
Normal file
BIN
test/bytecode_2.4/05_if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_ifelse.pyc
Normal file
BIN
test/bytecode_2.4/05_ifelse.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_long_list.pyc
Normal file
BIN
test/bytecode_2.4/05_long_list.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_static_method.pyc
Normal file
BIN
test/bytecode_2.4/05_static_method.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/05_try_finally_pass.pyc
Normal file
BIN
test/bytecode_2.4/05_try_finally_pass.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_classbug.pyc
Normal file
BIN
test/bytecode_2.4/06_classbug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_for_break.pyc
Normal file
BIN
test/bytecode_2.4/06_for_break.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_list_ifnot.pyc
Normal file
BIN
test/bytecode_2.4/06_list_ifnot.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_list_ifnot_and.pyc
Normal file
BIN
test/bytecode_2.4/06_list_ifnot_and.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_return_bug.pyc
Normal file
BIN
test/bytecode_2.4/06_return_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_return_if.pyc
Normal file
BIN
test/bytecode_2.4/06_return_if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/06_setif_comprehension.pyc
Normal file
BIN
test/bytecode_2.4/06_setif_comprehension.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/07_classderef.pyc
Normal file
BIN
test/bytecode_2.4/07_classderef.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/07_classparam.pyc
Normal file
BIN
test/bytecode_2.4/07_classparam.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/07_for_if_continue.pyc
Normal file
BIN
test/bytecode_2.4/07_for_if_continue.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/07_if_return_bug.pyc
Normal file
BIN
test/bytecode_2.4/07_if_return_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/07_return_end_if.pyc
Normal file
BIN
test/bytecode_2.4/07_return_end_if.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/07_try_pass.pyc
Normal file
BIN
test/bytecode_2.4/07_try_pass.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/08_genexpr.pyc
Normal file
BIN
test/bytecode_2.4/08_genexpr.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/08_while1_if_continue.pyc
Normal file
BIN
test/bytecode_2.4/08_while1_if_continue.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/08_while_except_bug.pyc
Normal file
BIN
test/bytecode_2.4/08_while_except_bug.pyc
Normal file
Binary file not shown.
BIN
test/bytecode_2.4/09_class_closure.pyc
Normal file
BIN
test/bytecode_2.4/09_class_closure.pyc
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user