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-----