ANN (bis): Release 0.1 of Haskell/Java VM Bridge
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
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
* 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.
* 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