Commit Graph

363 Commits

Author SHA1 Message Date
John Richards
9bb40a1faa Adds support for building our own Python containers
This will be triggered when -c is used with pymultic and there is
no official Python container available for the version(s) specified.
2021-10-24 18:41:33 -04:00
Michael Hansen
7869a08f27 Merge pull request #204 from dotjrich/pymultic-container
Adds container support to pymultic
2021-10-21 20:54:11 -07:00
John Richards
21b08557ce Refactors how extra args for container executables are specified 2021-10-21 22:33:03 -04:00
John Richards
034c65885f Use the -u param when running via Docker 2021-10-21 22:22:31 -04:00
John Richards
7e2609c3d6 Addresses code review comments 2021-10-18 21:37:46 -04:00
John Richards
51f607fb1c Removes old variable that's no longer in code 2021-10-10 23:36:46 -04:00
John Richards
f59d7d015d Adds podman support and defines PYVERS with official containers
We've found that 3.0.x and 3.1.x don't have official containers on
Docker Hub, so we needed to move to a more explicit check.
2021-10-10 19:59:54 -04:00
John Richards
5e08ec603a Adds container support to pymultic
Using the '-c' argument will - if possible - fetch and use a
container for each version of Python specified in the arguments
list.
2021-10-10 18:34:11 -04:00
Michael Hansen
aacf182f95 Add bytecode documentation for 3.10 2021-10-10 11:57:14 -07:00
Michael Hansen
9109449390 Merge pull request #202 from GawdOfROFL/3.10support
added python 3.10 support
2021-10-10 11:44:39 -07:00
GawdOfROFL
8245b79989 add RERAISE_A 2021-10-10 14:58:46 +05:30
Michael Hansen
c6c256ccd3 Merge pull request #203 from dotjrich/contains-op
Adds support for CONTAINS_OP opcode
2021-10-09 22:06:45 -07:00
John Richards
25f44aa079 Adds support for CONTAINS_OP opcode
Mentioned in:
- #190
- #191
- #195
2021-10-10 00:40:39 -04:00
Michael Hansen
81f3e5f84b Merge pull request #201 from dotjrich/is-op
Adds support for IS_OP opcode
2021-10-09 20:26:25 -07:00
John Richards
9fcf5bcb9d Addresses code review comment 2021-10-09 22:35:33 -04:00
GawdOfROFL
43667f0bae make requested changes 2021-10-10 06:48:34 +05:30
GawdOfROFL
728309e7f8 add newline 2021-10-10 00:57:37 +05:30
GawdOfROFL
e4e3a9f4ed added python 3.10 support 2021-10-10 00:52:41 +05:30
John Richards
588f24c872 Adds support for IS_OP opcode
Mentioned in:
- #190
- #191
- #195
2021-10-07 20:29:18 -04:00
Michael Hansen
fd6985370d Merge pull request #200 from dotjrich/list-extend
Adds support for LIST_EXTEND opcode
2021-10-07 09:25:43 -06:00
John Richards
15f2a4013e Adds an extra test case 2021-10-07 02:02:00 -04:00
John Richards
a504452b7b Adds support for LIST_EXTEND opcode
Addresses #199
2021-10-07 01:51:53 -04:00
Michael Hansen
6140b4b33e Protect against out of range lookups in pycdas
Fixes #198.
2021-08-16 15:25:16 +00:00
Michael Hansen
fbf9d24de3 Merge pull request #189 from zrax/codeql
Fix CodeQL analysis for C++
2021-04-12 10:16:07 -07:00
Michael Hansen
56e549640f Fix format-truncation warning in bytecode.cpp 2021-04-12 10:12:45 -07:00
Michael Hansen
768da6f1e6 Fix CodeQL analysis for C++ 2021-04-12 10:08:31 -07:00
Michael Hansen
ac189cc916 Support LOAD_METHOD and CALL_METHOD from Python 3.7+
Fixes #163
2021-04-12 09:55:52 -07:00
Michael Hansen
f0d2d802dc [pymultic] Update python versions 2021-04-12 09:01:01 -07:00
Michael Hansen
74ff8e277a Merge pull request #187 from zrax/codeql
Create codeql-analysis.yml
2020-10-26 09:30:48 -07:00
Michael Hansen
281e8da7eb Don't build CI on non-master pushes 2020-10-26 09:29:21 -07:00
Michael Hansen
040b0f3360 Create codeql-analysis.yml 2020-10-26 09:25:26 -07:00
Michael Hansen
133dfca012 Merge pull request #186 from Aralox/Issue-185-chained-assignment
Support chained assignment statements, e.g. `a = b = c`
2020-10-26 08:40:50 -07:00
Aralox
bd7439485f CRA 2020-10-26 15:18:43 +11:00
Aralox
23beda48d7 CRAs 2020-10-26 15:15:45 +11:00
Aralox
a987c34e65 Merge remote-tracking branch 'upstream/master' into Issue-185-chained-assignment 2020-10-25 12:13:37 +11:00
Michael Hansen
0a82954c58 Merge pull request #184 from Aralox/Issue-183-support-unpack-empty
Support unpacking empty list.
2020-10-24 14:15:47 -07:00
Aralox
7a89b72260 Support chained assignment statements, e.g. a = b = c.
We know when we have begun a chained assignment when we process a DUP_TOP with non-null on the stack. Push a NODE_CHAINSTORE onto the stack when this happens, and keep it 'floating' on top of the stack for all STORE_X operations until the stack is empty.
To support versions of Python <= 2.5 which use DUP_TOP in more places, I modified ROT_TWO, ROT_THREE and ROT_FOUR to get rid of NODE_CHAINSTORE on the stack if it is present.
2020-10-23 21:19:01 +11:00
Aralox
1db8d28729 Add compiled test for python 2.7 2020-10-23 14:30:42 +11:00
Aralox
db94f3c257 CRLF -> LF 2020-10-23 11:28:42 +11:00
Aralox
8e8bb95592 Support unpacking empty list.
If UNPACK_SEQUENCE with operand 0 is encountered, treat it like a STORE_X and either assign the TOS to it or set it as the for-loop index.
Issue #183.
2020-10-23 11:23:46 +11:00
Michael Hansen
8eb18de269 Update tests to show that #39 is resolved, and add dummy support for
STORE_LOCALS used in Python 3.0-3.3.

Closes #39
Closes #63
2020-10-22 09:06:57 -07:00
Michael Hansen
0540b3991c Merge pull request #181 from Aralox/Issue-124-handle-async-for-GET_AITER_GET_ANEXT
Add support for `async for`
2020-10-22 08:24:56 -07:00
Michael Hansen
378c25685b Merge pull request #182 from dotjrich/issue-169
Adds support for SETUP_ANNOTATION op and variable annotations
2020-10-22 08:21:28 -07:00
Aralox
7022db1bf6 Modify async for test to avoid known try-except problem with trailing unnecessary continue when the try-except is not followed by any other statements.
Add an xfail test to capture this failing scenario.
2020-10-22 15:35:59 +11:00
John Richards
7ba44361fe Addresses code review comments 2020-10-21 23:45:51 -04:00
John Richards
345035b544 Adds support for SETUP_ANNOTATION op and variable annotations
Tests have also been added.

Fixes #169
2020-10-21 21:42:13 -04:00
Aralox
abf8501ccf CRAs 2020-10-22 10:57:49 +11:00
Aralox
e80aa996fa Only initialize the async for once. 2020-10-22 09:11:51 +11:00
Aralox
5bdc0b5baf Merge remote-tracking branch 'upstream/master' into Issue-124-handle-async-for-GET_AITER_GET_ANEXT
Conflicts:
	ASTree.cpp
2020-10-21 19:34:37 +11:00
Aralox
91a23f914d Implement better handling for async for.
Instead of ignoring boilerplate when decompiling `async for`, build the loop semantically by deconstructing the BLK_WHILE -> BLK_CONTAINER -> BLK_TRY that python generates when compiling an `async for` (see https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for).
When reading GET_AITER, convert the BLK_WHILE into a BLK_ASYNCFOR in the same way as a `for` loop.
Ignore GET_ANEXT.
Use END_FINALLY as the trigger to finish building the BLK_ASYNCFOR:
-> Extract the loop variable from the contents of the BLK_TRY.
-> Throw away the BLK_TRY and BLK_CONTAINER, leave the BLK_ASYNCFOR on top of the stack.
2020-10-21 19:32:20 +11:00