-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathp2code-run-tornadovm.sh
More file actions
executable file
·49 lines (40 loc) · 1.24 KB
/
p2code-run-tornadovm.sh
File metadata and controls
executable file
·49 lines (40 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
# === Configuration ===
JAVA_SRC_FILE="$1"
OUTPUT_DIR="/tmp/tornado-bin"
TORNADO_JARS="$TORNADO_SDK/share/java/tornado/tornado-api-1.1.0.jar:$TORNADO_SDK/share/java/tornado/tornado-drivers-opencl-1.1.0.jar"
if [ -z "$JAVA_SRC_FILE" ]; then
echo "❌ Usage: ./p2code-run-tornadovm.sh <YourJavaFile.java>"
exit 1
fi
if [ ! -f "$JAVA_SRC_FILE" ]; then
echo "❌ File not found: $JAVA_SRC_FILE. Try passing the full path of the Java class."
exit 1
fi
# === Step 1: Compile ===
echo "🔧 Compiling $JAVA_SRC_FILE..."
$JAVA_HOME/bin/javac \
--release 21 \
--enable-preview \
-cp "$TORNADO_JARS" \
-g:vars \
-d "$OUTPUT_DIR" \
"$JAVA_SRC_FILE"
if [ $? -ne 0 ]; then
echo "❌ Compilation failed"
exit 1
fi
echo "✅ Compilation successful"
# === Step 2: Determine Fully Qualified Class Name ===
PACKAGE_LINE=$(grep "^package " "$JAVA_SRC_FILE")
CLASS_NAME=$(basename "$JAVA_SRC_FILE" .java)
if [ -n "$PACKAGE_LINE" ]; then
PACKAGE_NAME=$(echo "$PACKAGE_LINE" | sed 's/package //' | sed 's/;//')
FQCN="${PACKAGE_NAME}.${CLASS_NAME}"
else
FQCN="$CLASS_NAME"
fi
# === Step 3: Run with TornadoVM ===
echo "🚀 Running with TornadoVM: $FQCN"
TCLASSPATH="$OUTPUT_DIR:$TORNADO_JARS"
tornado --threadInfo -cp "$TCLASSPATH" "$FQCN"