Skip to content

Commit 4516ac5

Browse files
committed
Log unexpected HPy definition kinds
1 parent 60699df commit 4516ac5

File tree

6 files changed

+28
-14
lines changed

6 files changed

+28
-14
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyContext.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,20 @@ public final class GraalHPyContext extends CExtContext {
127127
public static final String HPY_ABI_TAG = "hpy0";
128128
// {{end autogen}}
129129

130+
private static final String LOGGER_HPY_NAME = "hpy";
130131
private static final String HPY_EXT = ".hpy";
131-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyContext.class);
132+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyContext.class);
132133

133134
public static final long SIZEOF_LONG = java.lang.Long.BYTES;
134135
private static final long NATIVE_ARGUMENT_STACK_SIZE = 1 << 15; // 32 kB stack size
135136

136137
// "blah.hpy123[-graalpy231-310].so"
137138
private static final Pattern SO_NAME_PATTERN = Pattern.compile(".*" + Pattern.quote(HPY_EXT) + "(\\d+)(?:-[\\w-]+)?\\.so$");
138139

140+
public static TruffleLogger getLogger(Class<?> clazz) {
141+
return PythonLanguage.getLogger(LOGGER_HPY_NAME + "." + clazz.getSimpleName());
142+
}
143+
139144
@TruffleBoundary
140145
public static GraalHPyContext ensureHPyWasLoaded(Node node, PythonContext context, TruffleString name, TruffleString path) throws IOException, ApiInitException, ImportException {
141146
if (!context.hasHPyContext()) {
@@ -505,7 +510,7 @@ private RootCallTarget getReferenceCleanerCallTarget() {
505510
* exchanging process, see also {@link #references}).
506511
*/
507512
static final class GraalHPyReferenceCleanerRunnable implements Runnable {
508-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyReferenceCleanerRunnable.class);
513+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyReferenceCleanerRunnable.class);
509514
private final ReferenceQueue<?> referenceQueue;
510515
private GraalHPyHandleReference cleanerList;
511516

@@ -606,7 +611,7 @@ public void run() {
606611
*/
607612
private static final class HPyNativeSpaceCleanerRootNode extends PRootNode {
608613
private static final Signature SIGNATURE = new Signature(-1, false, -1, false, tsArray("refs"), EMPTY_TRUFFLESTRING_ARRAY);
609-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyContext.HPyNativeSpaceCleanerRootNode.class);
614+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(HPyNativeSpaceCleanerRootNode.class);
610615

611616
@Child private PCallHPyFunction callBulkFree;
612617

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyContextFunctions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2307,7 +2307,7 @@ static Object doGeneric(@SuppressWarnings("unused") Object hpyContext, Object ob
23072307
@HPyContextFunction("ctx_New")
23082308
@GenerateUncached
23092309
public abstract static class GraalHPyNew extends HPyTernaryContextFunction {
2310-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyNew.class);
2310+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyNew.class);
23112311
public static final String INVALID_BUILT_IN_SHAPE = "invalid built-in shape";
23122312

23132313
@Specialization
@@ -2403,7 +2403,7 @@ static Object doGeneric(@SuppressWarnings("unused") Object hpyContext, Object ob
24032403
@GenerateUncached
24042404
public abstract static class GraalHPyTypeGenericNew extends HPy5ContextFunction {
24052405

2406-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyTypeGenericNew.class);
2406+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyTypeGenericNew.class);
24072407

24082408
@Specialization
24092409
@SuppressWarnings("unused")

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyNodes.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
import java.util.ArrayList;
7878
import java.util.LinkedList;
7979
import java.util.List;
80+
import java.util.logging.Level;
8081

8182
import com.oracle.graal.python.PythonLanguage;
8283
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
@@ -414,6 +415,8 @@ public static HPyFromCharPointerNode getUncached(GraalHPyContext hpyContext) {
414415
@GenerateUncached
415416
public abstract static class GraalHPyModuleCreate extends Node {
416417

418+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyModuleCreate.class);
419+
417420
public abstract Object execute(GraalHPyContext hpyContext, TruffleString mName, Object spec, Object moduleDefPtr);
418421

419422
@Specialization
@@ -526,10 +529,13 @@ static Object doGeneric(GraalHPyContext hpyContext, TruffleString mName, Object
526529
case GraalHPyDef.HPY_DEF_KIND_MEMBER:
527530
case GraalHPyDef.HPY_DEF_KIND_GETSET:
528531
// silently ignore
529-
// TODO(fa): maybe we should log a warning
532+
LOGGER.warning("get/set definitions are not supported for modules");
530533
break;
531534
default:
532-
assert false : "unknown definition kind";
535+
if (LOGGER.isLoggable(Level.SEVERE)) {
536+
LOGGER.severe(PythonUtils.formatJString("unknown definition kind: %d", kind));
537+
}
538+
assert false;
533539
}
534540
}
535541
} catch (UnsupportedMessageException | InvalidArrayIndexException e) {
@@ -805,7 +811,6 @@ private static boolean checkLayout(Object methodDef) {
805811
*/
806812
@GenerateUncached
807813
public abstract static class HPyAddLegacyGetSetDefNode extends PNodeWithContext {
808-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(HPyAddLegacyGetSetDefNode.class);
809814

810815
public abstract GetSetDescriptor execute(GraalHPyContext context, Object owner, Object legacyGetSetDef);
811816

@@ -2360,10 +2365,11 @@ record HPyTypeSpecParam(int kind, Object object) {
23602365
@GenerateUncached
23612366
abstract static class HPyCreateTypeFromSpecNode extends Node {
23622367

2363-
abstract Object execute(GraalHPyContext context, Object typeSpec, Object typeSpecParamArray);
2364-
2368+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(HPyCreateTypeFromSpecNode.class);
23652369
static final TruffleString T_PYTRUFFLE_CREATETYPE = tsLiteral("PyTruffle_CreateType");
23662370

2371+
abstract Object execute(GraalHPyContext context, Object typeSpec, Object typeSpecParamArray);
2372+
23672373
@Specialization
23682374
Object doGeneric(GraalHPyContext context, Object typeSpec, Object typeSpecParamArray,
23692375
@Bind("this") Node inliningTarget,
@@ -2528,7 +2534,10 @@ Object doGeneric(GraalHPyContext context, Object typeSpec, Object typeSpecParamA
25282534
property = new HPyProperty(getSetDescriptor.getName(), getSetDescriptor);
25292535
break;
25302536
default:
2531-
assert false : "unknown definition kind";
2537+
if (LOGGER.isLoggable(Level.SEVERE)) {
2538+
LOGGER.severe(PythonUtils.formatJString("unknown definition kind: %d", kind));
2539+
}
2540+
assert false;
25322541
}
25332542

25342543
if (property != null) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/GraalHPyObjectBuiltins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public static final class HPyObjectNewNode extends PRootNode {
8787

8888
private static final Signature SIGNATURE = new Signature(-1, true, 1, false, tsArray("self"), KEYWORDS_HIDDEN_SUPERCONS, false);
8989

90-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(HPyObjectNewNode.class);
90+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(HPyObjectNewNode.class);
9191

9292
private static PKeyword[] createKwDefaults(Object superConstructor) {
9393
if (superConstructor != null) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/jni/GraalHPyJNIContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public final class GraalHPyJNIContext extends GraalHPyNativeContext {
189189

190190
private static final String J_NAME = "HPy Universal ABI (GraalVM JNI backend)";
191191

192-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyJNIContext.class);
192+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyJNIContext.class);
193193

194194
private static boolean jniBackendLoaded = false;
195195

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/hpy/llvm/GraalHPyLLVMContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
public final class GraalHPyLLVMContext extends GraalHPyNativeContext {
139139

140140
private static final String J_NAME = "HPy Universal ABI (GraalVM LLVM backend)";
141-
private static final TruffleLogger LOGGER = PythonLanguage.getLogger(GraalHPyLLVMContext.class);
141+
private static final TruffleLogger LOGGER = GraalHPyContext.getLogger(GraalHPyLLVMContext.class);
142142

143143
/** A resolving cache from Java string to HPyContextMember */
144144
public static HashMap<String, HPyContextMember> contextMembersByName;

0 commit comments

Comments
 (0)