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
Michael Hansen
d3a46f711f
Merge remote-tracking branch 'dotjrich/issue-172' into master
2020-10-20 21:10:55 -07:00
Michael Hansen
e616471003
Merge branch 'Issue-165-literal-string-interpolation-f-strings' into master
2020-10-20 21:08:19 -07:00
Michael Hansen
568867c80a
Minor style adjustments
2020-10-20 21:08:02 -07:00
Aralox
db12d15e08
Fix token_dump for strings with single quotes in them. Update f-string test tokens.
2020-10-21 10:38:58 +11:00
John Richards
50dea39975
Addresses a couple performance related comments
2020-10-20 18:07:39 -04:00
Aralox
8933c9a4a9
Add support for async for
. Issue #124
...
Ignore 'boilerplate' opcodes that set up the async iteration logic internally (https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for ) - We don’t need any of this as GET_AITER is enough to tell us that we are in an `async for`.
2020-10-20 20:39:23 +11:00
John Richards
5b819fa23e
Adds support for BUILD_CONST_KEY_MAP opcode
...
Tests have also been added.
Fixes #172
2020-10-20 01:46:38 -04:00
Aralox
7af40a779f
CRAs
2020-10-20 16:42:19 +11:00
Michael Hansen
8fdfe170fc
Ensure tarball directory is created before trying to download to it
2020-10-19 22:04:56 -07:00
Michael Hansen
0a54e40c8d
Merge pull request #179 from dotjrich/debug-docs
...
Adds ability to control block and stack debug output via CMake
2020-10-19 22:02:20 -07:00
John Richards
0573318528
Renames options for BLOCK/STACK debugging and fixes indentation
2020-10-20 00:42:44 -04:00
John Richards
05c373b07a
Adds ability to control block and stack debug output via CMake
...
Also updates README to detail how to enable various debug options.
A typo related to running tests has also been fixed.
2020-10-19 20:55:20 -04:00
Aralox
1f07a24451
Fix up some dodgy spacing
2020-10-17 21:04:39 +11:00
Aralox
0c9fbd9caf
Issue-165 Added support for f-strings (literal string interpolation https://www.python.org/dev/peps/pep-0498/ )
...
Opcodes handled: FORMAT_VALUE, BUILD_STRING.
Added AST node classes for FormattedValue and JoinedStr.
2020-10-17 20:52:57 +11:00
Michael Hansen
9407b29451
Merge pull request #175 from dotjrich/issue-136
...
Handle NaN and infinity values
2020-10-15 19:19:55 -07:00
John Richards
ed11ba3fe4
Refactors how we handle NaN and infinity
...
The previous approach didn't work properly under MSVC. The wrong
output would be produced for NaN values.
This new approach will directly print out "nan" and "inf" with the
appropriate sign, rather than just wrapping the value in float('').
2020-10-15 21:35:19 -04:00
John Richards
870ecdc430
Handle NaN and infinity values
...
Right now, NaN/infinity values will produce "nan" and "inf", but
Python doesn't allow those in source code. This change will wrap
those values in float(''), which is allowed.
Tests for Python 2.7 and 3.8 have been added as well.
Fixes #136
2020-10-15 21:04:57 -04:00
Michael Hansen
36d93bd1a5
Add support for Python 3.9 in pymultic.
...
Also updates versions for several other Python releases.
2020-10-12 16:52:38 -07:00
Michael Hansen
8460d119fd
Add bytecode support for Python 3.9 rc2
2020-09-29 09:28:15 -07:00
Michael Hansen
045b624f55
Merge pull request #171 from Almamu/fix-empty-stack-history
...
Fixed crash on stack_history being empty
2020-02-10 07:53:56 -08:00
Michael Hansen
e20e3b2f9f
Merge pull request #170 from Almamu/fix-stringrefs-length0
...
Fixed a crash when a Stringref was an empty string (length 0)
2020-02-10 07:51:02 -08:00
Alexis Maiquez Murcia
eae19d7a81
Fixed crash on stack_history being empty
...
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com >
2020-02-10 11:02:26 +01:00
Alexis Maiquez Murcia
5437c3294f
Fixed a crash when a Stringref was an empty string (length 0)
...
Signed-off-by: Alexis Maiquez Murcia <almamu@almamu.com >
2020-02-10 10:40:17 +01:00
Michael Hansen
3d3719f844
GH Actions apparently use PowerShell by default now -- fix syntax error.
2020-01-03 14:38:36 -08:00
Michael Hansen
937520abcc
Update pymultic python versions
2020-01-03 12:16:39 -08:00
Michael Hansen
428d11c4b5
Add bytecode and disassembly support for Python 3.8.
...
Also fixes running pymultic from outside of its source directory.
2019-10-14 14:48:26 -07:00
Michael Hansen
de78e1b882
Unmangle private names ('__' prefix) in class declarations.
...
Fixes #166.
2019-10-10 14:47:48 -07:00
Michael Hansen
375b8b0c68
Fix non-inplace matrix multiplication operator.
2019-10-10 11:47:48 -07:00
Michael Hansen
de3f7982c3
Support 'yield from' (Python 3.3) and await (Python 3.5) expressions.
...
Currently unsupported are yield from in newer Python versions, and
yield/yield from into an assignment expression.
2019-10-10 10:59:10 -07:00
Michael Hansen
881a200ab0
Change handling of POP_TOP to explicitly mark already-processed nodes.
2019-10-10 10:55:28 -07:00
Michael Hansen
13397c940e
Don't emit statements for null values on the stack.
...
Fixes several test cases with extraneous None lines.
2019-10-10 10:26:19 -07:00
Michael Hansen
c71d41efb6
Add MSVC-based CI build
2019-10-09 20:33:39 -07:00