Infer v0.17.0 Release Notes

Release Date: 2019-08-06 // over 4 years ago
  • 🚀 This is a binary release of Infer for Linux and MacOS. To use it follow these instructions.

    Highlights:

    • 0️⃣ There’s a new --inefficient-keyset-iterator checker for finding inefficient uses of Java's keyset iterators that retrieve both key and value (on by default).
    • ⚡️ Complete the set of Android thread annotations and Java nullability annotations. Updated artifacts are available on Maven Central.
    • --starvation is now on by default. This analysis catches problems with threads not being able to make progress due to locking issues, incorrect scheduling priorities, etc. For instance, on Android calling Future.get from a UiThread without a sensible timeout will be flagged as a starvation issue.
    • New Objective-C linter for calls to @optional methods: UNSAFE_CALL_TO_OPTIONAL_METHOD, enabled by default.
    • 🐎 A new call-graph scheduler (--call-graph-schedule) improves performance of the analysis phase of Infer, especially when the number of files to analyze is less than available CPUs.
    • 🆓 A new flag --oom-threshold allows to throttle the analysis when the amount of free memory is below the provided threshold.
    • 🆕 New genrule based Buck/Java integration is much faster than the previous one, use with --genrule-master-mode.
    • Infer’s internal clang is now in version 8.0.0.
    • ⚡️ Update to javalib 3.1 provides better compatibility with Java 9 and Java 11. Refer to their change log for more details.
    • 🍎 Infer can now be built and run on MacOS Mojave without fiddling with SDKROOT (although you still might need it with non-standard toolchain setup).
    • [β] Pulse is a new experimental lifetime analysis for C++, give it a try with --pulse. Beware that it doesn’t report much yet.
    • 🚚 --ownership checker was superseded by Pulse and removed.

    👀 ... and many other fixes and improvements. For the full list of changes included see here.

    🚀 The facebook-clang-plugins version used for this release is facebook/facebook-clang-plugins@9386890
    cd9e7b204cb525d4417c41.

    The sha256 checksums of the tarballs are:

    $ shasum -a 256 infer-*-v0.17.0.tar.xz
    de972ba3043f18b29a8eff6cd7612e24f5ffaef038dc7949befeaf490931725e infer-linux64-v0.17.0.tar.xz
    1a3ef6fb51846ae63ffd7fde3b0255f75bab6157f5de1842606fa32988d101f8 infer-osx-v0.17.0.tar.xz