ANN (bis): Release 0.1 of Haskell/Java VM Bridge
Ashley Yakeley
ashley@semantic.org
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