de3f7982c3
Support 'yield from' (Python 3.3) and await (Python 3.5) expressions.
Michael Hansen
2019-10-10 10:59:10 -07:00
881a200ab0
Change handling of POP_TOP to explicitly mark already-processed nodes.
Michael Hansen
2019-10-10 10:55:28 -07:00
13397c940e
Don't emit statements for null values on the stack.
Michael Hansen
2019-10-10 10:26:19 -07:00
c71d41efb6
Add MSVC-based CI build
Michael Hansen
2019-10-09 16:54:42 -07:00
96b5dd1d02
Modernize and simplify FastStack with a vector.
Michael Hansen
2019-10-09 15:39:37 -07:00
15da179173
Merge print nodes in the AST rather than attempting to manage it during print statement output. Fixes numerous bugs with mangled print statements.
Michael Hansen
2019-10-09 14:20:46 -07:00
cbbffd28e6
Modernize ASTNode.h
Michael Hansen
2019-10-08 13:34:15 -07:00
8713b3b05f
Merge 'pass' node into existing ASTKeyword node type
Michael Hansen
2019-10-08 13:12:31 -07:00
c928df906b
Fix applyEquiv test by writing the correct name from the call object.
Michael Hansen
2019-10-08 11:44:52 -07:00
9309effba9
Support Python 3.x kw-only arguments.
Michael Hansen
2019-10-08 11:36:12 -07:00
3e379c114e
Don't emit a 'pass' statement on an empty top-level module code object
Michael Hansen
2019-10-08 09:04:41 -07:00
66d6c190ac
Make PycRef<T> movable
Michael Hansen
2019-10-08 08:42:33 -07:00
44af6a2c04
Finish removing old tests and old "test" framework.
Michael Hansen
2019-10-07 20:57:43 -07:00
391ba6502d
Migrate additional tests which previously didn't have reference source to the new test system, including new reference source.
Michael Hansen
2019-10-07 14:10:19 -07:00
9524099488
Migrate test_tuple_params to new test framework.
Michael Hansen
2019-10-07 13:54:46 -07:00
86b88091df
Unify test_prettyprint variations and add to passing tests.
Michael Hansen
2019-10-07 13:42:39 -07:00
ab58fba23b
Move more tests into the new framework, including current xfails.
Michael Hansen
2019-10-07 12:00:30 -07:00
0dc49b5872
Add support for expected test failures
Michael Hansen
2019-10-07 11:36:09 -07:00
8014ac2b14
Print unicode as default in Python 2.x when CO_FUTURE_UNICODE_LITERALS is set.
Michael Hansen
2019-10-06 14:34:24 -07:00
892616b560
Add tests for unicode/bytes string literals
Michael Hansen
2019-10-06 13:50:53 -07:00
b5696c8398
Port Python 2.7 list comprehension fixes by @ReDucTor from #78
Michael Hansen
2019-10-04 16:35:58 -07:00
314f4a1a0d
Fix several cases of name shadowing, and greatly simplify some unnecessary stack operations with tuple appending.
Michael Hansen
2019-10-04 16:16:10 -07:00
5c896fa743
Clean up some loops with range-based for.
Michael Hansen
2019-10-04 15:56:24 -07:00
727da48ba5
Display the diff when a test doesn't match the expected output.
Michael Hansen
2019-10-04 14:57:59 -07:00
646213ef4f
Add a test for unpack assignment
Michael Hansen
2019-10-04 14:33:38 -07:00
2e93d29233
Don't write parens around for loop value tuples
Michael Hansen
2019-10-04 14:08:47 -07:00
fc1cb06926
Add Github Actions CI build
Michael Hansen
2019-10-04 11:12:28 -07:00
154b80b2fe
Migrate several more passing tests to new test framework
Michael Hansen
2019-10-04 09:04:04 -07:00
7cd576280e
Move equivalent reference sources to the input directory
Michael Hansen
2019-10-03 22:08:44 -07:00
7a7b4623b6
Migrate a couple more passing tests, and handle end-of-line comments in token_dump.
Michael Hansen
2019-10-03 20:56:52 -07:00
1cf1977a40
Move test_class.pyc to the new test framwork, and fix tokenization of multi-line strings.
Michael Hansen
2019-10-03 17:12:52 -07:00
697aa5d2c3
Simplify the output of decompyle_test.sh, and actually fail the check target when a test fails.
Michael Hansen
2019-10-03 16:05:30 -07:00
0c0a0231a9
Fix dict literals in Python 3.5+ to make the new test case pass.
Michael Hansen
2019-10-03 15:48:44 -07:00
31d907118a
Add a new unit test framework that actually checks the output of decompiled sources against an expected result.
Michael Hansen
2019-10-03 15:33:52 -07:00
18f94c4094
Use pymultic for executing the rt_test
Michael Hansen
2019-10-02 16:46:19 -07:00
619f584bd2
Simplify CMakeLists slightly, and correctly handle AppleClang
Michael Hansen
2019-10-02 16:27:27 -07:00
f88869fb17
Use std::string instead of manual character buffers where applicable.
Michael Hansen
2019-10-02 16:01:54 -07:00
8d3752b4f0
Start requring C++11 with explicit virtual overrides.
Michael Hansen
2019-10-02 14:40:25 -07:00
f02a339072
Move fetch and build of Python versions into pymultic, and remove acquire_pythons script.
Michael Hansen
2019-09-30 16:38:16 -07:00
f77f287b1d
Backport Python 2.7.15 fix for GCC 8 optimizations to other Pythons it applies to.
Michael Hansen
2019-09-30 16:24:52 -07:00
104c3c0b42
Update magic for 3.7.0 release
Michael Hansen
2018-07-02 13:13:50 -07:00
1c01ca7ee6
Better name for this script, since it doesn't do anything in parallel.
Michael Hansen
2018-04-28 12:22:14 -07:00
56e442605a
Remove unnecessary complexity and just use the base sequence type common to both 1.0 and later versions in PyCodeObject.
Michael Hansen
2018-04-28 11:37:13 -07:00
1b01af45fd
Add some scripts for fetching/building many Python versions and compiling python sources to bytecode in each of them.
Michael Hansen
2018-04-27 16:27:12 -07:00
7f63529d49
Fix PycCode incompatibility with Python 1.0
Michael Hansen
2018-04-26 15:13:52 -07:00
0c3955883f
Fix bytecode compatibility with Python 3.7 beta3
Michael Hansen
2018-04-26 14:31:21 -07:00
bf60a5831b
Fix several undefined behavior issues identified by @nrathaus. Fixes #147.
Michael Hansen
2018-01-28 14:33:26 -08:00
a9a362254e
Use fputs instead of fprintf when no formatting is required
Michael Hansen
2018-01-28 10:32:44 -08:00
98ad031109
Add initial 3.7 alpha support, and fix 3.6 opcode map
Michael Hansen
2017-12-20 13:15:03 -08:00
b9dd99d518
Don't create special objects for NULL, just use NULL directly. Also move null check into PycRef for nullable references.
Michael Hansen
2017-07-05 16:36:04 -07:00
1329626215
Add missing break
Michael Hansen
2017-07-05 16:10:59 -07:00
96122d23b8
Minor typing/aliasing cleanup
Michael Hansen
2017-07-05 15:53:35 -07:00
7c328f0ee8
Merge pull request #113 from kholia/add-3.5.2-magic
Michael Hansen
2017-04-11 08:42:31 -07:00
5ee15c890c
Fix display of cell vars
Michael Hansen
2016-09-07 18:22:49 -07:00
35e74d0e6e
Show jump target on FOR_ITER instructions
Michael Hansen
2016-09-07 18:22:22 -07:00
05a32e7bf5
Add more reference source for Python 2.2 tests, and fix some inconsistent names
Michael Hansen
2016-09-07 18:21:51 -07:00
7efcf04bcd
Display KW only arg count in pycdas output
Michael Hansen
2016-09-03 11:05:03 -07:00
5a4c332a0e
Add some reference hand-decompyled source for better examining pycdc output
Michael Hansen
2016-09-02 21:19:15 -07:00
5c60db15f2
Use .src.py extension instead of .src for pycdc test output
Michael Hansen
2016-08-31 16:13:18 -07:00
a02478cc56
Fix formatting of char literals \x00-\x0F.
Michael Hansen
2016-08-31 08:28:46 -07:00
def5d90a9d
Add more advanced round-trip test target that runs decompiled output back through the originating Python compiler (Linux only for now)
Michael Hansen
2016-08-30 20:18:29 -07:00
4b55e0bcea
Fix '...' missing in output
Michael Hansen
2016-08-30 13:32:53 -07:00
c6d92bab3f
Silence CMake warning
Michael Hansen
2016-08-30 11:42:02 -07:00
2178b103fc
Change message if all tests "passed"
Michael Hansen
2016-08-30 11:23:10 -07:00
830bb0d31e
Some fixes/cleanup for the test script
Michael Hansen
2016-08-30 11:19:10 -07:00
71b670de0f
Merge pull request #84 from Dirk007/fix_conversion
Michael Hansen
2016-07-28 16:35:21 -07:00