perljvm - The Perl to Java Virtual Machine Compiler



General Information

This is the project page for perljvm, the Perl to Java Virtual Machine (JVM) Compiler. The goal is to support the Perl language natively on the JVM without needing the C perl system around. The project is basically defunct, as the primary author (Bradley M. Kuhn) only had time to finish a proof of concept and now is too busy with other matters to work on it.


The Last Approach Tried

A different approach to perljvm began in December 2000. This approach used perl's B:: modules to generate the internal representation used by GNU Kawa. For a detail description of the plans, please see the email announcing the plans for this new effort.

The new effort caught up completely with the B::JVM::Jasmin effort. There is potential to go even further is clear, though, as GNU Kawa is very versatile.

Sadly, bkuhn was never able to get others interested hacking on this effort. What is written about in his Master's Thesis is basically a proof of concept. It needs lots of hacking time to actually be usable for anything. If someone wants to take over, please email bkuhn.

However, it likely makes more sense at this point to contribute to the Parrot Project, as it is working to build a universal execution engine for Perl programs, and the work is probably applicable to other dynamic languages.

CVS server

A CVS server is now available from the GNU project. Details on how to access GNU's CVS server are available. The short version is:
$ cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs login
Password: [just hit enter] $
Note that a CVS Web interface is also available complements of savannah (the place where GNUs graze. ;)

Cosource Projects

Phase 1

The first phase of this project was a Cosource project. It was completed successfully as of 19:37 EST on 2001-01-25. Thanks dlc, DAldredge, and paulv (particularly dlc, who gave $500!) for funding the project. I feel bad that I was never able to move further than that particular Phase.

The result that was the completion of Phase 1 is tagged as perljvm_Cosource-Phase-1 in CVS.


The Previous Prototype

The previous prototype also used the B::* modules that come with perl, but used the Jasmin JVM assembler instead of Kawa. This was useful for the prototype, and but the other approach discussed above is clearly promising.


Hackers wanted

If you'd like to hack on perljvm please read the HACKING file that comes with perljvm. I hope that someone will get interested and take over the effort.

Master's Thesis

My Master's Thesis, Considerations on Porting Perl to the Java Virtual Machine, is available as HTML LaTeX source, PDF and Postscript. It explains the various approaches taken to the project, why some failed and some were promising.

Other Papers

There are some other papers on perljvm from various Perl conferences on my technical writings page.


Updated on: $Date: 2002/04/22 03:32:25 $

ebb (TM) is a trademark of Bradley M. Kuhn. Application for a registered trademark is pending as of Tuesday, 27 July 1999 at 14:34:31 EDT.

Bradley M. Kuhn
bkuhn@ebb.org