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