ANN (bis): Release 0.1 of Haskell/Java VM Bridge

Ashley Yakeley [email protected]
Tue, 18 Dec 2001 22:24:24 -0800


OK, the SourceForge file release system bug has been fixed, so I put the 
release files up there. Please download from there rather than from 
semantic.org.

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

Revised, expanded announcement...

-------
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=654
34>

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)


-- 
Ashley Yakeley, Seattle WA