This is a binary release of Infer for Linux and MacOS. To use it follow these instructions.
Checkers
-
- New over-approximate join operation (heaps, stacks, attributes, formulas) for combined over+under approximation analysis (gated behind option).
- Summary Specialization: various fixes (alias specialization, dynamic type specialization for Java final-typed parameters).
- New models for C/C++/ObjC family: folly (
Function,Expected,Try), C file operations,memset, atomic builtins, glib/xlib, thrift, ObjC (NSAttributedString),dispatch_async. - New
COMPARED_TO_NULL_AND_DEREFERENCEDissue type with value-origin tracking. - New
INFINITE_RECURSIONissue type: detects recursive calls where argument values match the current formals. - New
INFINITE_LOOPissue type (experimental, disabled by default): detects infinite loops via loop invariant inference with per-loop-header path conditions.
-
TOPL: annotation patterns, regex negation, nonnull predicate handling, ambiguous state filtering,
--topl-filter-unsureoption, multicore thread safety fixes. -
RacerD: multicore thread-safe sync fields cache.
-
Starvation: new report for locks held on UI thread.
-
Biabduction has been removed (previously deprecated in 1.2.0). Use Pulse instead.
-
Quandary has been removed (previously deprecated in 1.2.0). Use Pulse's taint analysis instead.
-
The following checkers are now deprecated and may be removed in a future release: SIOF, BufferOverrun, Impurity, Purity, LoopHoisting.
Languages
-
New Python frontend. Main usage is unawaited awaitables errors.
-
New Swift frontend. Based on LLVM bitcode analysis. Primary objective is retain-cycle detection. Includes support for Swift/ObjC interop.
-
New Rust frontend (experimental, work in progress): community-contributed frontend via Charon IR translation. Supports constants, operators, function calls, references/pointers, structs, arrays, tuples, boxes, enums, and error handling.
-
Clang/C++/ObjC: upgraded to LLVM 21.
-
Erlang: pattern-matching rework, comprehension scoping fixes, guard simplification, AST cleanup removing no-op nodes.
-
Java: removed legacy biabduction models.
New Tools
- Semdiff: semantic diff tool for Python and Hack with an equality saturation (e-graph) engine for filtering semantically irrelevant AST changes. Supports configurable rewriting rules, conditional rules, contextual dict-key matching, and benchmarking infrastructure.
Infrastructure
-
Textual SIL: C-to-Textual pipeline (
from_c),--store-textual/--export-textualDB storage, SSA restoration, multiple crash fixes. -
Multicore/parallel analysis infrastructure with thread-safe caches.
-
Cross-platform opam Makefile, Windows dune build support.
-
Deprecated options cleanup and logging for deprecated option usage.
The sha256 checksums of the tarballs are:
$ shasum -a 256 infer-*-v1.3.0.tar.xz
02be62ba931cb43e2d42bbf7abf4bd9a410cf8464cce5453934e25c90a825850 infer-linux-x86_64-v1.3.0.tar.xz
60eccd231e27f2a3d65947ef75b9adcd1983528296bd1da6f67a6da02e22a96e infer-osx-arm64-v1.3.0.tar.xz