diff --git a/truffle/src/com.oracle.truffle.api/src/com/oracle/truffle/api/InternalResource.java b/truffle/src/com.oracle.truffle.api/src/com/oracle/truffle/api/InternalResource.java index 15c65a2bd299..68da5d7e31e1 100644 --- a/truffle/src/com.oracle.truffle.api/src/com/oracle/truffle/api/InternalResource.java +++ b/truffle/src/com.oracle.truffle.api/src/com/oracle/truffle/api/InternalResource.java @@ -484,7 +484,12 @@ enum OS { * * @since 23.1 */ - WINDOWS("windows"); + WINDOWS("windows"), + + /** + * The IBM z/OS operating system. + */ + ZOS("z/OS"); private final String id; @@ -517,6 +522,8 @@ public static OS getCurrent() { return DARWIN; } else if (os.toLowerCase().startsWith("windows")) { return WINDOWS; + } else if (os.equalsIgnoreCase("z/OS")) { + return ZOS; } else { throw CompilerDirectives.shouldNotReachHere("Unsupported OS name " + os); } @@ -542,7 +549,13 @@ enum CPUArchitecture { * * @since 23.1 */ - AMD64("amd64"); + AMD64("amd64"), + + /** + * The IBM s390x 64-bit architecture. + * + */ + S390X("s390x"); private final String id; @@ -573,6 +586,7 @@ public static CPUArchitecture getCurrent() { return switch (arch) { case "amd64", "x86_64" -> AMD64; case "aarch64", "arm64" -> AARCH64; + case "s390x" -> S390X; default -> throw CompilerDirectives.shouldNotReachHere("Unsupported CPU architecture " + arch); }; } diff --git a/truffle/src/com.oracle.truffle.polyglot/src/com/oracle/truffle/polyglot/InternalResourceRoots.java b/truffle/src/com.oracle.truffle.polyglot/src/com/oracle/truffle/polyglot/InternalResourceRoots.java index de3fda5ee1d2..208dd378deeb 100644 --- a/truffle/src/com.oracle.truffle.polyglot/src/com/oracle/truffle/polyglot/InternalResourceRoots.java +++ b/truffle/src/com.oracle.truffle.polyglot/src/com/oracle/truffle/polyglot/InternalResourceRoots.java @@ -339,6 +339,7 @@ private static ResolvedCacheFolder findCacheRootDefault() { yield userCacheDir; } case WINDOWS -> new ResolvedCacheFolder(userHome.resolve(Path.of("AppData", "Local")), "user home", userHome); + case ZOS -> new ResolvedCacheFolder(userHome.resolve(".cache"), "user home", userHome); }; return container.resolve("org.graalvm.polyglot"); }