574 Commits

Author SHA1 Message Date
Michael Hansen
3009ea38d2 Handle Python 3.3's automatic __qualname__ assignment.
Fixes loadbuild_class.py test.
2019-10-08 08:53:53 -07:00
Michael Hansen
66d6c190ac Make PycRef<T> movable 2019-10-08 08:42:33 -07:00
Michael Hansen
44af6a2c04 Finish removing old tests and old "test" framework. 2019-10-07 20:57:43 -07:00
Michael Hansen
391ba6502d Migrate additional tests which previously didn't have reference source to
the new test system, including new reference source.
2019-10-07 17:06:08 -07:00
Michael Hansen
9524099488 Migrate test_tuple_params to new test framework.
This test relies on some old syntax for tuples that may need to get
cleaned up before the test can pass on both old and new Pythons.
2019-10-07 13:54:46 -07:00
Michael Hansen
86b88091df Unify test_prettyprint variations and add to passing tests. 2019-10-07 13:42:39 -07:00
Michael Hansen
ab58fba23b Move more tests into the new framework, including current xfails. 2019-10-07 13:38:19 -07:00
Michael Hansen
0dc49b5872 Add support for expected test failures 2019-10-07 11:36:09 -07:00
Michael Hansen
8014ac2b14 Print unicode as default in Python 2.x when CO_FUTURE_UNICODE_LITERALS
is set.

Fixes #141.
2019-10-06 14:34:24 -07:00
Michael Hansen
892616b560 Add tests for unicode/bytes string literals 2019-10-06 13:50:53 -07:00
Michael Hansen
b5696c8398 Port Python 2.7 list comprehension fixes by @ReDucTor from #78 2019-10-04 16:35:58 -07:00
Michael Hansen
314f4a1a0d Fix several cases of name shadowing, and greatly simplify some
unnecessary stack operations with tuple appending.
2019-10-04 16:16:10 -07:00
Michael Hansen
5c896fa743 Clean up some loops with range-based for. 2019-10-04 15:56:24 -07:00
Michael Hansen
727da48ba5 Display the diff when a test doesn't match the expected output. 2019-10-04 14:57:59 -07:00
Michael Hansen
646213ef4f Add a test for unpack assignment 2019-10-04 14:33:38 -07:00
Michael Hansen
2e93d29233 Don't write parens around for loop value tuples 2019-10-04 14:08:47 -07:00
Michael Hansen
fc1cb06926 Add Github Actions CI build 2019-10-04 11:32:27 -07:00
Michael Hansen
154b80b2fe Migrate several more passing tests to new test framework 2019-10-04 11:05:52 -07:00
Michael Hansen
7cd576280e Move equivalent reference sources to the input directory 2019-10-03 22:08:44 -07:00
Michael Hansen
7a7b4623b6 Migrate a couple more passing tests, and handle end-of-line comments
in token_dump.
2019-10-03 20:56:52 -07:00
Michael Hansen
1cf1977a40 Move test_class.pyc to the new test framwork, and fix tokenization
of multi-line strings.
2019-10-03 17:12:52 -07:00
Michael Hansen
697aa5d2c3 Simplify the output of decompyle_test.sh, and actually fail the
check target when a test fails.
2019-10-03 16:05:30 -07:00
Michael Hansen
0c0a0231a9 Fix dict literals in Python 3.5+ to make the new test case pass. 2019-10-03 15:48:44 -07:00
Michael Hansen
31d907118a Add a new unit test framework that actually checks the output of
decompiled sources against an expected result.
2019-10-03 15:33:52 -07:00
Michael Hansen
18f94c4094 Use pymultic for executing the rt_test 2019-10-02 21:18:35 -07:00
Michael Hansen
619f584bd2 Simplify CMakeLists slightly, and correctly handle AppleClang 2019-10-02 16:27:27 -07:00
Michael Hansen
f88869fb17 Use std::string instead of manual character buffers where applicable. 2019-10-02 16:01:54 -07:00
Michael Hansen
8d3752b4f0 Start requring C++11 with explicit virtual overrides. 2019-10-02 14:41:49 -07:00
Michael Hansen
f02a339072 Move fetch and build of Python versions into pymultic, and remove
acquire_pythons script.

pymultic now accepts an arbitrary list of python versions, instead
of requiring all of a specific class to be included.
2019-10-02 14:41:49 -07:00
Michael Hansen
f77f287b1d Backport Python 2.7.15 fix for GCC 8 optimizations to other Pythons
it applies to.
2019-09-30 16:29:04 -07:00
Michael Hansen
104c3c0b42 Update magic for 3.7.0 release 2018-07-02 13:13:58 -07:00
Michael Hansen
1c01ca7ee6 Better name for this script, since it doesn't do anything in parallel. 2018-04-28 12:22:14 -07:00
Michael Hansen
56e442605a Remove unnecessary complexity and just use the base sequence type common
to both 1.0 and later versions in PyCodeObject.
2018-04-28 11:37:13 -07:00
Michael Hansen
1b01af45fd Add some scripts for fetching/building many Python versions and compiling
python sources to bytecode in each of them.
2018-04-27 16:28:23 -07:00
Michael Hansen
7f63529d49 Fix PycCode incompatibility with Python 1.0 2018-04-26 15:13:52 -07:00
Michael Hansen
0c3955883f Fix bytecode compatibility with Python 3.7 beta3 2018-04-26 14:38:02 -07:00
Michael Hansen
bf60a5831b Fix several undefined behavior issues identified by @nrathaus.
Fixes #147.
2018-01-28 15:37:44 -08:00
Michael Hansen
a9a362254e Use fputs instead of fprintf when no formatting is required 2018-01-28 15:37:44 -08:00
Michael Hansen
98ad031109 Add initial 3.7 alpha support, and fix 3.6 opcode map 2017-12-20 13:49:28 -08:00
Michael Hansen
b9dd99d518 Don't create special objects for NULL, just use NULL directly.
Also move null check into PycRef for nullable references.
2017-07-05 16:36:04 -07:00
Michael Hansen
1329626215 Add missing break 2017-07-05 16:10:59 -07:00
Michael Hansen
96122d23b8 Minor typing/aliasing cleanup 2017-07-05 16:10:09 -07:00
Michael Hansen
7c328f0ee8 Merge pull request #113 from kholia/add-3.5.2-magic
Add MAGIC_NUMBER for Python 3.5.2
2017-04-11 08:42:31 -07:00
Dhiru Kholia
da6571587b Add MAGIC_NUMBER for Python 3.5.3
See https://bugs.python.org/issue27286 for details.
2017-04-11 09:55:40 +05:30
Michael Hansen
a690d22822 Update Python 3.6 magic from RC build 2016-12-14 14:39:22 -08:00
Michael Hansen
6a9d6a6132 Update bytecode for Python 3.6 beta3, and use a common file for opcode names 2016-11-08 16:00:56 -08:00
Michael Hansen
ed2c21cd66 Handle NOP instruction in decompyle (fixes #96) 2016-10-24 09:44:06 -07:00
Michael Hansen
dfdb00d2dc Add python 2.5 reference sources 2016-09-08 09:59:10 -07:00
Michael Hansen
5ee15c890c Fix display of cell vars 2016-09-07 18:22:49 -07:00
Michael Hansen
35e74d0e6e Show jump target on FOR_ITER instructions 2016-09-07 18:22:22 -07:00