clarified Java runtime options for 32 vs. 64 bit;
authorwenzelm
Tue, 08 Sep 2015 15:37:13 +0200
changeset 61134 80ac5e17772d
parent 61133 c6d62d092246
child 61135 8f7d802b7a71
clarified Java runtime options for 32 vs. 64 bit;
Admin/Linux/Isabelle.run
Admin/lib/Tools/makedist_bundle
NEWS
--- a/Admin/Linux/Isabelle.run	Tue Sep 08 13:52:13 2015 +0200
+++ b/Admin/Linux/Isabelle.run	Tue Sep 08 15:37:13 2015 +0200
@@ -17,15 +17,23 @@
 source "$ISABELLE_HOME/lib/scripts/isabelle-platform"
 
 
+# Java runtime options
+
+ISABELLE_NAME="$(basename "$0" .run)"
+if [ -z "$ISABELLE_PLATFORM64" ]; then
+  declare -a JAVA_OPTIONS=($(perl -p -e 's,#.*$,,g;' "$ISABELLE_HOME/${ISABELLE_NAME}.options32"))
+else
+  declare -a JAVA_OPTIONS=($(perl -p -e 's,#.*$,,g;' "$ISABELLE_HOME/${ISABELLE_NAME}.options64"))
+fi
+
+
 # main
 
 #paranoia setting -- avoid problems of Java/Swing versus XIM/IBus etc.
 unset XMODIFIERS
 
 exec "$ISABELLE_HOME/contrib/jdk/${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}/jre/bin/java" \
-  "-Disabelle.home=$ISABELLE_HOME" \
-  {JAVA_ARGS} \
+  "-Disabelle.home=$ISABELLE_HOME" "${JAVA_OPTIONS[@]}" \
   -classpath "{CLASSPATH}" \
   "-splash:$ISABELLE_HOME/lib/logo/isabelle.gif" \
   isabelle.Main "$@"
-
--- a/Admin/lib/Tools/makedist_bundle	Tue Sep 08 13:52:13 2015 +0200
+++ b/Admin/lib/Tools/makedist_bundle	Tue Sep 08 15:37:13 2015 +0200
@@ -187,6 +187,23 @@
     purge_jdk "x86-linux"
     purge_jdk "x86_64-linux"
 
+    for PLATFORM in 32 64
+    do
+      (
+        echo "# Java runtime options for ${PLATFORM}bit platform"
+        declare -a JAVA_ARGS
+        if [ "$PLATFORM" = 32 ]; then
+          eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS32)"
+        else
+          eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS64)"
+        fi
+        for ARG in "${JAVA_ARGS[@]}"
+        do
+          echo "$ARG"
+        done
+      ) > "$ISABELLE_TARGET/${ISABELLE_NAME}.options${PLATFORM}"
+    done
+
     LINUX_CLASSPATH=""
     for ENTRY in "${DISTRIBITION_CLASSPATH[@]}"
     do
@@ -196,9 +213,9 @@
         LINUX_CLASSPATH="$LINUX_CLASSPATH:\\\$ISABELLE_HOME/$ENTRY"
       fi
     done
+
     cat "$ISABELLE_HOME/Admin/Linux/Isabelle.run" | \
-      perl -p > "$ISABELLE_TARGET/${ISABELLE_NAME}.run" \
-        -e "s,{JAVA_ARGS},$JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS,g; s,{CLASSPATH},$LINUX_CLASSPATH,;"
+      perl -p > "$ISABELLE_TARGET/${ISABELLE_NAME}.run" -e "s,{CLASSPATH},$LINUX_CLASSPATH,;"
     chmod +x "$ISABELLE_TARGET/${ISABELLE_NAME}.run"
 
     mv "$ISABELLE_TARGET/contrib/linux_app" "$TMP/."
@@ -240,9 +257,14 @@
       "$ISABELLE_TARGET/src/Tools/jEdit/dist/properties/jEdit.props"
 
     (
-      echo -e "# Java runtime options\r"
       declare -a JAVA_ARGS=()
-      eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS)"
+      if [ "$PLATFORM_FAMILY" = windows ]; then
+        echo -e "# Java runtime options for 32bit platform\r"
+        eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS32)"
+      else
+        echo -e "# Java runtime options for 64bit platform\r"
+        eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS64)"
+      fi
       for ARG in "${JAVA_ARGS[@]}"
       do
         echo -e "$ARG\r"
@@ -335,7 +357,7 @@
           cat "$APP_TEMPLATE/Info.plist-part1"
 
           declare -a OPTIONS=()
-          eval "OPTIONS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS)"
+          eval "OPTIONS=($ISABELLE_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_SYSTEM_OPTIONS $JEDIT_JAVA_OPTIONS64)"
           for OPT in "${OPTIONS[@]}"
           do
             echo "<string>$OPT</string>"
--- a/NEWS	Tue Sep 08 13:52:13 2015 +0200
+++ b/NEWS	Tue Sep 08 15:37:13 2015 +0200
@@ -21,6 +21,12 @@
 At least one Debugger view needs to be active to have any effect on the
 running ML program.
 
+* Java runtime options are determined separately for 32 vs. 64 bit
+platforms. The "isabelle jedit" command-line tool is subject to settings
+variables JEDIT_JAVA_SYSTEM_OPTIONS and JEDIT_JAVA_OPTIONS32 /
+JEDIT_JAVA_OPTIONS64. The desktop application uses a separate option
+file, depending on the platform family.
+
 
 *** Isar ***