loci-logo.png

Loci: A Pluggable Type Checker for Expressing Thread Locality in Java

Loci is a pluggable type checker, helps the programmer to check the correctness of the thread locality in their programs. It uses a simple statically checkable set of annotations. The current implementation of Loci only supports Java programming language, but we hope to deliver support for other programming languages also (especially porting to the other Java-like programming languages should be straight forward).

Loci is 100% compatible with legacy Java programs, any Java code compiled with standard Java compiler can also be compiled with Loci checker. If you apply Loci on your legacy code, it still stays completely backward compatible: your code compiles with any Java compiler, it runs on any JVM, and your coworkers don't have to use the enhanced type system if they don't want to. You can check only part of your program. Type inference tools exist to help you annotate your code.

Loci uses the annotation compiler from JSR308, therefore it has a wide support for annotations. Loci is also built on top of the checker framework, which makes Loci very easy to use and install once Java 8 is out. But that does not mean you cannot already use it with your Java 6 or Java 7 installation, Loci is compatible with them too, and you can install it almost effortlessly, please see Loci's wiki page for installation guide.
Loci is an open source program, licensed under GPLv3.0, you are allowed to download, modify and redistribute the source code.

Publications

Downloading Loci

Loci just like Java is platform independent and you can install and run it, under any platform which is supported by Java.

  • The binary version of Loci (version 0.1) is available here
  • Download the Manual here or view the HTML version here
  • To grab the source code, please click here
  • The Loci API documentation can be found here

Project Links

Project Members