False positives and negatives of the Racer algorithm

Eric | June 11, 2008

Today I gave a presentation about Racer in our lab seminar and people asked me some really interesting questions. I thought the answers might interest other people too so I would post them here…

Can Racer produce false positives?

Yes, Racer can produce false positives but out of our 70 reported races only two were false positives. There are two primary reasons for false positives. First reason (quoting from the paper):

Read the rest of this entry »

Comments Off on False positives and negatives of the Racer algorithm
Bug finding, Java, Race detection

Grand Prix's up!

Eric | June 5, 2008

imageWhat’s even better than doing sport? Right, watching other people do sports! After Detroit brought home the Stanley Cup yesterday hockey season is over for now and Montreal instantaneously switches over to its next big event. The Formula 1 Grand Prix is coming up this weekend. imageUsually this is a pretty exciting event here, bringing not only drivers and crews but also several hundreds of thousands of fans into the city. The event is naturally sold-out and also Crescent Street (home of Jacques Villeneuve’s Newtown Restaurant) promises to be a bustling place again.

I am really torn though because at the same time Germany will be butchering the wimpy Polish in the Eurocup. I’ll see. Maybe I’ll somehow manage to watch both.

Comments Off on Grand Prix's up!
Eurocup, Formula 1, Grand Prix, Poland

Soot 2.3.0 is available

Eric | June 3, 2008

image I am pleased to announce that Soot version 2.3.0 is now available.

This release contains the following additions and improvements:

  1. Integrated new JastAdd-based frontend with support for Java 5 source code. Thanks to Torbjorn Ekman for contributing his frontend and his implementation of Java2Jimple!
  2. At the very least if -validate is on, Soot now checks that @this is only assigned in the first statement of an instance method. This has always been an implicit assumption for Jimple code but up until now was not enforced.
  3. Integrated full support for preserving annotations in Jimple and writing them to bytecode. SOURCE level annotations are preserved if code is read from source and the flag -p jb preserve-source-annotations is given. (does not hold for package and local variable annotations) SOURCE level annotations are not written into bytecode by Soot. Annotations can easily be added to SootClass, SootMethod and SootField instances using the utility class AnnotationGenerator. Thanks to Will Benton!
  4. Java 5 Annotations for fields, classes, parameters and methods are now fully preserved in bytecode. Jasmin was changed to implement this support.
  5. Ben Bellamy from Oxford University contributed a new implementation for the type assigner. This is to be published under the title Efficient Local Type Inference at OOPSLA ’08. The new type assigner is usually faster (it is applied when processing bytecode), and sometimes more precise. In particular it should always infer the most narrow type possible. Ben has tested this code, and verified that it provides a typing that is at least as tight as the original algorithm (tighter in 2914 methods out of 295598) on a number of benchmarks. These are: abc-complete.jar, BlueJ, CSO (Scala code), Gant, Groovy, havoc.jar, Java 3D, jEdit, Java Grande Forum, Jigsaw, Jython, Kawa, rt.jar, Kawa, Scala and tools.jar. The mean execution time improvement is around 10 times, but for the longest methods (abc parser methods and havoc with >9000 statements) the improvement is between 200 and 500 times. There are new phase options in jb.tr that allow to switch back to the old type assigner or to compare both implementations. The command line option -use-old-type-assigner was removed. It used to enabled an even older version of the type assigner (based on bit vectors) that was commented out any way. I flagged the appropriate code as deprecated. It may be removed in future versions of Soot. Thanks Ben!

Also we incorporated fixes to numerous bugs. Thanks for reporting bugs and/or providing fixes!

You can find more information in the full change log.

Comments Off on Soot 2.3.0 is available