Release 1.8.4 of the Checker Framework and Type Annotations compiler

4 views
Skip to first unread message

David McArthur

unread,
Aug 1, 2014, 10:06:00 PM8/1/14
to jsr308-...@googlegroups.com, checker-fram...@googlegroups.com
We have released a new version of the Type Annotations (JSR 308) compiler,
the Checker Framework, and the Eclipse plugin for the Checker Framework.

* The Type Annotations compiler supports type annotation syntax.
* The Checker Framework lets you create and/or run pluggable type checkers,
    in order to detect and prevent bugs in your code.
* The Eclipse plugin makes it more convenient to run the Checker Framework.

You can find documentation and download links for these projects at:

========================
Changes for the Checker Framework 

The new Constant Value Checker is a constant propagation analysis:  it
determines which variable values can be known at compile time.

Overriding methods now inherit declaration annotations from methods they
override, if the declaration annotation is meta-annotate with
@InheritedAnnotation.  In particular, the purity annotations @SideEffectFree,
@Deterministic, and @Pure are inherited.

Command-line options:
 * Renamed the -AenablePurity command-line flag to -AcheckPurityAnnotations.
 * Added a command-line option -AoutputArgsToFile to output all command-line
   options passed to the compiler to a file.  This is especially useful when
   debugging Maven compilation.

Annotations:
These changes are relevant only to people who wish to use pluggable
type-checking with a standard Java 7 toolset.  (If you are not having
trouble with your Java 7 JVM, then you don't care about them.)
 * Made clean-room reimplementations of nullness-related annotations
   compatible with Java 7 JVMs, by removing TYPE_USE as a target.
 * Added a new set of Java 7 compatibility annotations for the Nullness Checker
   in the org.checkerframework.checker.nullness.compatqual package. These
   annotations do not require Java 8 but can only be placed in annotation
   locations valid in Java 7.

Java 8 support:
The Checker Framework no longer crashes when type-checking code with lambda
expressions, but it does issue a lambda.unsupported warning when
type-checking code containing lambda expressions.  Full support for
type-checking lambda expressions will appear in a future release.

Fixed Issue 343.

========================
Changes for the Type Annotations Compiler

Made it possible to compile Java 8 lambdas on a Java 7 JDK.
This feature is for type-checking only. The compiled code
still requires a Java 8 JVM to execute.
Reply all
Reply to author
Forward
0 new messages