                                 B::JVM::Jasmin
                      A Perl to Java Virtual Machine Compiler
                                 Version 0.02
              Copyright (C) 1999, Bradley M. Kuhn, All rights reserved. 

   You may distribute under the terms of either the GNU General Public License
   or the Artistic License, as specified in the LICENSE file that was shipped
                                with this distribution.
                 See the file named "LICENSE" for more information.


This module, B::JVM::Jasmin and the accompanying small program, perljvm
(which uses B::JVM::Jasmin) implement a Perl to Java Virtual Machine
compiler.

The key ways that this is done is through (a) use of of B::* modules that
come with perl and (b) with the Jasmin JVM assembler.

Currently, only a small subset of Perl is support on the JVM.  However, this
module is under active, full-time development by at least one person.  Thus,
expect frequent releases and support being added for new features all the
time.

This module may not be for you.  If you just want to make Perl and Java code
play together nicely, you probably want JPL.  This software is for you if
you want to run Perl code directly on the JVM, and is only useful if you can
tolerate spotty support for a lot of Perl's features.  Or, perhaps if you
want to hack on it.  See 'Hacking' section below.  :)

Requirements:

   You will need perl 5.005_62, with Sarathy's STOP block patch.

   Before you can use this system, you will need a working Java system on
   your computer (including a Java-to-JVM compiler and a JVM itself) and the
   Jasmin assembler.  You can retrieve the latest version of the Jasmin
   assembler at http://mrl.nyu.edu/meyer/jasmin (note that Jasmin is GPL'ed
   *only* and thus is under a different license than this software).

   Once you have obtained a working Java system and Jasmin, you can follow
   the installation procedure.

Installation:

    perl Makefile.PL
    make
    make test
    make install   # (this is probably not something you want to do yet)


    Note that the Makefile.PL does its best to try and find your copy of
    Jasmin and a Java system.  It may need help.  If you have a better way,
    patches are welcome to make the Makefile.PL work better.  :)

Usage:

    perljvm --run --keep perl-program.plx ClassName


    Note that two files, ClassName.jasmin and ClassName.class will be left
    in the current directory.  When run this way, perljvm will run 'java
    ClassName' for you, too.

    You may need to set CLASSPATH by hand to get this working.  I don't have
    a better solution yet.  Do you have one?  :)

Hacking:

    Hacking on this system is encouraged, and patches are welcome.  If you
    know enough Perl and perl to hack this stuff, chances are you now how to
    submit good patches.  Use makepatch and all that.  :)

    We are working on getting a CVS server up.

    One note: For now, due to legal issues that are still being worked out
              between my lawyer and University, my lawyer has asked that I
              get a copyright assignment statement from *anyone* who
              contributes patches.  I am sorry that this has to be, and I'd
              be happy to explain why via private email.


Mailing Lists:

    There is an announcement mailing list for this software that is
    moderated and gets at most one post per week.  New versions of this
    software and other related issues will be announced there.  You can
    subscribe by sending a message with body or subject "subscribe" off to:
    perljvm-announce-request@ebb.org

    If you want to get involved with development, discussion of the
    development of this software and other Java-related Perl systems (like
    JPL), takes place on the JPL mailing list.  As Larry said on the list,
    moving discussion of this stuff away from there would be a premature
    optimization.

    To subscribe, send a message off to: jpl-subscribe@perl.org
