rocky
2c4acecc9d
Start PyPy 3.8 support
2021-11-23 16:45:01 -05:00
rocky
69387c4173
Tidy scanner more
2021-11-03 05:03:53 -04:00
rocky
22baad273f
Sync with decompyle start using types more.
2021-11-03 04:58:41 -04:00
rocky
8094f3bb12
Remove PYTHON3
2021-11-03 03:00:43 -04:00
rocky
4911d85237
Get ready for release 3.8.0
2021-10-29 22:17:17 -04:00
rocky
d0ca7b0363
Loosen check to allow running from 2.4-3.10
...
We still only can *decompile* 2.4-3.8
2021-10-26 06:21:51 -04:00
rocky
1bcd21a6f4
More version conversion bugs
2021-10-23 10:04:58 -04:00
rocky
e3369edaed
DRY using version_info_to_str
2021-10-23 08:24:35 -04:00
rocky
e8e006bb8c
More Python version comparison conversions
2021-10-16 11:33:03 -04:00
rocky
c68b74a9c6
new dis - Python compisons involving tuples
2021-10-15 23:39:59 -04:00
rocky
33bff4dc47
Small int thing and sync with decompyle3
2020-09-01 16:18:10 -04:00
rocky
5a83c7c643
Simplify imports again using xdis 4.6.0
2020-05-19 00:53:53 -04:00
rocky
daab1e8610
Start to tolerate 3.9 (in pydisassemble)
2019-12-09 12:20:00 -05:00
rocky
1c0c54991e
Backend some buffers
2019-11-09 18:49:40 -05:00
rocky
0b3d6b8add
Get ready for release 3.5.0
2019-10-12 19:53:17 -04:00
rocky
9b550b9dda
PEP E225 with a nod to Deepcommit
2019-04-14 06:11:16 -04:00
rocky
82fb9426af
[WIP] - move forward a tad on Python 3.8
2019-03-28 12:10:08 -04:00
rocky
dcad6cf6ce
Fix if return boundary in 3.6+
...
Fixes #209
2019-03-10 05:59:15 -04:00
rocky
b7942bc5f2
Add Python 1.3 decompilation ..
...
Reduced checking via "make check-short"
2018-06-13 12:26:21 -04:00
rocky
c01eb554ed
Fix bug introduced in last commit
2018-06-12 12:35:13 -04:00
rocky
d32e67891b
More 3.0 bug fixing and tollerance and...
...
add some 1.4 bytecode tests
2018-06-12 12:19:43 -04:00
rocky
78b8d1cd06
Python 3.0 fixes + administrivia
2018-06-12 08:29:13 -04:00
rocky
94251cd294
Tolerate bytecode < 1.5
2018-05-19 11:49:42 -04:00
rocky
e5f3d803a8
Start Python 1.4 decompilation ...
...
Tidy up test code for issue 162 and comments for some disassembly massaging.
2018-05-19 07:14:00 -04:00
rocky
1cd2d1e915
DRY scanner code more...
...
Expand 2.6 testing
2018-04-03 10:35:02 -04:00
rocky
fad43feb3d
DRY instruction building code...
...
There is a little more that could be done with self.offset2inst_index
2018-04-03 04:41:36 -04:00
rocky
f18ce71e91
Replace all_instrs with inst_matches...
...
which works on 3.6+. Still should write a pytest for this.
2018-03-29 21:23:26 -04:00
rocky
8d503682b3
Use get_inst and self.insts more..
...
needed more in 3.6 to handle EXTENDED_ARGS before JUMP_xxx
2018-03-02 07:15:23 -05:00
rocky
c43c9a19aa
Move to GPL3 license
2018-02-27 06:40:36 -05:00
rocky
b584a0f6b0
More EXTENDED_ARGS woes on 3.6+
2018-02-25 22:42:18 -05:00
rocky
2f6a85d538
Merge branch 'master' into extended_args
2018-02-25 19:19:32 -05:00
rocky
8c0f256b78
Sync python2 and python3 scanner/injest code more
2018-02-25 09:42:04 -05:00
rocky
c433d2d9a7
Fix extended_arg breakage from last commit
2018-01-29 21:43:15 -05:00
rocky
a8fe985ed3
Add a scanner next_offset() routine
...
Remove extended_arg_val() as that is now in xdis
2018-01-29 21:36:19 -05:00
rocky
ebb9f1a53f
Python 2.6 compatibility
2018-01-18 01:25:38 -05:00
rocky
96ddef3920
Handle 3.5.2..3.5.2 magic...
...
And handle magic better overal by improved xdis use
2018-01-18 01:15:19 -05:00
rocky
15057bed1d
Fix bugs in scanner.last_instr()...
...
And ave instruction stream self.insts like we do in Python 3 so we
can start simplifying code.
2017-12-15 20:34:34 -05:00
rocky
b6413b6e6e
Skirt around control-flow problems...
...
Tag some of the weaknesses if we can't address them now
2017-12-07 08:55:45 -05:00
rocky
6746e5167d
Add Python 3.6.3 scanner lookup
2017-11-04 11:13:55 -04:00
rocky
5df09540b5
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-29 11:46:28 -04:00
rocky
7b38d2f1f8
Adjust for xdis opcode JUMP_OPS. release 2.12.0
2017-09-25 20:01:31 -04:00
rocky
7844456e1e
Skeletal support for Python 3.7
...
Largely failing though.
2017-08-31 10:12:09 -04:00
rocky
d1e02afb4b
Misc cleanups...
...
remove code now in xdis
require at least xdis 3.5.4
PyPy tolerance in validate testing
2017-08-15 09:41:39 -04:00
rocky
f4ceb6304d
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-13 09:17:07 -04:00
rocky
27ab6fe2f5
Use xdis 3.5.0's opcode sets
2017-07-08 20:41:46 -04:00
rocky
af3d46b35c
Use xdis' instruction offset calculation fns..
...
next_offset, op_size, has_argument
2017-06-24 06:43:04 -04:00
rocky
f8a40c1949
Reduce spurious "continue" statements
2017-05-07 13:15:26 -04:00
rocky
160ec0d9cc
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-03-01 05:50:31 -05:00
rocky
3f40c16587
Fix 3.5, 3.6 while true if/break bug
2017-01-08 15:54:49 -05:00
rocky
7755563b65
Some Python 3.6 bytecode->wordcode fixes
2016-12-15 02:54:25 -05:00