>Now that Javasoft is on the verge of releasing the jdk1.2, I figure that
>it is time to try to call Java from Haskell again.

fine. do it.

Alternatively, you might scan your mailbox for related messages and find
one - addressed to you and to the Haskell list. Or you might check the
home page of that particular author and find a recent paper (IFL'98,
September, London) that discusses some of the issues and points to some
related work and documentation. And since there is still no link to my
Haskell/JNI pages from my home page, you might even ask me why I don't
seem to make any progress..

In that earlier posting, I mentioned that I intended to use Green Card
and JNI and that I wanted to have a basis for further experiments before
this year is over. The background and my design decisions are explained
in the IFL paper and I haven't announced any software because I don't
think it is ready yet (even if it was, it depends on software that
hasn't been released yet). 

And before others swamp me with personal email now;-), here are some
comments on the state of the art:

  - While it is reasonably easy to use the invocation API in Java's
    native interface (JNI) from C, I didn't have much luck in trying 
    to get JDKs in the 1.x range to cooperate with Hugs on my SUN
    SPARCstation. 
    
    My best bet are interactions with the user-level thread packages
    used in those JDK implementations (or, as SUN's JNI FAQ used to put
    it: ``The Solaris Java VM shipped with JDK 1.1 is not suitable for
    embedding into certain native applications. Because it depends on a
    user-level thread package to implement Java threads, the VM
    overrides a number of system calls in order to support non-blocking
    I/O. This may have undesirable affects on the hosting native
    application.'').

  - JDK1.2 betas have been available for some time now, so there is
    no need to wait for the official release to develop something.
    Of course, betas have bugs - e.g., JDK1.2beta3 had serious problems
    with its invocation API, betas change, so you have to track
    the changes, and betas might not have complete documentation.

  - Nevertheless, I've been testing successfully with JDK1.2beta4 and
    JDK1.2 RC1 (release candidate 1), using Hugs1.4June1998 and Green Card.
    Example programs run both on a SPARCstation with Solaris 2.6 (with
    the suitable linker patches) and on a PC with Windows/NT.

  - My tentative conclusion is that I'll probably be able to release 
    a beta version of Haskell/JNI by the end of this month (which is
    also the expected release date for JDK1.2 proper). I'll be looking
    for alpha-testers before that, but there are still some things
    I would like to check/change before I release anything..

  - As I said before: If anyone else is working on this, please let me
    know. Also, if you desperately want to be an alpha-tester, please
    contact me directly.

In other words: watch this space!-)
Claus

PS. I've been planning to investigate the generation of Haskell modules
    from Java classes to hide calls to Haskell/JNI even before I got
    caught in ``implementation details'', although not along the lines
    of your suggested mapping. The OPAL group in Berlin seems to have
    such a thing already (http://uebb.cs.tu-berlin.de/~opal/, look for
    the Subsystem Java in their library documentation).

--
Claus Reinke                                Department of Computer Science
email: [EMAIL PROTECTED]                    University of Nottingham
http://www.cs.nott.ac.uk/~czr/              Nottingham NG7 2RD


Reply via email to