★ wanayoo — archive 1999 http://jpython.org/platform.htmlNouvelle recherche | Portail wanayoo
  
Home www.python.org
Download Documentation
Getting JPython
Home
License
Download
Installing
JVM Compatibility
 
Resources
Applet Demos
Mailing List
Bugs
JPython Users
 
Email Us
jpython@python.org
 
  

Platform Specific Information: Finding a Good JVM

JPython is certified as 100% Pure Java and should run successfully on any bug-free fully 1.1 or 1.2 compliant JVM. Unfortunately, such a beast can sometimes be hard to find. The following is a collection of notes for getting JPython to run (and run well) on specific OS's and JVM's. Since performance can also vary considerably across JVM implementations, this page will also contain information regarding JPython's performance on different platforms.

This list of platform specific information is clearly incomplete. If you find this information to be incorrect for your particular platform, or if you have tips for running JPython on a platform not mentioned on this page, please send that information to jpython@python.org. If your platform is not included in the list below, you might be able to get useful information from Sun's list of third-party JVM's.

Operating Systems

  • Linux (updated 10-Sep-1999 -baw)
    JDK 1.1.x and 1.2.x from blackdown.org

    There have recently been reports of JPython crashing the 1.1.8 Blackdown JVM. I have tested JPython with 1.1.7B and it works fine, so I recommend not using the 1.1.8 JVM. I haven't personally used JPython with the latest 1.2 Blackdown JVM and haven't heard much feedback from the community, so you're own your own here.

  • Windows NT, 95, and 98 (updated 04-Jun-1999 -baw)
    JRE 1.1.8 from Sun (Recommended)

    This is not the fastest of the JVM's for Windows, but it's certainly the most compatible with the official Java specification. I'd strongly encourage people to start with this VM, and only consider trying alternatives if they find performance to be a serious problem for their application.

    I've down a little bit of testing JPython with the 1.2.x JVM from Sun. It seems to work fine, but I haven't run it through its paces much.

  • JView from Microsoft

    If you have IE 4.0 or 5.0 installed, you almost certainly already have this VM. Type "jview" at a command prompt to be sure. Note: if the copyright dates you see when you type "jview" do not include 1998 or 1999, you have an older VM. Either download a recent version of IE 4.0 or 5.0, or download the VM directly from the site above.

    While Microsoft's VM is still the fastest platform on which to run JPython, recent improvements in Symantec's JIT compiler (which is included in Symantec Cafe) have dramatically narrowed the gap. Microsoft's VM is now only about 25% faster than the version available from Symantec (based on pystone in JPython). Unfortunately, MS's VM is still over 2x faster than the JVM available freely from Sun. So, if you don't have easy access to Symantec's very latest JIT, MS's VM still offers significant performance advantages.

    On the other hand, if you want to write JPython code that takes advantage of Windows specific functionality (using win32 api's, interacting with COM objects, ...) then this VM will give you all of the platform specific functionality you could desire.

    JPython no longer requires a package registry, and sys.add_package() should also be unnecessary. However, to use this with Microsoft's JVM, you must run the following in a console window before using JPython:

        clspack -auto
    

  • Solaris (update 10-Sep-1999 -baw)
    JRE 1.1.7 from Sun
    JRE 1.2.1 from Sun

    Solaris 2.6 comes with JDK 1.1.3, but Solaris users will probably want to upgrade to either the JRE 1.1.7 or JRE 1.2.1 at least (depending on whether you want to stay in the 1.1 family or like living on the bleeding edge). I have tested JPython with the production and reference implementations of both JREs (this is Barry's primary development platform). All seem to work well, although I am still experiences JIT bugs that cause problems with JPython. Don't believe the Sun documentation -- the reference JREs do contain JITs!

    If you notice problems with JPython, before you submit a bug report, please try it again with the JIT turned off. If the problem goes away, don't bug me -- bug Sun! :)

    The easiest way that I've found to turn off the JIT is to add the following to the jpython script created when you installed JPython:

        JAVA_COMPILER=NONE
        export JAVA_COMPILER
    

    I've also had reports of strange problems with people using JPython on the HotSpot JVM. I suspect (although haven't tried it much) that it suffers from buggy optimizations too.

  • Irix
    Java Development Environment 3.1 from SGI

    JPython will work with the 3.0.1 version of the JDE (which is based on the 1.1.3 JVM), but there are a number of significant known bugs in this release. I strongly recommend using to the 3.1 release on this platform.

  • Macintosh

    Mizutori Tetsuya has made available an application called JPython Runner to make it easier to use JPython on this system. More details on this system can be found at JPython Runner for Macintosh. This link also contains pointers to the lastest JVM for Macintosh.

    Hopefully, future releases of JPython will be able to incorporate either this technology or something like it to make life easier for Macintosh users.

Cross-Platform JVM's

  • Kaffe

    JPython does not work with the current version available from Transvirtual. This appears to be both due to some small incompatibilities between this Java VM and Sun's version, as well as at least one serious issue which is the lack of a java.math.BigInteger class -- this lack will be a problem for any VM that only implements the PersonalJava subset of the full Java spec. It should be possible to get JPython working on this VM if someone has the time to invest, please let us know if you have any success here or need any help.