Commit Graph

733 Commits

Author SHA1 Message Date
rocky
9ef670c872 Fix Python 1.5 bytecode deparse
Need xdis 3.0.2 though since the bug is really there.
2016-10-11 02:39:09 -04:00
rocky
bb8d0a6389 Get ready for release 2.9.1 release-2.9.1 2016-10-10 12:29:57 -04:00
rocky
97ce330b00 Python 1.5 scanner and parser and ..
.. slightly improved Forgot to check in files before.

Handle Python pre 2.2. classes
2016-10-10 12:09:00 -04:00
rocky
8b240a80e7 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
release-2.9.0
2016-10-10 09:33:49 -04:00
rocky
e888a87d15 Reinstate some tests 2016-10-09 06:44:08 -04:00
rocky
f41426e94b Simpify python 2.1 grammar Fix bug with -t ...
Wasn't showing source text when -t option was given
2016-10-08 21:52:10 -04:00
rocky
22dee55ff7 Python 2.1-2.6 bug in list comprehension 2016-10-08 19:51:57 -04:00
rocky
8916447adb Get ready for release 2.8.4 release-2.8.4 2016-10-08 06:30:44 -04:00
rocky
478602bfa5 Add decompyle's 2.1 tests
Update README.rst to note new pythons supported since last update
2016-10-08 05:54:35 -04:00
rocky
056f600da1 Start Python 2.1 bytecode decompile 2016-10-07 22:42:30 -04:00
rocky
2e1bd2dc13 Use .py extension in disassembled files more often 2016-10-06 04:05:38 -04:00
rocky
346d8678d2 Merge in COME_FROM disambiguation ...
from controlflowbranch. Should probably expand to Python2
parsers as well
2016-10-06 03:27:37 -04:00
rocky
4411ecceba Merge branch 'controlflow' 2016-10-06 03:26:44 -04:00
rocky
a4dd6e9805 Python 3: "or" doesn't have optional come_from 2016-10-05 22:56:48 -04:00
rocky
b52f341d46 Python 3: "or" doesn't have optional come_from 2016-10-05 22:54:50 -04:00
rocky
2ada29618f Python 3: "and" doesn't have optional come_from 2016-10-05 03:36:57 -04:00
rocky
649e4518fe Python 3: "and" doesn't have optional come_from 2016-10-05 03:34:29 -04:00
rocky
0df2c8b4bb Merge branch 'master' into controlflow 2016-10-05 00:01:04 -04:00
rocky
d2b477ae7d Add tuple comma when not in BUILD_LIST_n
Fixes issue #57

bin/uncompile.py: --verify now works on a single bytecode file. We will
set the output to be something created by tempfile.mktemps
2016-10-04 23:58:35 -04:00
rocky
a8f9f2170f Python 3 while1 grammar rules with COME_FROM_LOOP 2016-09-28 05:52:13 -04:00
rocky
fe46015b78 PY3 COME_FROM_LOOP bug
There are still more in sre...
2016-09-27 04:59:06 -04:00
rocky
051efb80f5 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-27 03:27:41 -04:00
rocky
1fc8ac4700 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 09:26:51 -04:00
rocky
c87710dd4b Python 3 COME_FROM -> COME_FROM_WITH appropriately 2016-09-26 08:09:05 -04:00
rocky
ccd129b377 Try stronger verification
verify.py: add check in verification that magic is the same.
Otherwise we go for weak verification.
2016-09-25 17:48:33 -04:00
rocky
c03a8186b5 Address whileTrue if cond .. -> while cond .. bug
Reinstate Python standard library bisect test
2016-09-25 16:59:32 -04:00
rocky
8bc76f19b9 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 19:22:09 -04:00
rocky
6908898b90 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 19:18:54 -04:00
rocky
fa1a6347e9 Weaken testing for controlfow branch
We have more equivalent programs now
2016-09-23 04:58:29 -04:00
rocky
760532b218 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 08:24:02 -04:00
rocky
88f2ad1f5a Merge branch 'master' into controlflow 2016-09-22 01:33:29 -04:00
rocky
d271e886d9 Fix pytest grammar test failure
dict and set comprehensions are only in 2.7+
2016-09-22 01:32:00 -04:00
rocky
c0b4a5e703 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-22 01:27:58 -04:00
rocky
b6dee24289 First step towards managing control flow decoding 2016-09-21 21:30:57 -04:00
R. Bernstein
0e9ebca1a5 Merge pull request #56 from rocky/fstring
merge fstring changes from moagstar
2016-09-21 20:44:35 -04:00
moagstar
f3b9a5936e fixed generation of FSTRING_CONVERSION_MAP in < python 2.7 2016-09-21 22:13:25 +02:00
moagstar
bae3d2e361 merge fstring changes from moagstar 2016-09-21 22:04:46 +02:00
rocky
4f83a87a00 Python 2 & 3 scanner code ever so slightly closer 2016-09-21 07:06:30 -04:00
rocky
d8b7c3d813 Small NEWS doc typo 2016-09-21 03:26:44 -04:00
rocky
c119965d96 Small changes 2016-09-18 17:23:49 -04:00
rocky
b02754c954 Get ready for release 2.8.3 release-2.8.3 2016-09-11 19:22:07 -04:00
rocky
23770fca64 Tidy a bit 2016-09-11 03:39:19 -04:00
rocky
71591152ef 3.0 .. 3.4 bug in whileTrue 2016-09-09 22:27:13 -04:00
rocky
251de4338a 3.1 scanner small fixes 2016-09-09 18:23:43 -04:00
rocky
03e8995d18 ret_cond adjustment for < 2.7 and ...
"<= 2.6" -> "< 2.7" since python 2.6's version is 2.6000001
2016-09-09 15:55:15 -04:00
rocky
dd661bc94a Start accepting Python 3.1 bytecode 2016-09-09 15:32:46 -04:00
rocky
c4e6af6e4f Add 3.6 parser 2016-09-08 05:44:45 -04:00
rocky
57d1f3b9f9 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 05:09:36 -04:00
rocky
2d11ffb669 Python 3.0-3.2 *args processing 2016-09-08 03:54:57 -04:00
rocky
b7f1f1b028 3.2 (and down to 3.0?) bug in fn name and kwargs 2016-09-08 02:35:06 -04:00