Skip to content

Commit f3d736d

Browse files
committed
hide builtins used internally for TruffleCodecs in _truffle_codecs
1 parent 72954ea commit f3d736d

File tree

1 file changed

+27
-31
lines changed

1 file changed

+27
-31
lines changed

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

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@
5959
import com.oracle.graal.python.builtins.PythonBuiltins;
6060
import com.oracle.graal.python.builtins.modules.CodecsModuleBuiltins.CodecsDecodeNode;
6161
import com.oracle.graal.python.builtins.modules.CodecsModuleBuiltins.CodecsEncodeNode;
62-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.CallApplyNodeFactory;
63-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.CodecDecodeNodeFactory;
64-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.CodecInitNodeFactory;
65-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.EncodeNodeFactory;
66-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.IncrementalDecodeNodeFactory;
67-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.IncrementalEncodeNodeFactory;
68-
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.StreamDecodeNodeFactory;
62+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.CallApplyNodeGen;
63+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.CodecDecodeNodeGen;
64+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.CodecInitNodeGen;
65+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.EncodeNodeGen;
66+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.IncrementalDecodeNodeGen;
67+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.IncrementalEncodeNodeGen;
68+
import com.oracle.graal.python.builtins.modules.CodecsTruffleModuleBuiltinsFactory.StreamDecodeNodeGen;
6969
import com.oracle.graal.python.builtins.objects.PNone;
7070
import com.oracle.graal.python.builtins.objects.function.PKeyword;
7171
import com.oracle.graal.python.builtins.objects.module.PythonModule;
@@ -94,14 +94,15 @@
9494
import com.oracle.graal.python.runtime.PythonContext;
9595
import com.oracle.graal.python.runtime.object.PythonObjectFactory;
9696
import com.oracle.graal.python.util.PythonUtils;
97+
import com.oracle.graal.python.util.Supplier;
9798
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
9899
import com.oracle.truffle.api.dsl.Cached;
99100
import com.oracle.truffle.api.dsl.Cached.Shared;
100-
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
101101
import com.oracle.truffle.api.dsl.ImportStatic;
102102
import com.oracle.truffle.api.dsl.NodeFactory;
103103
import com.oracle.truffle.api.dsl.Specialization;
104104
import com.oracle.truffle.api.frame.VirtualFrame;
105+
import java.util.ArrayList;
105106

106107
@CoreFunctions(defineModule = _CODECS_TRUFFLE)
107108
public class CodecsTruffleModuleBuiltins extends PythonBuiltins {
@@ -135,7 +136,7 @@ public class CodecsTruffleModuleBuiltins extends PythonBuiltins {
135136

136137
@Override
137138
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {
138-
return CodecsTruffleModuleBuiltinsFactory.getFactories();
139+
return new ArrayList<>();
139140
}
140141

141142
private static PythonClass initClass(String className, String superClassName, BuiltinDescr[] descrs, PythonModule codecsTruffleModule, PythonModule codecsModule, PythonLanguage language,
@@ -148,7 +149,7 @@ private static PythonClass initClass(String className, PythonAbstractClass super
148149
PythonObjectFactory factory) {
149150
PythonClass clazz = factory.createPythonClassAndFixupSlots(language, PythonBuiltinClassType.PythonClass, className, new PythonAbstractClass[]{superClass});
150151
for (BuiltinDescr d : descrs) {
151-
PythonUtils.createMethod(language, clazz, d.nodeFactory.getNodeClass(), d.enclosingType ? clazz : null, 1, () -> d.nodeFactory.createNode(), factory);
152+
PythonUtils.createMethod(language, clazz, d.nodeClass, d.enclosingType ? clazz : null, 1, d.nodeSupplier, factory);
152153
}
153154
clazz.setAttribute(__MODULE__, _CODECS_TRUFFLE);
154155
clazz.setAttribute(__QUALNAME__, _CODECS_TRUFFLE);
@@ -157,11 +158,13 @@ private static PythonClass initClass(String className, PythonAbstractClass super
157158
}
158159

159160
private static final class BuiltinDescr {
160-
final NodeFactory<? extends PythonBuiltinBaseNode> nodeFactory;
161+
final Supplier<PythonBuiltinBaseNode> nodeSupplier;
162+
final Class<?> nodeClass;
161163
final boolean enclosingType;
162164

163-
public BuiltinDescr(NodeFactory<? extends PythonBuiltinBaseNode> nodeFactory, boolean enclosingType) {
164-
this.nodeFactory = nodeFactory;
165+
public BuiltinDescr(Supplier<PythonBuiltinBaseNode> nodeSupplier, Class<?> nodeClass, boolean enclosingType) {
166+
this.nodeSupplier = nodeSupplier;
167+
this.nodeClass = nodeClass;
165168
this.enclosingType = enclosingType;
166169
}
167170
}
@@ -243,8 +246,8 @@ private static void initCodecClasses(PythonModule codecsTruffleModule, PythonMod
243246
// return _codecs.__truffle_decode__(input, self.encoding, errors, True)
244247
codecsTruffleBuiltins.truffleCodecClass = initClass(TRUFFLE_CODEC, (PythonClass) codecsModule.getAttribute(CODEC),
245248
new BuiltinDescr[]{
246-
new BuiltinDescr(EncodeNodeFactory.getInstance(), false),
247-
new BuiltinDescr(CodecDecodeNodeFactory.getInstance(), true)},
249+
new BuiltinDescr(() -> EncodeNodeGen.create(), EncodeNode.class, false),
250+
new BuiltinDescr(() -> CodecDecodeNodeGen.create(), CodecDecodeNode.class, true)},
248251
codecsTruffleModule, language, factory);
249252

250253
// class TruffleIncrementalEncoder(codecs.IncrementalEncoder):
@@ -255,8 +258,8 @@ private static void initCodecClasses(PythonModule codecsTruffleModule, PythonMod
255258
// return _codecs.__truffle_encode__(input, self.encoding, self.errors)[0]
256259
codecsTruffleBuiltins.truffleIncrementalEncoderClass = initClass(TRUFFLE_INCREMENTAL_ENCODER, INCREMENTAL_ENCODER,
257260
new BuiltinDescr[]{
258-
new BuiltinDescr(CodecInitNodeFactory.getInstance(), false),
259-
new BuiltinDescr(IncrementalEncodeNodeFactory.getInstance(), true)},
261+
new BuiltinDescr(() -> CodecInitNodeGen.create(), CodecInitNode.class, false),
262+
new BuiltinDescr(() -> IncrementalEncodeNodeGen.create(), IncrementalEncodeNode.class, true)},
260263
codecsTruffleModule, codecsModule, language, factory);
261264

262265
// class TruffleIncrementalDecoder(codecs.BufferedIncrementalDecoder):
@@ -267,8 +270,8 @@ private static void initCodecClasses(PythonModule codecsTruffleModule, PythonMod
267270
// return _codecs.__truffle_decode__(input, self.encoding, errors, final)
268271
codecsTruffleBuiltins.truffleIncrementalDecoderClass = initClass(TRUFFLE_INCREMENTAL_DECODER, BUFFERED_INCREMENTAL_DECODER,
269272
new BuiltinDescr[]{
270-
new BuiltinDescr(CodecInitNodeFactory.getInstance(), false),
271-
new BuiltinDescr(IncrementalDecodeNodeFactory.getInstance(), true)},
273+
new BuiltinDescr(() -> CodecInitNodeGen.create(), CodecInitNode.class, false),
274+
new BuiltinDescr(() -> IncrementalDecodeNodeGen.create(), IncrementalDecodeNode.class, true)},
272275
codecsTruffleModule, codecsModule, language, factory);
273276

274277
// class TruffleStreamWriter(codecs.StreamWriter):
@@ -279,8 +282,8 @@ private static void initCodecClasses(PythonModule codecsTruffleModule, PythonMod
279282
// return _codecs.__truffle_encode__(input, self.encoding, errors)
280283
codecsTruffleBuiltins.truffleStreamWriterClass = initClass(TRUFFLE_STREAM_WRITER, STREAM_WRITER,
281284
new BuiltinDescr[]{
282-
new BuiltinDescr(CodecInitNodeFactory.getInstance(), false),
283-
new BuiltinDescr(EncodeNodeFactory.getInstance(), true)},
285+
new BuiltinDescr(() -> CodecInitNodeGen.create(), CodecInitNode.class, false),
286+
new BuiltinDescr(() -> EncodeNodeGen.create(), EncodeNode.class, true)},
284287
codecsTruffleModule, codecsModule, language, factory);
285288

286289
// class TruffleStreamReader(codecs.StreamReader):
@@ -291,22 +294,21 @@ private static void initCodecClasses(PythonModule codecsTruffleModule, PythonMod
291294
// return _codecs.__truffle_decode__(input, self.encoding, errors)
292295
codecsTruffleBuiltins.truffleStreamReaderClass = initClass(TRUFFLE_STREAM_READER, STREAM_READER,
293296
new BuiltinDescr[]{
294-
new BuiltinDescr(CodecInitNodeFactory.getInstance(), false),
295-
new BuiltinDescr(StreamDecodeNodeFactory.getInstance(), true)},
297+
new BuiltinDescr(() -> CodecInitNodeGen.create(), CodecInitNode.class, false),
298+
new BuiltinDescr(() -> StreamDecodeNodeGen.create(), StreamDecodeNode.class, true)},
296299
codecsTruffleModule, codecsModule, language, factory);
297300

298301
// serves as factory function for CodecInfo-s incrementalencoder/decode and streamwriter/reader
299302
// class apply_encoding:
300303
// def __call__(self, *args, **kwargs):
301304
// return self.fn(self.encoding, *args, **kwargs)
302305
codecsTruffleBuiltins.applyEncodingClass = initClass(APPLY_ENCODING, context.getCore().lookupType(PythonBuiltinClassType.PythonObject),
303-
new BuiltinDescr[]{new BuiltinDescr(CallApplyNodeFactory.getInstance(), false)},
306+
new BuiltinDescr[]{new BuiltinDescr(() -> CallApplyNodeGen.create(), CallApplyNode.class, false)},
304307
codecsTruffleModule, language, factory);
305308
}
306309
// @formatter:on
307310

308311
@Builtin(name = __INIT__, minNumOfPositionalArgs = 1, takesVarArgs = true, takesVarKeywordArgs = true)
309-
@GenerateNodeFactory
310312
protected abstract static class CodecInitNode extends PythonVarargsBuiltinNode {
311313
@Specialization
312314
Object init(VirtualFrame frame, PythonObject self, Object[] args, PKeyword[] kw,
@@ -338,7 +340,6 @@ protected SetAttributeNode createSetAttr() {
338340
}
339341

340342
@Builtin(name = __CALL__, minNumOfPositionalArgs = 1, takesVarArgs = true, takesVarKeywordArgs = true)
341-
@GenerateNodeFactory
342343
protected abstract static class CallApplyNode extends PythonVarargsBuiltinNode {
343344
@Specialization
344345
Object call(VirtualFrame frame, PythonObject self, Object[] args, PKeyword[] kw,
@@ -352,7 +353,6 @@ Object call(VirtualFrame frame, PythonObject self, Object[] args, PKeyword[] kw,
352353
}
353354

354355
@Builtin(name = ENCODE, minNumOfPositionalArgs = 2, maxNumOfPositionalArgs = 3)
355-
@GenerateNodeFactory
356356
protected abstract static class EncodeNode extends PythonTernaryBuiltinNode {
357357
@Specialization
358358
Object encode(VirtualFrame frame, PythonObject self, Object input, Object errors,
@@ -363,7 +363,6 @@ Object encode(VirtualFrame frame, PythonObject self, Object input, Object errors
363363
}
364364

365365
@Builtin(name = DECODE, minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 3)
366-
@GenerateNodeFactory
367366
protected abstract static class CodecDecodeNode extends PythonTernaryBuiltinNode {
368367
@Specialization
369368
Object decode(VirtualFrame frame, PythonObject self, Object input, Object errors,
@@ -374,7 +373,6 @@ Object decode(VirtualFrame frame, PythonObject self, Object input, Object errors
374373
}
375374

376375
@Builtin(name = ENCODE, minNumOfPositionalArgs = 2, maxNumOfPositionalArgs = 3)
377-
@GenerateNodeFactory
378376
protected abstract static class IncrementalEncodeNode extends PythonTernaryBuiltinNode {
379377
@Specialization
380378
Object encode(VirtualFrame frame, PythonObject self, Object input, @SuppressWarnings("unused") Object ffinal,
@@ -387,7 +385,6 @@ Object encode(VirtualFrame frame, PythonObject self, Object input, @SuppressWarn
387385
}
388386

389387
@Builtin(name = BUFFER_DECODE, minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 4)
390-
@GenerateNodeFactory
391388
protected abstract static class IncrementalDecodeNode extends PythonQuaternaryBuiltinNode {
392389
@Specialization
393390
Object decode(VirtualFrame frame, PythonObject self, Object input, Object errors, Object ffinal,
@@ -398,7 +395,6 @@ Object decode(VirtualFrame frame, PythonObject self, Object input, Object errors
398395
}
399396

400397
@Builtin(name = DECODE, minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 4)
401-
@GenerateNodeFactory
402398
protected abstract static class StreamDecodeNode extends PythonQuaternaryBuiltinNode {
403399
@Specialization
404400
Object decode(VirtualFrame frame, PythonObject self, Object input, Object errors, Object ffinal,

0 commit comments

Comments
 (0)