-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP: CompilerRuntime module encapsulates FFI
- Loading branch information
1 parent
848ad05
commit 40c35d2
Showing
36 changed files
with
276 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
#!/bin/sh | ||
|
||
# resolve links - $0 may be a softlink | ||
PRG="$0" | ||
|
||
while [ -h "$PRG" ]; do | ||
ls=`ls -ld "$PRG"` | ||
link=`expr "$ls" : '.*-> \(.*\)$'` | ||
if expr "$link" : '/.*' > /dev/null; then | ||
PRG="$link" | ||
else | ||
PRG=`dirname "$PRG"`/"$link" | ||
fi | ||
done | ||
|
||
PRGDIR=`dirname "$PRG"` | ||
BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd` | ||
|
||
# OS specific support. $var _must_ be set to either true or false. | ||
cygwin=false; | ||
darwin=false; | ||
case "`uname`" in | ||
CYGWIN*) cygwin=true ;; | ||
Darwin*) darwin=true | ||
if [ -z "$JAVA_VERSION" ] ; then | ||
JAVA_VERSION="CurrentJDK" | ||
else | ||
echo "Using Java version: $JAVA_VERSION" | ||
fi | ||
if [ -z "$JAVA_HOME" ]; then | ||
if [ -x "/usr/libexec/java_home" ]; then | ||
JAVA_HOME=`/usr/libexec/java_home` | ||
else | ||
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home | ||
fi | ||
fi | ||
;; | ||
esac | ||
|
||
if [ -z "$JAVA_HOME" ] ; then | ||
if [ -r /etc/gentoo-release ] ; then | ||
JAVA_HOME=`java-config --jre-home` | ||
fi | ||
fi | ||
|
||
# For Cygwin, ensure paths are in UNIX format before anything is touched | ||
if $cygwin ; then | ||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | ||
fi | ||
|
||
# If a specific java binary isn't specified search for the standard 'java' binary | ||
if [ -z "$JAVACMD" ] ; then | ||
if [ -n "$JAVA_HOME" ] ; then | ||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | ||
# IBM's JDK on AIX uses strange locations for the executables | ||
JAVACMD="$JAVA_HOME/jre/sh/java" | ||
else | ||
JAVACMD="$JAVA_HOME/bin/java" | ||
fi | ||
else | ||
JAVACMD=`which java` | ||
fi | ||
fi | ||
|
||
if [ ! -x "$JAVACMD" ] ; then | ||
echo "Error: JAVA_HOME is not defined correctly." 1>&2 | ||
echo " We cannot execute $JAVACMD" 1>&2 | ||
exit 1 | ||
fi | ||
|
||
# For Cygwin, switch paths to Windows format before running java | ||
if $cygwin; then | ||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` | ||
[ -n "$HOME" ] && HOME=`cygpath --path --windows "$HOME"` | ||
[ -n "$BASEDIR" ] && BASEDIR=`cygpath --path --windows "$BASEDIR"` | ||
fi | ||
|
||
exec "$JAVACMD" $JAVA_OPTS \ | ||
-Xss8m \ | ||
-Dapp.name="blodwenjvm" \ | ||
-Dapp.pid="$$" \ | ||
-Dapp.home="$BASEDIR" \ | ||
-Dbasedir="$BASEDIR" \ | ||
-cp \ | ||
$BASEDIR/Blodwen/blodwenjvmout:$IDRIS_JVM_HOME/idris-jvm-runtime.jar \ | ||
main.Main \ | ||
"$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Manifest-Version: 1.0 | ||
Main-Class: main.Main | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
module CompilerRuntime | ||
|
||
import Java.Lang | ||
import public Control.IOExcept | ||
import public IdrisJvm.IO | ||
import public IdrisJvm.File | ||
import public IdrisJvm.System | ||
import public IdrisJvm.Data.Buffer | ||
public export | ||
BIO : Type -> Type | ||
BIO = JVM_IO | ||
|
||
public export | ||
BIOExcept : Type -> Type -> Type | ||
BIOExcept = IOExcept' FFI_JVM | ||
|
||
public export | ||
tmpFileName : BIO String | ||
tmpFileName = getTemporaryFileName | ||
|
||
public export | ||
hexNum : Int -> BIO () | ||
hexNum num = print $ JavaString.format "%06x" !(listToArray [the Object $ believe_me $ JInteger.valueOf num]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.