Skip to content

Commit 0b1cca2

Browse files
committed
Merge PythonBufferLibrary into PythonObjectLibrary
1 parent 44c3885 commit 0b1cca2

File tree

9 files changed

+42
-142
lines changed

9 files changed

+42
-142
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
import com.oracle.graal.python.builtins.objects.bytes.PByteArray;
8585
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
8686
import com.oracle.graal.python.builtins.objects.bytes.PIBytesLike;
87-
import com.oracle.graal.python.builtins.objects.bytes.PythonBufferLibrary;
8887
import com.oracle.graal.python.builtins.objects.cell.PCell;
8988
import com.oracle.graal.python.builtins.objects.cext.CExtNodes;
9089
import com.oracle.graal.python.builtins.objects.cext.CExtNodes.PCallCapiFunction;
@@ -2710,8 +2709,8 @@ Object call(VirtualFrame frame, LazyPythonClass cls, int argcount, int kwonlyarg
27102709
PTuple varnames, Object filename, Object name,
27112710
int firstlineno, Object lnotab,
27122711
PTuple freevars, PTuple cellvars,
2713-
@CachedLibrary("codestring") PythonBufferLibrary codestringBufferLib,
2714-
@CachedLibrary("lnotab") PythonBufferLibrary lnotabBufferLib,
2712+
@CachedLibrary("codestring") PythonObjectLibrary codestringBufferLib,
2713+
@CachedLibrary("lnotab") PythonObjectLibrary lnotabBufferLib,
27152714
@Cached CodeNodes.CreateCodeNode createCodeNode,
27162715
@Cached GetObjectArrayNode getObjectArrayNode) throws UnsupportedMessageException {
27172716
byte[] codeBytes = codestringBufferLib.getBufferBytes(codestring);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/DefaultBufferStringExports.java

Lines changed: 0 additions & 65 deletions
This file was deleted.

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/PByteArray.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.Arrays;
2929

3030
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
31+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
3132
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
3233
import com.oracle.graal.python.runtime.sequence.PSequence;
3334
import com.oracle.graal.python.runtime.sequence.storage.ByteSequenceStorage;
@@ -39,7 +40,7 @@
3940
import com.oracle.truffle.api.library.ExportLibrary;
4041
import com.oracle.truffle.api.library.ExportMessage;
4142

42-
@ExportLibrary(PythonBufferLibrary.class)
43+
@ExportLibrary(PythonObjectLibrary.class)
4344
public final class PByteArray extends PSequence implements PIBytesLike {
4445

4546
private SequenceStorage store;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/PBytes.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.Arrays;
2929

3030
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
31+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
3132
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
3233
import com.oracle.graal.python.runtime.sequence.PImmutableSequence;
3334
import com.oracle.graal.python.runtime.sequence.PSequence;
@@ -40,7 +41,7 @@
4041
import com.oracle.truffle.api.library.ExportLibrary;
4142
import com.oracle.truffle.api.library.ExportMessage;
4243

43-
@ExportLibrary(PythonBufferLibrary.class)
44+
@ExportLibrary(PythonObjectLibrary.class)
4445
public final class PBytes extends PImmutableSequence implements PIBytesLike {
4546

4647
private SequenceStorage store;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/PythonBufferLibrary.java

Lines changed: 0 additions & 68 deletions
This file was deleted.

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/memoryview/PMemoryView.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
*/
4141
package com.oracle.graal.python.builtins.objects.memoryview;
4242

43-
import com.oracle.graal.python.builtins.objects.bytes.PythonBufferLibrary;
4443
import com.oracle.graal.python.builtins.objects.object.PythonBuiltinObject;
44+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
4545
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
4646
import com.oracle.graal.python.nodes.SpecialMethodNames;
4747
import com.oracle.graal.python.nodes.attributes.ReadAttributeFromDynamicObjectNode;
@@ -53,7 +53,7 @@
5353
import com.oracle.truffle.api.library.ExportLibrary;
5454
import com.oracle.truffle.api.library.ExportMessage;
5555

56-
@ExportLibrary(PythonBufferLibrary.class)
56+
@ExportLibrary(PythonObjectLibrary.class)
5757
public class PMemoryView extends PythonBuiltinObject {
5858

5959
static final String C_MEMORYVIEW = "__c_memoryview";

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/mmap/PMMap.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
import java.io.IOException;
4444
import java.nio.channels.SeekableByteChannel;
4545

46-
import com.oracle.graal.python.builtins.objects.bytes.PythonBufferLibrary;
4746
import com.oracle.graal.python.builtins.objects.mmap.MMapBuiltins.InternalLenNode;
4847
import com.oracle.graal.python.builtins.objects.object.PythonObject;
48+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
4949
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
5050
import com.oracle.graal.python.nodes.util.CastToJavaIntNode;
5151
import com.oracle.graal.python.nodes.util.ChannelNodes.ReadFromChannelNode;
@@ -56,7 +56,7 @@
5656
import com.oracle.truffle.api.library.ExportLibrary;
5757
import com.oracle.truffle.api.library.ExportMessage;
5858

59-
@ExportLibrary(PythonBufferLibrary.class)
59+
@ExportLibrary(PythonObjectLibrary.class)
6060
public final class PMMap extends PythonObject {
6161

6262
private final SeekableByteChannel mappedByteBuffer;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/DefaultPythonStringExports.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
4444
import com.oracle.graal.python.builtins.objects.type.LazyPythonClass;
45+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
4546
import com.oracle.truffle.api.library.ExportLibrary;
4647
import com.oracle.truffle.api.library.ExportMessage;
4748

@@ -61,4 +62,20 @@ static boolean isHashable(@SuppressWarnings("unused") String value) {
6162
static LazyPythonClass getLazyPythonClass(@SuppressWarnings("unused") String value) {
6263
return PythonBuiltinClassType.PString;
6364
}
65+
66+
@ExportMessage
67+
static boolean isBuffer(@SuppressWarnings("unused") String str) {
68+
return true;
69+
}
70+
71+
@ExportMessage
72+
static int getBufferLength(@SuppressWarnings("unused") String str) {
73+
return getBufferBytes(str).length;
74+
}
75+
76+
@ExportMessage
77+
@TruffleBoundary
78+
static byte[] getBufferBytes(String str) {
79+
return str.getBytes();
80+
}
6481
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/object/PythonObjectLibrary.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,21 @@ public boolean isMappingType(Object receiver) {
285285
return false;
286286
}
287287

288+
@Abstract(ifExported = {"getBufferBytes", "getBufferLength"})
289+
public boolean isBuffer(Object receiver) {
290+
return false;
291+
}
292+
293+
@Abstract(ifExported = {"isBuffer", "getBufferBytes"})
294+
public int getBufferLength(Object receiver) throws UnsupportedMessageException {
295+
throw UnsupportedMessageException.create();
296+
}
297+
298+
@Abstract(ifExported = {"isBuffer", "getBufferLength"})
299+
public byte[] getBufferBytes(Object receiver) throws UnsupportedMessageException {
300+
throw UnsupportedMessageException.create();
301+
}
302+
288303
public static boolean checkIsIterable(PythonObjectLibrary library, ContextReference<PythonContext> contextRef, VirtualFrame frame, Object object, Node callNode) {
289304
PythonContext context = contextRef.get();
290305
PException caughtException = IndirectCallContext.enter(frame, context, callNode);

0 commit comments

Comments
 (0)