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

* 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.


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


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


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

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks