Skip to content

Commit 2eb3dec

Browse files
committed
marshal: serialize minimal PCode information
- style fixes
1 parent 0700bcf commit 2eb3dec

File tree

5 files changed

+18
-48
lines changed

5 files changed

+18
-48
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/MarshalModuleBuiltins.java

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -436,16 +436,8 @@ void handlePCode(@SuppressWarnings("unused") VirtualFrame frame, PCode c, int ve
436436
writeByte(TYPE_CODE, version, buffer);
437437
writeString(getSourceCode(c), version, buffer);
438438
writeString(c.getFilename(), version, buffer);
439-
writeString(c.getName(), version, buffer);
440-
writeInt(c.getNlocals(), version, buffer);
441-
writeInt(c.getStacksize(), version, buffer);
442439
writeInt(c.getFlags(), version, buffer);
443440
writeBytes(c.getCodestring(), version, buffer);
444-
writeArray(frame, c.getConstants(), version, buffer);
445-
writeArray(frame, c.getNames(), version, buffer);
446-
writeArray(frame, c.getVarnames(), version, buffer);
447-
writeArray(frame, c.getFreeVars(), version, buffer);
448-
writeArray(frame, c.getCellVars(), version, buffer);
449441
writeInt(c.getFirstLineNo(), version, buffer);
450442
writeBytes(c.getLnotab(), version, buffer);
451443
}
@@ -644,28 +636,16 @@ private PComplex readPComplex() {
644636
return factory().createComplex(real, imag);
645637
}
646638

647-
private PCode readCode(int depth, HashingStorageLibrary lib) {
639+
private PCode readCode() {
648640
String sourceCode = readString();
649641
String fileName = readInternedString();
650-
String name = readString();
651-
int nLocals = readInt();
652-
int stackSize = readInt();
653642
int flags = readInt();
654643
byte[] codeString = readBytes();
655-
Object[] constants = readArray(depth, lib);
656-
Object[] names = readArray(depth, lib);
657-
Object[] varNames = readArray(depth, lib);
658-
Object[] freeVars = readArray(depth, lib);
659-
Object[] cellVars = readArray(depth, lib);
660644
int firstLineNo = readInt();
661645
byte[] lnoTab = readBytes();
662646

663-
return ensureCreateCodeNode().execute(null, PythonBuiltinClassType.PCode, sourceCode,
664-
nLocals, stackSize, flags,
665-
codeString, constants, names,
666-
varNames, freeVars, cellVars,
667-
fileName, name, firstLineNo,
668-
lnoTab);
647+
return ensureCreateCodeNode().execute(null, PythonBuiltinClassType.PCode, sourceCode, flags,
648+
codeString, fileName, firstLineNo, lnoTab);
669649
}
670650

671651
private PDict readDict(int depth, HashingStorageLibrary lib) {
@@ -774,7 +754,7 @@ private Object readObject(int depth, HashingStorageLibrary lib) {
774754
case TYPE_FROZENSET:
775755
return readFrozenSet(depth, lib);
776756
case TYPE_CODE:
777-
return readCode(depth, lib);
757+
return readCode();
778758
case TYPE_COMPLEX:
779759
return readPComplex();
780760
default:

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/code/CodeNodes.java

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -123,37 +123,24 @@ private PCode createCode(PythonContext context, Object cls, @SuppressWarnings("u
123123
firstlineno, lnotab);
124124
}
125125

126-
public PCode execute(VirtualFrame frame, Object cls, String sourceCode,
127-
int nlocals, int stacksize, int flags,
128-
byte[] codedata, Object[] constants, Object[] names,
129-
Object[] varnames, Object[] freevars, Object[] cellvars,
130-
String filename, String name, int firstlineno,
131-
byte[] lnotab) {
126+
public PCode execute(VirtualFrame frame, @SuppressWarnings("unused") Object cls, String sourceCode, int flags, byte[] codedata, String filename,
127+
int firstlineno, byte[] lnotab) {
132128
PythonContext context = getContextRef().get();
133129
Object state = IndirectCallContext.enter(frame, context, this);
134130
try {
135-
return createCode(context, cls, sourceCode,
136-
nlocals, stacksize, flags,
137-
codedata, constants, names,
138-
varnames, freevars, cellvars,
139-
filename, name, firstlineno,
140-
lnotab);
131+
return createCode(context, sourceCode, flags, codedata, filename, firstlineno, lnotab);
141132
} finally {
142133
IndirectCallContext.exit(frame, context, state);
143134
}
144135
}
145136

146137
@TruffleBoundary
147-
private static PCode createCode(PythonContext context, Object cls, String sourceCode,
148-
int nlocals, int stacksize, int flags,
149-
byte[] codedata, Object[] constants, Object[] names,
150-
Object[] varnames, Object[] freevars, Object[] cellvars,
151-
String filename, String name, int firstlineno,
152-
byte[] lnotab) {
138+
private static PCode createCode(PythonContext context, String sourceCode, int flags, byte[] codedata, String filename,
139+
int firstlineno, byte[] lnotab) {
153140
boolean isNotAModule = (flags & PCode.FLAG_MODULE) == 0;
154141
Source source = PythonLanguage.newSource(context, sourceCode, filename, isNotAModule);
155142
Supplier<CallTarget> createCode = () -> {
156-
RootNode rootNode = context.getCore().getSerializer().deserialize(source, codedata, toStringArray(cellvars), toStringArray(freevars));
143+
RootNode rootNode = context.getCore().getSerializer().deserialize(source, codedata);
157144
return PythonUtils.getOrCreateCallTarget(rootNode);
158145
};
159146

@@ -164,8 +151,7 @@ private static PCode createCode(PythonContext context, Object cls, String source
164151
ct = (RootCallTarget) context.getCore().getLanguage().cacheCode(filename, createCode);
165152
}
166153
PythonObjectFactory factory = PythonObjectFactory.getUncached();
167-
return factory.createCode(cls, ct, ((PRootNode) ct.getRootNode()).getSignature(), nlocals, stacksize, flags, codedata, constants, names, varnames, freevars, cellvars, filename, name,
168-
firstlineno, lnotab);
154+
return factory.createCode(ct, codedata, flags, firstlineno, lnotab);
169155
}
170156

171157
private ContextReference<PythonContext> getContextRef() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/PConstructAndRaiseNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,14 @@ private static String getMessage(Exception exception) {
154154
return exception.getMessage();
155155
}
156156

157-
private Object[] createOsErrorArgs(OSErrorEnum osErrorEnum, String filename1, String filename2) {
157+
private static Object[] createOsErrorArgs(OSErrorEnum osErrorEnum, String filename1, String filename2) {
158158
return new Object[]{osErrorEnum.getNumber(), osErrorEnum.getMessage(),
159159
(filename1 != null) ? filename1 : PNone.NONE,
160160
PNone.NONE,
161161
(filename2 != null) ? filename2 : PNone.NONE};
162162
}
163163

164-
private Object[] createOsErrorArgs(Exception exception, String filename1, String filename2) {
164+
private static Object[] createOsErrorArgs(Exception exception, String filename1, String filename2) {
165165
OSErrorEnum.ErrorAndMessagePair errorAndMessage = OSErrorEnum.fromException(exception);
166166
return new Object[]{errorAndMessage.oserror.getNumber(), errorAndMessage.message,
167167
(filename1 != null) ? filename1 : PNone.NONE,

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/parser/sst/DecoratedSSTNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/object/PythonObjectFactory.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -827,6 +827,10 @@ public PCode createCode(RootCallTarget ct) {
827827
return trace(new PCode(PythonBuiltinClassType.PCode, PythonBuiltinClassType.PCode.getInstanceShape(), ct));
828828
}
829829

830+
public PCode createCode(RootCallTarget ct, byte[] codestring, int flags, int firstlineno, byte[] lnotab) {
831+
return trace(new PCode(PythonBuiltinClassType.PCode, PythonBuiltinClassType.PCode.getInstanceShape(), ct, codestring, flags, firstlineno, lnotab));
832+
}
833+
830834
public PCode createCode(Object cls, RootCallTarget callTarget, Signature signature,
831835
int nlocals, int stacksize, int flags,
832836
byte[] codestring, Object[] constants, Object[] names,

0 commit comments

Comments
 (0)