Haskell/Java VM Bridge 0.1 Released

The first release, 0.1, of Haskell/Java VM Bridge is now available.

Haskell/Java VM Bridge allows Haskell programs access to the Java Virtual Machine. Features include:

* Calling of Java methods, access to fields, array-handling;

* Integration of garbage collectors;

* Reconciliation of exception models;

* Reconciliation of thread models, including 'synchronized'
monitor support and the ability to fork Haskell actions as
Java threads;

* Strong typing for Java classes and method argument lists
(as tuples), and use of Haskell lists as arrays;

* Creation of Java classes 'on the fly' (using DefineClass and
the Java Class File Format) that can have Haskell callback
methods;

* Lifted monads which do all the necessary JNI class and
method/field ID preloading and 'JNIEnv'-pointer variable
handling for you -- these can be automatically generated via
a tool (MakeJVMModule);

* Layered design includes lower-level IO-based interface;

* Automatic generation of modules for Java API classes;

* All relevant imports, flags and libraries etc. handled by
a single GHC package 'javavm';

* No 'unsafe' Haskell calls or pure function FFI anywhere.

This release should be 'beta' quality, but has undergone little testing.

You will need:

* An x86 machine running some form of Unix;

* GHC 5.02 or later;

* The appropriate JVM, installed in the appropriate place:

     \- IBM JDK/JRE 1.3 for x86, installed in /usr/lib/ibm-java/IBMJava2-13/

     \- Blackdown Port of Sun's JRE 1.3/Sun JDK 1.3 for x86, installed in

/usr/lib/j2sdk1.3/ and /usr/lib/j2re1.3/

No documentation is currently available, sorry. Two examples have been included: a trivial "hello world" program, and a program that shows a Java Frame containing an instance of a Haskell-defined subclass of Canvas that has a Haskell 'paint' method that draws an oval. You should be able to figure out most of it from that... and of course the source is available from SourceForge CVS.

<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/jvm-bridge/source/>

Be sure to download the correct .tar.gz file for your Java VM. Simple installation instructions are included in the file.

<http://sourceforge.net/project/showfiles.php?group_id=32318&release_id=65434>

Haskell/JVM Bridge and source code is licensed under the GNU Lesser GPL.

<http://sourceforge.net/projects/jvm-bridge/>

Future plans:

* documentation

* port to Cygwin

* port to Darwin/OS X (waiting on GHC)

* use of Java 1.4 API (waiting on Sun, though use of beta
versions is possible)

Posted by Ashley Yakeley 2001-12-19