Skip to content

Commit 7c7df1f

Browse files
committed
[GR-20804] get code to serialize / deserialize via pickle
PullRequest: graalpython/793
2 parents 1194399 + 95a4063 commit 7c7df1f

Some content is hidden

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

60 files changed

+497
-284
lines changed

graalpython/com.oracle.graal.python.parser.antlr/postprocess.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"""
7777

7878
PTRN_SUPPRESS_WARNINGS = re.compile(r"@SuppressWarnings.*")
79+
PTRN_GEN_FROM = r"// Generated from .*(?P<path>graalpython/com\.oracle\.graal\.python.*Python3\.g4) by ANTLR (?P<antlr>.*)"
7980

8081

8182
def replace_suppress_warnings(line):
@@ -85,13 +86,20 @@ def replace_suppress_warnings(line):
8586
def replace_rulectx(line):
8687
return line.replace("(RuleContext)_localctx", "_localctx")
8788

89+
8890
def replace_localctx(line):
8991
return re.sub(r'\(\((([a-zA-Z]*?_?)*[a-zA-Z]*)\)_localctx\)', '_localctx', line)
9092

93+
94+
def replace_generate_from(line):
95+
return re.sub(PTRN_GEN_FROM, "// Generated from \g<path> by ANTLR \g<antlr>", line)
96+
97+
9198
TRANSFORMS = [
9299
replace_suppress_warnings,
93100
replace_rulectx,
94101
replace_localctx,
102+
replace_generate_from,
95103
]
96104

97105

graalpython/com.oracle.graal.python.test/src/tests/test_code.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
1+
# Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
22
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
33
#
44
# The Universal Permissive License (UPL), Version 1.0
@@ -93,9 +93,7 @@ def test_code_attributes():
9393
assert code.co_flags & (1 << 5)
9494
assert not code.co_flags & (1 << 2)
9595
assert not code.co_flags & (1 << 3)
96-
if sys.implementation.name == 'graalpython':
97-
assert code.co_code.decode().strip() == wrapper().__truffle_source__.strip()
98-
# assert code.co_consts
96+
assert {'set()', 'expected TypeError'}.issubset(code.co_consts)
9997
# assert set(code.co_names) == {'set', 'TypeError', 'print'}
10098
assert set(code.co_varnames) == {'arg_l', 'kwarg_case', 'kwarg_other', 'loc_1', 'loc_3', 'inner_func'}
10199
assert code.co_filename.endswith("test_code.py")
@@ -155,9 +153,7 @@ def test_module_code():
155153
assert code.co_nlocals == 0
156154
# assert code.co_stacksize == 0
157155
# assert code.co_flags == 0
158-
if sys.implementation.name == 'graalpython':
159-
assert code.co_code.decode().strip() == source.strip()
160-
# assert code.co_consts == tuple()
156+
assert {'PACKAGE DOC', 'after importing moduleY'}.issubset(set(code.co_consts))
161157
# assert set(code.co_names) == set()
162158
assert set(code.co_varnames) == set()
163159
assert code.co_filename.endswith("__init__.py")
@@ -169,9 +165,10 @@ def test_module_code():
169165
assert code.co_cellvars == tuple()
170166

171167

172-
def test_get_globals():
173-
import sys
174-
code = wrapper.__code__
175-
if sys.implementation.name == 'graalpython':
176-
from __graalpython__ import current_global_code_variables
177-
assert set(current_global_code_variables(code)) == {'a_global'}
168+
# def test_codestring():
169+
# def foo():
170+
# pass
171+
#
172+
# ct = type(foo.__code__)
173+
# del foo
174+
# ct(2, 0, 0, 128, 0, b"lambda a,b: a+b", tuple(), ("a", "b"), tuple(), "hello.py", "<lambda>", 0, b"", tuple(), tuple())

graalpython/com.oracle.graal.python.test/testData/goldenFiles/BasicTests/if04.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ModuleRootNode Name: <module 'if04'> SourceSection: [0,53]`predicate = func if .
1919
ObjectLiteralNode SourceSection: [32,36]`None`
2020
ReadNameNodeGen SourceSection: [12,16]`func`
2121
Identifier: func
22-
FunctionDefinitionNode Name: anonymous SourceSection: [42,53]`lambda a: a`
22+
FunctionDefinitionNode Name: <lambda> SourceSection: [42,53]`lambda a: a`
2323
Arguments: None
2424
KwArguments: None
2525
Documentation: None
@@ -28,7 +28,7 @@ ModuleRootNode Name: <module 'if04'> SourceSection: [0,53]`predicate = func if .
2828
FreeVarsSlots: None
2929
CellVarsSlots: None
3030
FunctionRootNode SourceSection: [42,53]`lambda a: a`
31-
Name: anonymous
31+
Name: <lambda>
3232
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
3333
Param Names: a
3434
CelVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda01.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda01'> SourceSection: [0,9]`lambda: 0`
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,9]`lambda: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,9]`lambda: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,9]`lambda: 0`
99
Arguments: None
1010
KwArguments: None
1111
Documentation: None
@@ -14,7 +14,7 @@ ModuleRootNode Name: <module 'lambda01'> SourceSection: [0,9]`lambda: 0`
1414
FreeVarsSlots: None
1515
CellVarsSlots: None
1616
FunctionRootNode SourceSection: [0,9]`lambda: 0`
17-
Name: anonymous
17+
Name: <lambda>
1818
Signature: varArgs=False, varKeywordArgs=False, noArguments=True, positionalOnly=True, requiresKeywordArgs=False
1919
CelVars: None
2020
FreeVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda02.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda02'> SourceSection: [0,11]`lambda x: 0`
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,11]`lambda x: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,11]`lambda x: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,11]`lambda x: 0`
99
Arguments: None
1010
KwArguments: None
1111
Documentation: None
@@ -14,7 +14,7 @@ ModuleRootNode Name: <module 'lambda02'> SourceSection: [0,11]`lambda x: 0`
1414
FreeVarsSlots: None
1515
CellVarsSlots: None
1616
FunctionRootNode SourceSection: [0,11]`lambda x: 0`
17-
Name: anonymous
17+
Name: <lambda>
1818
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
1919
Param Names: x
2020
CelVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda03.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda03'> SourceSection: [0,12]`lambda *y: 0`
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,12]`lambda *y: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,12]`lambda *y: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,12]`lambda *y: 0`
99
Arguments: None
1010
KwArguments: None
1111
Documentation: None
@@ -14,7 +14,7 @@ ModuleRootNode Name: <module 'lambda03'> SourceSection: [0,12]`lambda *y: 0`
1414
FreeVarsSlots: None
1515
CellVarsSlots: None
1616
FunctionRootNode SourceSection: [0,12]`lambda *y: 0`
17-
Name: anonymous
17+
Name: <lambda>
1818
Signature: varArgs=True, varKeywordArgs=False, noArguments=False, positionalOnly=False, requiresKeywordArgs=False
1919
CelVars: None
2020
FreeVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda04.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda04'> SourceSection: [0,17]`lambda *y, **z: 0
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,17]`lambda *y, **z: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,17]`lambda *y, **z: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,17]`lambda *y, **z: 0`
99
Arguments: None
1010
KwArguments: None
1111
Documentation: None
@@ -14,7 +14,7 @@ ModuleRootNode Name: <module 'lambda04'> SourceSection: [0,17]`lambda *y, **z: 0
1414
FreeVarsSlots: None
1515
CellVarsSlots: None
1616
FunctionRootNode SourceSection: [0,17]`lambda *y, **z: 0`
17-
Name: anonymous
17+
Name: <lambda>
1818
Signature: varArgs=True, varKeywordArgs=True, noArguments=False, positionalOnly=False, requiresKeywordArgs=False
1919
Keyword Names: None
2020
CelVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda05.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda05'> SourceSection: [0,13]`lambda **z: 0`
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,13]`lambda **z: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,13]`lambda **z: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,13]`lambda **z: 0`
99
Arguments: None
1010
KwArguments: None
1111
Documentation: None
@@ -14,7 +14,7 @@ ModuleRootNode Name: <module 'lambda05'> SourceSection: [0,13]`lambda **z: 0`
1414
FreeVarsSlots: None
1515
CellVarsSlots: None
1616
FunctionRootNode SourceSection: [0,13]`lambda **z: 0`
17-
Name: anonymous
17+
Name: <lambda>
1818
Signature: varArgs=False, varKeywordArgs=True, noArguments=False, positionalOnly=False, requiresKeywordArgs=False
1919
Keyword Names: None
2020
CelVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda06.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda06'> SourceSection: [0,14]`lambda x, y: 0`
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,14]`lambda x, y: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,14]`lambda x, y: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,14]`lambda x, y: 0`
99
Arguments: None
1010
KwArguments: None
1111
Documentation: None
@@ -14,7 +14,7 @@ ModuleRootNode Name: <module 'lambda06'> SourceSection: [0,14]`lambda x, y: 0`
1414
FreeVarsSlots: None
1515
CellVarsSlots: None
1616
FunctionRootNode SourceSection: [0,14]`lambda x, y: 0`
17-
Name: anonymous
17+
Name: <lambda>
1818
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
1919
Param Names: x, y
2020
CelVars: None

graalpython/com.oracle.graal.python.test/testData/goldenFiles/ExpressionsFromCPTests/lambda07.tast

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ModuleRootNode Name: <module 'lambda07'> SourceSection: [0,17]`lambda foo=bar: 0
55
FrameDescriptor: Empty
66
Documentation: None
77
InnerRootNode SourceSection: [0,17]`lambda foo=bar: 0`
8-
FunctionDefinitionNode Name: anonymous SourceSection: [0,17]`lambda foo=bar: 0`
8+
FunctionDefinitionNode Name: <lambda> SourceSection: [0,17]`lambda foo=bar: 0`
99
Arguments:
1010
ReadNameNodeGen SourceSection: [11,14]`bar`
1111
Identifier: bar
@@ -16,7 +16,7 @@ ModuleRootNode Name: <module 'lambda07'> SourceSection: [0,17]`lambda foo=bar: 0
1616
FreeVarsSlots: None
1717
CellVarsSlots: None
1818
FunctionRootNode SourceSection: [0,17]`lambda foo=bar: 0`
19-
Name: anonymous
19+
Name: <lambda>
2020
Signature: varArgs=False, varKeywordArgs=False, noArguments=False, positionalOnly=True, requiresKeywordArgs=False
2121
Param Names: foo
2222
CelVars: None

0 commit comments

Comments
 (0)