public class com.oracle.graal.python.runtime.NativeLibrary
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.graal.python.runtime.NativeLibrary
super_class: java.lang.Object
{
private static final com.oracle.truffle.api.TruffleLogger LOGGER;
descriptor: Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int functionsCount;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.graal.python.runtime.NativeLibrary$NFIBackend nfiBackend;
descriptor: Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String noNativeAccessHelp;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean optional;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.lang.Object[] cachedFunctions;
descriptor: [Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.lang.Object cachedLibrary;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile com.oracle.truffle.api.interop.InteropLibrary cachedLibraryInterop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.lang.Object dummy;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/graal/python/runtime/NativeLibrary;
invokestatic com.oracle.graal.python.PythonLanguage.getLogger:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
putstatic com.oracle.graal.python.runtime.NativeLibrary.LOGGER:Lcom/oracle/truffle/api/TruffleLogger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, int, com.oracle.graal.python.runtime.NativeLibrary$NFIBackend, java.lang.String, boolean);
descriptor: (Ljava/lang/String;ILcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 2
putfield com.oracle.graal.python.runtime.NativeLibrary.functionsCount:I
2: aload 0
aload 1
putfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
3: aload 0
aload 3
putfield com.oracle.graal.python.runtime.NativeLibrary.nfiBackend:Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
4: aload 0
aload 4
putfield com.oracle.graal.python.runtime.NativeLibrary.noNativeAccessHelp:Ljava/lang/String;
5: aload 0
iload 5
putfield com.oracle.graal.python.runtime.NativeLibrary.optional:Z
6: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 7 1 name Ljava/lang/String;
0 7 2 functionsCount I
0 7 3 nfiBackend Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
0 7 4 noNativeAccessHelp Ljava/lang/String;
0 7 5 optional Z
MethodParameters:
Name Flags
name
functionsCount
nfiBackend
noNativeAccessHelp
optional
private java.lang.Object getCachedLibrary(com.oracle.graal.python.runtime.PythonContext);
descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibrary:Ljava/lang/Object;
ifnonnull 12
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibrary:Ljava/lang/Object;
ifnonnull 8
4: aload 0
aload 1
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.loadLibrary:(Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/Object;
astore 3
start local 3 5: aload 3
ifnull 8
6: aload 0
aload 3
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibraryInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
7: aload 0
aload 3
putfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibrary:Ljava/lang/Object;
end local 3 8: StackMap locals: com.oracle.graal.python.runtime.NativeLibrary
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibrary:Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 13 1 context Lcom/oracle/graal/python/runtime/PythonContext;
5 8 3 lib Ljava/lang/Object;
Exception table:
from to target type
3 9 10 any
10 11 10 any
MethodParameters:
Name Flags
context
private java.lang.Object getCachedFunction(com.oracle.graal.python.runtime.PythonContext, com.oracle.graal.python.runtime.NativeLibrary$NativeFunction);
descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.getCachedLibrary:(Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/Object;
astore 3
start local 3 1: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedFunctions:[Ljava/lang/Object;
ifnonnull 10
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
3: aload 0
dup
astore 4
monitorenter
4: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedFunctions:[Ljava/lang/Object;
ifnonnull 6
5: aload 0
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.functionsCount:I
anewarray java.lang.Object
putfield com.oracle.graal.python.runtime.NativeLibrary.cachedFunctions:[Ljava/lang/Object;
6: StackMap locals: java.lang.Object com.oracle.graal.python.runtime.NativeLibrary
StackMap stack:
aload 4
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.ordinal:()I
istore 4
start local 4 11: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedFunctions:[Ljava/lang/Object;
iload 4
aaload
ifnonnull 20
12: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
13: aload 0
dup
astore 5
monitorenter
14: aload 0
aload 0
aload 3
aload 2
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.getFunction:(Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;)Ljava/lang/Object;
putfield com.oracle.graal.python.runtime.NativeLibrary.dummy:Ljava/lang/Object;
15: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedFunctions:[Ljava/lang/Object;
iload 4
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.dummy:Ljava/lang/Object;
aastore
16: aload 5
monitorexit
17: goto 20
StackMap locals: com.oracle.graal.python.runtime.NativeLibrary com.oracle.graal.python.runtime.PythonContext com.oracle.graal.python.runtime.NativeLibrary$NativeFunction java.lang.Object int com.oracle.graal.python.runtime.NativeLibrary
StackMap stack: java.lang.Throwable
18: aload 5
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedFunctions:[Ljava/lang/Object;
iload 4
aaload
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 21 1 context Lcom/oracle/graal/python/runtime/PythonContext;
0 21 2 function Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;
1 21 3 lib Ljava/lang/Object;
11 21 4 functionIndex I
Exception table:
from to target type
4 7 8 any
8 9 8 any
14 17 18 any
18 19 18 any
MethodParameters:
Name Flags
context
function
private java.lang.Object getFunction(com.oracle.graal.python.runtime.PythonContext, com.oracle.graal.python.runtime.NativeLibrary$NativeFunction);
descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
aload 1
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.getCachedLibrary:(Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/Object;
astore 3
start local 3 2: aload 0
aload 3
aload 2
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.getFunction:(Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 3 1 context Lcom/oracle/graal/python/runtime/PythonContext;
0 3 2 function Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;
2 3 3 lib Ljava/lang/Object;
MethodParameters:
Name Flags
context
function
private java.lang.Object getFunction(java.lang.Object, com.oracle.graal.python.runtime.NativeLibrary$NativeFunction);
descriptor: (Ljava/lang/Object;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibraryInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 1
aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.name:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 3
start local 3 2: invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 3
ldc "bind"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.signature:()Ljava/lang/String;
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
3: areturn
end local 3 4: StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.InteropException
astore 3
start local 3 5: new java.lang.IllegalStateException
dup
ldc "Cannot load symbol '%s' from the internal shared library '%s'"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.name:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 3
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 6 1 lib Ljava/lang/Object;
0 6 2 function Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;
2 4 3 symbol Ljava/lang/Object;
5 6 3 e Lcom/oracle/truffle/api/interop/InteropException;
Exception table:
from to target type
1 3 4 Class com.oracle.truffle.api.interop.UnsupportedMessageException
1 3 4 Class com.oracle.truffle.api.interop.UnknownIdentifierException
1 3 4 Class com.oracle.truffle.api.interop.ArityException
1 3 4 Class com.oracle.truffle.api.interop.UnsupportedTypeException
MethodParameters:
Name Flags
lib
function
private java.lang.Object loadLibrary(com.oracle.graal.python.runtime.PythonContext);
descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 1
invokevirtual com.oracle.graal.python.runtime.PythonContext.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.isNativeAccessAllowed:()Z
ifeq 22
2: aload 0
aload 1
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.getLibPath:(Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/String;
astore 2
start local 2 3: ldc "%sload (RTLD_LOCAL) \"%s\""
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.nfiBackend:Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
getfield com.oracle.graal.python.runtime.NativeLibrary$NFIBackend.withClause:Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 4: getstatic com.oracle.graal.python.runtime.NativeLibrary.LOGGER:Lcom/oracle/truffle/api/TruffleLogger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 6
5: getstatic com.oracle.graal.python.runtime.NativeLibrary.LOGGER:Lcom/oracle/truffle/api/TruffleLogger;
ldc "Loading native library %s from path %s %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.nfiBackend:Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
getfield com.oracle.graal.python.runtime.NativeLibrary$NFIBackend.withClause:Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.fine:(Ljava/lang/String;)V
6: StackMap locals: java.lang.String java.lang.String
StackMap stack:
ldc "nfi"
aload 3
new java.lang.StringBuilder
dup
ldc "load:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
iconst_1
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.internal:(Z)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
astore 4
start local 4 7: aload 1
invokevirtual com.oracle.graal.python.runtime.PythonContext.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 4
iconst_0
anewarray java.lang.String
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.parseInternal:(Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
8: areturn
9: StackMap locals: com.oracle.graal.python.runtime.NativeLibrary com.oracle.graal.python.runtime.PythonContext java.lang.String java.lang.String com.oracle.truffle.api.source.Source
StackMap stack: java.lang.RuntimeException
astore 5
start local 5 10: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.optional:Z
ifeq 11
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
goto 12
StackMap locals: java.lang.RuntimeException
StackMap stack:
11: getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
StackMap locals:
StackMap stack: java.util.logging.Level
12: astore 6
start local 6 13: getstatic com.oracle.graal.python.runtime.NativeLibrary.LOGGER:Lcom/oracle/truffle/api/TruffleLogger;
aload 6
invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 15
14: getstatic com.oracle.graal.python.runtime.NativeLibrary.LOGGER:Lcom/oracle/truffle/api/TruffleLogger;
aload 6
aload 5
aload 2
aload 3
invokedynamic get(Ljava/lang/String;Ljava/lang/String;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/oracle/graal/python/runtime/NativeLibrary.lambda$0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; (6)
()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/Throwable;Ljava/util/function/Supplier;)V
15: StackMap locals: java.util.logging.Level
StackMap stack:
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.optional:Z
ifne 27
16: new java.lang.RuntimeException
dup
17: ldc "Cannot load supporting native library '%s'. Either the shared library file does not exist, or your system may be missing some dependencies. Turn on logging with --log.%s.level=INFO for more details. %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
18: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
aastore
dup
iconst_1
19: ldc Lcom/oracle/graal/python/runtime/NativeLibrary;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_2
20: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.noNativeAccessHelp:Ljava/lang/String;
aastore
21: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 22: StackMap locals: com.oracle.graal.python.runtime.NativeLibrary com.oracle.graal.python.runtime.PythonContext
StackMap stack:
new java.lang.RuntimeException
dup
23: ldc "Cannot load supporting native library '%s' because the native access is not allowed. The native access should be allowed when running GraalPython via the graalpython command. If you are embedding GraalPython using the Context API, make sure to allow native access using 'allowNativeAccess(true)'. %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
24: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
aastore
dup
iconst_1
25: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.noNativeAccessHelp:Ljava/lang/String;
aastore
26: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
getstatic com.oracle.graal.python.runtime.NativeLibrary$NativeLibraryCannotBeLoaded.INSTANCE:Lcom/oracle/graal/python/runtime/NativeLibrary$NativeLibraryCannotBeLoaded;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 28 1 context Lcom/oracle/graal/python/runtime/PythonContext;
3 22 2 path Ljava/lang/String;
4 22 3 src Ljava/lang/String;
7 22 4 loadSrc Lcom/oracle/truffle/api/source/Source;
10 22 5 ex Ljava/lang/RuntimeException;
13 22 6 level Ljava/util/logging/Level;
Exception table:
from to target type
7 8 9 Class java.lang.RuntimeException
MethodParameters:
Name Flags
context
private java.lang.String getLibPath(com.oracle.graal.python.runtime.PythonContext);
descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: new java.lang.StringBuilder
dup
aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.name:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic com.oracle.graal.python.builtins.modules.ImpModuleBuiltins$ExtensionSuffixesNode.getSoAbi:(Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 2: aload 1
invokevirtual com.oracle.graal.python.runtime.PythonContext.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
aload 1
invokevirtual com.oracle.graal.python.runtime.PythonContext.getCAPIHome:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getInternalTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
astore 3
start local 3 3: aload 3
aload 2
invokevirtual com.oracle.truffle.api.TruffleFile.resolve:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.truffle.api.TruffleFile.getPath:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 5 1 context Lcom/oracle/graal/python/runtime/PythonContext;
2 5 2 libPythonName Ljava/lang/String;
3 5 3 homePath Lcom/oracle/truffle/api/TruffleFile;
4 5 4 file Lcom/oracle/truffle/api/TruffleFile;
MethodParameters:
Name Flags
context
protected java.lang.Object callUncached(com.oracle.graal.python.runtime.PythonContext, com.oracle.graal.python.runtime.NativeLibrary$NativeFunction, java.lang.Object[]);
descriptor: (Lcom/oracle/graal/python/runtime/PythonContext;Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: aload 0
aload 1
invokevirtual com.oracle.graal.python.runtime.NativeLibrary.getCachedLibrary:(Lcom/oracle/graal/python/runtime/PythonContext;)Ljava/lang/Object;
astore 4
start local 4 2: aload 4
ifnull 9
3: aload 0
getfield com.oracle.graal.python.runtime.NativeLibrary.cachedLibraryInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4
aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.name:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.readMember:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 4: aload 5
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 5
ldc "bind"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.signature:()Ljava/lang/String;
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.invokeMember:(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 5: aload 6
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 6
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
6: areturn
end local 6 end local 5 7: StackMap locals: com.oracle.graal.python.runtime.NativeLibrary com.oracle.graal.python.runtime.PythonContext com.oracle.graal.python.runtime.NativeLibrary$NativeFunction java.lang.Object[] java.lang.Object
StackMap stack: java.lang.Exception
astore 5
start local 5 8: aload 2
invokeinterface com.oracle.graal.python.runtime.NativeLibrary$NativeFunction.name:()Ljava/lang/String;
aload 5
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 5 9: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/graal/python/runtime/NativeLibrary;
0 10 1 context Lcom/oracle/graal/python/runtime/PythonContext;
0 10 2 f Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;
0 10 3 args [Ljava/lang/Object;
2 10 4 lib Ljava/lang/Object;
4 7 5 symbol Ljava/lang/Object;
5 7 6 function Ljava/lang/Object;
8 9 5 e Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.Exception
MethodParameters:
Name Flags
context
f
args
public static <T extends java.lang.Enum<T> extends com.oracle.graal.python.runtime.NativeLibrary$NativeFunction> com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary<T> create(java.lang.String, T[], java.lang.String, boolean);
descriptor: (Ljava/lang/String;[Ljava/lang/Enum;Ljava/lang/String;Z)Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
getstatic com.oracle.graal.python.runtime.NativeLibrary$NFIBackend.NATIVE:Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
aload 2
iload 3
invokestatic com.oracle.graal.python.runtime.NativeLibrary.create:(Ljava/lang/String;[Ljava/lang/Enum;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;Z)Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
0 1 1 functions [Ljava/lang/Enum;
0 1 2 noNativeAccessHelp Ljava/lang/String;
0 1 3 canIgnore Z
Signature: <T:Ljava/lang/Enum<TT;>;:Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;>(Ljava/lang/String;[TT;Ljava/lang/String;Z)Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary<TT;>;
MethodParameters:
Name Flags
name
functions
noNativeAccessHelp
canIgnore
public static <T extends java.lang.Enum<T> extends com.oracle.graal.python.runtime.NativeLibrary$NativeFunction> com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary<T> create(java.lang.String, T[], com.oracle.graal.python.runtime.NativeLibrary$NFIBackend, java.lang.String, boolean);
descriptor: (Ljava/lang/String;[Ljava/lang/Enum;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;Z)Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary
dup
aload 0
aload 1
arraylength
aload 2
aload 3
iload 4
invokespecial com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary.<init>:(Ljava/lang/String;ILcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;Z)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
0 1 1 functions [Ljava/lang/Enum;
0 1 2 nfiBackendName Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;
0 1 3 noNativeAccessHelp Ljava/lang/String;
0 1 4 canIgnore Z
Signature: <T:Ljava/lang/Enum<TT;>;:Lcom/oracle/graal/python/runtime/NativeLibrary$NativeFunction;>(Ljava/lang/String;[TT;Lcom/oracle/graal/python/runtime/NativeLibrary$NFIBackend;Ljava/lang/String;Z)Lcom/oracle/graal/python/runtime/NativeLibrary$TypedNativeLibrary<TT;>;
MethodParameters:
Name Flags
name
functions
nfiBackendName
noNativeAccessHelp
canIgnore
private static java.lang.String lambda$0(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=2
0: ldc "Error while opening shared library at '%s'.\nFull NFI source: %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "NativeLibrary.java"
NestMembers:
com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction com.oracle.graal.python.runtime.NativeLibrary$NFIBackend com.oracle.graal.python.runtime.NativeLibrary$NativeFunction com.oracle.graal.python.runtime.NativeLibrary$NativeLibraryCannotBeLoaded com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary
InnerClasses:
public abstract ExtensionSuffixesNode = com.oracle.graal.python.builtins.modules.ImpModuleBuiltins$ExtensionSuffixesNode of com.oracle.graal.python.builtins.modules.ImpModuleBuiltins
public abstract InvokeNativeFunction = com.oracle.graal.python.runtime.NativeLibrary$InvokeNativeFunction of com.oracle.graal.python.runtime.NativeLibrary
final NFIBackend = com.oracle.graal.python.runtime.NativeLibrary$NFIBackend of com.oracle.graal.python.runtime.NativeLibrary
abstract NativeFunction = com.oracle.graal.python.runtime.NativeLibrary$NativeFunction of com.oracle.graal.python.runtime.NativeLibrary
public NativeLibraryCannotBeLoaded = com.oracle.graal.python.runtime.NativeLibrary$NativeLibraryCannotBeLoaded of com.oracle.graal.python.runtime.NativeLibrary
public final TypedNativeLibrary = com.oracle.graal.python.runtime.NativeLibrary$TypedNativeLibrary of com.oracle.graal.python.runtime.NativeLibrary
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles