[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Release 1 Information (was: beta4 problems)



Hi,

On Thu, 19 Aug 1999, Gregg Townsend wrote:

> My first experiences with Soot (1.beta.4) were somewhat rough.
> Here are some problems you'd probably like to know about.

Thanks for your comments about Soot.

Soot 1.beta.4 is a really old version.  We are preparing Version 1.  There
is, in fact, a pool here at the lab about when it will be released;
estimates vary from Sept. 1 to November 1.  But I can tell you about some
of the features that are already implemented.

        - Java 1.2 required 
             (we run the blackdown for Linux pre-release here)
        - Three fully-functional intermediate representations: 
                 Baf, Jimple & Grimp.
        - Low-level stack (Baf) optimizations
        - A set of intraprocedural optimizations:
                 copy propagation, dead code elimination,
                 branch folding, unreachable code elimination,
                 constant folding, expression aggregation,
                 unconditional branch elimination
        - An interprocedural analysis framework, including
                 class hierarchy analysis
        - Some interprocedural optimizations:
                 static method binding, inlining
        - Can sootify SPEC jvm '98, preserving correctness

> Soot doesn't work under Sun's Java 1.2.1_02 ("Java 2") because it can't
> find standard classes like java.lang.System.  For Java 1.2, I believe
> that it needs to search using the "java.sys.class.path" property as well
> as the "java.class.path" property.

Our experiences are that the Java class file reader for the JDK run-time
library file (which is in a .jar file) is broken.  Eventually, it gets
tired of reading from the .jar file, and the InputStream just gives us
0's.  The workaround is to untar the rt.jar file and place it into a
directory.

> Example3 provokes a segmentation fault from java (!) when run using the
> distributed PropagateConstants.class file.  This is consistent across
> three platforms: Intel Linux, Sun Solaris, Digital Unix.  "java -verify"
> reports a VerifyError (with no additional information) on SGI Irix only.

This is strange.  We'll look into this.

> Example5 fails because the code that spawns a "jasmin" process doesn't
> wait for the process to finish before it deletes the jasmin input file.
> Below is a patch for this problem.

Thanks for the patch.  This has already been fixed in our version of the
code.

pat