Skip to content

Commit c4dcfb6

Browse files
fangerertimfel
authored andcommitted
Merge branch 'master'
2 parents 74fe77e + 38194c1 commit c4dcfb6

File tree

47 files changed

+1669
-1264
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1669
-1264
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
This changelog summarizes major changes between GraalVM versions of the Python
44
language runtime. The main focus is on user-observable behavior of the engine.
55

6+
## Version 22.2.0
7+
* Updated to HPy version 0.0.4, which adds support for the finished HPy port of Kiwi, and the in-progress ports of Matplotlib and NumPy.
8+
* Added support for aarch64 on both macOS and Linux.
9+
* Added an experimental bytecode interpreter for faster startup and better interpreter performance. Using either the previous AST interpreter or the new bytecode interpreter can be switched using `--python.EnableBytecodeInterpreter`.
10+
611
## Version 22.1.0
712
* String conversion (`__str__`) now calls `toString` for Java objects and `toDisplayString` interop message for foreign objects.
813
* Improved compatibility with PyPI packages `lxml`, `pytz`, `Pillow`, `urllib3`, `setuptools`, `pytest`, `twine`, `jinja2`, and `six`

ci.jsonnet

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "overlay": "29ac25e29ab69b45b98ba7c1ec9fac62e30c8cf2" }
1+
{ "overlay": "009458261d287aa3e859ff7405ce0793d1914fc6" }

graalpython/com.oracle.graal.python.pegparser.generator/diff_generator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ def visit_Rule(self, node: Rule):
129129
def visit_Alt(self, node: Alt):
130130
action = re.sub(r" ([\.,\(\)\[\]]) ", r"\1", str(node.action)) # shorten action string
131131
self.actions[" ".join(str(item) for item in node.items)] = action
132+
self.generic_visit(node)
132133

133134

134135
def main():

graalpython/com.oracle.graal.python.pegparser.generator/pegjava/java_generator.py

Lines changed: 382 additions & 37 deletions
Large diffs are not rendered by default.

graalpython/com.oracle.graal.python.pegparser.test/src/com/oracle/graal/python/pegparser/AtomsTests.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,16 @@ public void atomString7() throws Exception {
102102
@Test
103103
public void atomFString() throws Exception {
104104
checkTreeResult("f'a{b!r}'");
105-
checkError("f'a{b!g}'", "Generic[0:4]:f-string: invalid conversion character: expected 's', 'r', or 'a'");
105+
checkError("f'a{b!g}'", "Generic[2:9]:f-string: invalid conversion character: expected 's', 'r', or 'a'");
106+
}
107+
108+
@Test
109+
public void atomFStringMultiline() throws Exception {
110+
checkTreeResult("f\"\"\"First line.{\n" +
111+
" v1\n" +
112+
"+\n" +
113+
"v2}\n" +
114+
"Another line.\"\"\"");
106115
}
107116

108117
@Test

graalpython/com.oracle.graal.python.pegparser.test/src/com/oracle/graal/python/pegparser/ParserTestBase.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import java.util.Arrays;
5555
import java.util.List;
5656

57+
import com.oracle.graal.python.pegparser.tokenizer.SourceRange;
5758
import org.junit.Rule;
5859
import org.junit.rules.TestName;
5960

@@ -97,7 +98,7 @@ public ModTy parse(String src, String moduleName, int mode) {
9798

9899
FExprParser fexpParser = new FExprParser() {
99100
@Override
100-
public ExprTy parse(String code) {
101+
public ExprTy parse(String code, SourceRange sourceRange) {
101102
ParserTokenizer tok = new ParserTokenizer(code);
102103
return (ExprTy) new Parser(tok, factory, this).parse(InputType.FSTRING);
103104
}
@@ -203,13 +204,13 @@ public void checkError(String source, String... expectedErrors) {
203204
ArrayList<String> errors = new ArrayList<>();
204205
ParserErrorCallback errorCb = new ParserErrorCallback() {
205206
@Override
206-
public void onError(ParserErrorCallback.ErrorType type, int start, int end, String message) {
207-
errors.add(String.format("%s[%d:%d]:%s", type.name(), start, end, message));
207+
public void onError(ParserErrorCallback.ErrorType type, SourceRange sourceRange, String message) {
208+
errors.add(String.format("%s[%d:%d]:%s", type.name(), sourceRange.startOffset, sourceRange.endOffset, message));
208209
}
209210
};
210211
FExprParser fexpParser = new FExprParser() {
211212
@Override
212-
public ExprTy parse(String code) {
213+
public ExprTy parse(String code, SourceRange range) {
213214
ParserTokenizer tok = new ParserTokenizer(code);
214215
return (ExprTy) new Parser(tok, factory, this, errorCb).parse(InputType.FSTRING);
215216
}

graalpython/com.oracle.graal.python.pegparser.test/src/com/oracle/graal/python/pegparser/sst/SSTTreePrinterVisitor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ private String indent() {
5959

6060
private static String addHeader(SSTNode node) {
6161
StringBuilder sb = new StringBuilder();
62-
sb.append(node.getClass().getSimpleName()).append("[").append(node.getStartOffset());
63-
sb.append(", ").append(node.getEndOffset()).append("]");
62+
sb.append(node.getClass().getSimpleName()).append("[").append(node.getSourceRange().startOffset);
63+
sb.append(", ").append(node.getSourceRange().endOffset).append("]");
6464
return sb.toString();
6565
}
6666

@@ -224,8 +224,8 @@ public String visit(ExprTy.Compare node) {
224224
@Override
225225
public String visit(ExprTy.Constant node) {
226226
StringBuilder sb = new StringBuilder();
227-
sb.append(node.kind).append("[").append(node.getStartOffset());
228-
sb.append(", ").append(node.getEndOffset()).append("]");
227+
sb.append(node.kind).append("[").append(node.getSourceRange().startOffset);
228+
sb.append(", ").append(node.getSourceRange().endOffset).append("]");
229229
sb.append(" Value: ");
230230
switch (node.kind) {
231231
case LONG:

graalpython/com.oracle.graal.python.pegparser.test/src/com/oracle/graal/python/tokenizer/TokenizerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,8 +470,8 @@ private void checkTokensFromTestDataFile() throws Exception {
470470
sb.append("exact_type:").append(getCPythonValueOfTokenType(token.type));
471471
sb.append(" (").append(token.typeName()).append(") ");
472472
}
473-
sb.append("start:[").append(token.startLine).append(", ").append(token.startColumn).append("] ");
474-
sb.append("end:[").append(token.endLine).append(", ").append(token.endColumn).append("] ");
473+
sb.append("start:[").append(token.sourceRange.startLine).append(", ").append(token.sourceRange.startColumn).append("] ");
474+
sb.append("end:[").append(token.sourceRange.endLine).append(", ").append(token.sourceRange.endColumn).append("] ");
475475
sb.append("string:'").append(tokenizer.getTokenString(token)).append("'");
476476
String goldenToken = goldenResult.get(goldenResultIndex);
477477
assertEquals("Code: '" + line + "'", goldenToken, sb.toString());
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Module[0, 45]
2+
JoinedStr[0, 45]
3+
Values:
4+
RAW[4, 15] Value: First line.
5+
FormattedValue[16, 27]
6+
Value:
7+
BinOp[5, 12]
8+
Op: ADD
9+
LHS: Name[5, 7] Value: "v1"
10+
RHS: Name[10, 12] Value: "v2"
11+
Conversion: NONE
12+
RAW[28, 42] Value:
13+
Another line.

graalpython/com.oracle.graal.python.pegparser.test/testData/parser/goldenFiles/BasicTests/call09.tast

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ Module[0, 12]
33
Target: Name[0, 3] Value: "foo"
44
Args:
55
Starred[4, 11]
6+
Context: Load
67
Expr: Name[5, 11] Value: "mylist"

0 commit comments

Comments
 (0)