Skip to content

Commit eed858a

Browse files
committed
[GR-17457] Fail early if truffleruby jars are run on Windows
PullRequest: truffleruby/3975 (cherry picked from commit 26231c4)
1 parent 52dede9 commit eed858a

File tree

3 files changed

+12
-32
lines changed

3 files changed

+12
-32
lines changed

src/main/java/org/truffleruby/core/support/IONodes.java

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
import org.truffleruby.language.control.RaiseException;
8888
import org.truffleruby.language.library.RubyStringLibrary;
8989
import org.truffleruby.language.objects.AllocationTracing;
90-
import org.truffleruby.platform.Platform;
9190

9291
import com.oracle.truffle.api.CompilerDirectives;
9392
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
@@ -153,9 +152,6 @@ boolean fnmatch(Object pattern, Object path, int flags,
153152
flags) != FNM_NOMATCH;
154153
}
155154

156-
157-
private static final boolean DOSISH = Platform.IS_WINDOWS;
158-
159155
private static final int FNM_NOESCAPE = 0x01;
160156
private static final int FNM_PATHNAME = 0x02;
161157
private static final int FNM_DOTMATCH = 0x04;
@@ -164,7 +160,7 @@ boolean fnmatch(Object pattern, Object path, int flags,
164160
public static final int FNM_NOMATCH = 1;
165161

166162
private static boolean isdirsep(char c) {
167-
return c == '/' || DOSISH && c == '\\';
163+
return c == '/';
168164
}
169165

170166
private static boolean isdirsep(byte c) {
@@ -259,19 +255,15 @@ private static int fnmatch_helper(byte[] bytes, int pstart, int pend, byte[] str
259255
if (s >= send) {
260256
return FNM_NOMATCH;
261257
}
262-
if (DOSISH && (pathname && isdirsep(c) && isdirsep(string[s]))) {
263-
} else {
264-
if (nocase) {
265-
if (Character.toLowerCase(c) != Character.toLowerCase((char) string[s])) {
266-
return FNM_NOMATCH;
267-
}
268-
269-
} else {
270-
if (c != (char) (string[s] & 0xFF)) {
271-
return FNM_NOMATCH;
272-
}
258+
if (nocase) {
259+
if (Character.toLowerCase(c) != Character.toLowerCase((char) string[s])) {
260+
return FNM_NOMATCH;
273261
}
274262

263+
} else {
264+
if (c != (char) (string[s] & 0xFF)) {
265+
return FNM_NOMATCH;
266+
}
275267
}
276268
s++;
277269
break;

src/main/java/org/truffleruby/platform/Platform.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,8 @@ public abstract class Platform extends BasicPlatform {
3535
public static final String LIB_SUFFIX = determineLibSuffix();
3636
public static final String CEXT_SUFFIX = OS == OS_TYPE.DARWIN ? ".bundle" : LIB_SUFFIX;
3737

38-
public static final boolean IS_WINDOWS = OS == OS_TYPE.WINDOWS;
39-
4038
private static String determineLibSuffix() {
4139
switch (OS) {
42-
case WINDOWS:
43-
return ".dll";
4440
case DARWIN:
4541
return ".dylib";
4642
default:

src/shared/java/org/truffleruby/shared/BasicPlatform.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ public abstract class BasicPlatform {
4141

4242
public enum OS_TYPE {
4343
LINUX("linux"),
44-
DARWIN("darwin"),
45-
SOLARIS("solaris"),
46-
WINDOWS("mswin32");
44+
DARWIN("darwin");
4745

4846
private final String rubyName;
4947

@@ -54,8 +52,7 @@ public enum OS_TYPE {
5452

5553
public enum ARCH {
5654
AMD64("x86_64"),
57-
AARCH64("aarch64"),
58-
UNKNOWN("unknown");
55+
AARCH64("aarch64");
5956

6057
private final String rubyName;
6158

@@ -79,14 +76,9 @@ public static OS_TYPE determineOS() {
7976
final String osName = System.getProperty("os.name");
8077

8178
final String lowerOSName = osName.toLowerCase(Locale.ENGLISH);
82-
if (lowerOSName.contains("windows")) {
83-
return OS_TYPE.WINDOWS;
84-
}
8579

8680
if (lowerOSName.startsWith("mac") || lowerOSName.startsWith("darwin")) {
8781
return OS_TYPE.DARWIN;
88-
} else if (lowerOSName.startsWith("sunos") || lowerOSName.startsWith("solaris")) {
89-
return OS_TYPE.SOLARIS;
9082
}
9183

9284
final String upperOSName = osName.toUpperCase(Locale.ENGLISH);
@@ -96,7 +88,7 @@ public static OS_TYPE determineOS() {
9688
}
9789
}
9890

99-
throw new UnsupportedOperationException("Unknown platform: " + osName);
91+
throw new UnsupportedOperationException("Unsupported operating system: " + osName);
10092
}
10193

10294
private static ARCH determineArchitecture() {
@@ -110,7 +102,7 @@ private static ARCH determineArchitecture() {
110102
case "arm64":
111103
return ARCH.AARCH64;
112104
default:
113-
return ARCH.UNKNOWN;
105+
throw new UnsupportedOperationException("Unsupported CPU architecture: " + architecture);
114106
}
115107
}
116108

0 commit comments

Comments
 (0)