
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
- Loci: Simple Thread-Locality for Java
. Appeared at ECOOP 2009. Tobias Wrigstad, Filip Pizlo, Fadi Meawad, Lei Zhao and Jan Vitek.
- Manual forthcoming
Downloading Loci
Loci just like Java is platform independent and you can install and run it, under any platform which is supported by Java.
Project Links
- The Project Homepage: http://java.net/projects/loci
- Loci's Forum: http://java.net/projects/loci/forums/
- Loci's Wiki: http://java.net/projects/loci/pages/Home
- Loci's FAQ: http://java.net/projects/loci/pages/FAQ
- Loci's Issue Tracking: http://java.net/bugzilla/buglist.cgi?product=loci&order=Importance&limit=25
- Loci's Developers Mailing List: http://java.net/projects/loci/lists/developers-mailing-list/archive
- Loci's Users Mailing List: http://java.net/projects/loci/lists/users-mailing-list/archive
Project Members
- Tobias Wrigstad (Contact)
- Amanj Sherwany