Re: Philosophical Issues of JPL & perljvm/Jasmin
[email protected] ("Bradley M. Kuhn") Sat, 11 Mar 2000 16:42:10 -0500
| Newsgroups | perl.jpl |
|---|---|
| Message-ID | <[email protected]> |
Flynn, Rick wrote:
> Can someone please help me understand the aims of JPL versus those of
> perljvm/Jasmin?
First, please note that Jasmin is a separate product from perljvm. Perljvm
USES (and relies on) Jasmin to reach its goal, but they are different
software products.
> This really is a naive question on my part - just trying to understand
> where the two efforts are coming from, headed to, and whether they are
> anticipated to intersect or possibly even combine at some date in the
> future. I've poked around on the perl5-porters archives, various READMEs,
> etc. but still feel somewhat unclear about who is trying to accomplish
> what via which methods when.
First, I will address general goals and the current status of the two
systems:
JPL - The JPL was designed as a first step in Java/Perl integration. The
idea was to eventually become a Perl->JVM compiler, but as a first
step, the software was written to allow Perl and Java to play
together nicely. This means that you can write Perl code that
instantiates and uses Java objects, and vice-versa. In addition, you
can write Java methods in Perl.
The JPL has a drawback, in that you need to have a JNI (Java Native
Interface) support on the system you are working on. In addition,
perl must already be ported to the architecture you use.
The Perl code is not run in the JVM----it simply calls the JVM when
it needs to to run Java code, and the JVM does the same---calling
perl when it needs to run Perl code. (This is a layperson's
definition---to you JPL hackers out there, I realize that is not 100%
technically accurate :)
Thus, JPL is great for those who are running a system with a Java
environment and a perl port who want Java and Perl to work together.
perljvm - The perljvm picked up the original goal of JPL, which it didn't
actually achieve. Often, work in one direction ends up achieving
something very interesting, but doesn't reach its original goal,
and instead reaches a different but useful goal. The JPL is
interesting and useful for those who want to integrate Java and
Perl seamlessly on systems. However it cannot not feasibly be
developed into a Perl->JVM compiler. The JPL relies too much on
JNI and the existing perl interpreter.
The perljvm is designed to take Perl source code and generate JVM
code that is the Turing equivalent. Basically, just as your C
compiler might compile C code to x86 assembler, so the perljvm
seeks to compile Perl code into JVM bytecode.
This is a sharp contrast---making Perl work seamlessly with Java
is a bonus feature that perljvm might have---not an original
design goal. I hope that perljvm can someday be integrated with
JPL, but that's far down on the task list. The most important
thing is to get as large as subset of Perl as possible running as
JVM bytecode.
As for the current status of projects, I cannot comment on the status of
JPL, as I don't work on it. Brian, et al., can you comment?
As for the current status of perljvm: Work continues. I work on it roughly
20-30 hours a week. It is slow going, due to some annoyances about the JVM
that I have had to work around. However, more features of Perl are
supported on a weekly basis.
(Please note that the current release of B::JVM::Jasmin is far from what
perljvm can do now. I haven't had time to do another release, but I hope to
do one RSN.)
If you'd like to help with perljvm, I could use the help. :) I am
probably going to set up a new mailing list for perljvm development. More
on that later. :)
--
- [email protected] - Bradley M. Kuhn - [email protected] -
http://www.ebb.org/bkuhn
signature.asc
(application/pgp-signature, 232 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.0 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE4yr2x53XjJNtBs4cRAWMXAKCfgF2Y6wZ5U+vzuUN0rrD4tqWLFwCfdNls 1JV+CZUjHErSObua7R2ZYVk= =sDWT -----END PGP SIGNATURE-----