A static analyzer for Java, C and Objective-C
OCaml Java Rust C C++ Objective-C Other
Latest commit 4028e7c Jan 16, 2017 @jvillard jvillard committed with facebook-github-bot [driver] decouple logic for choosing capture mode from the capture
Summary:
Previously, we would first compute which build command is at hand, based on the
first argument after "infer --", then do everything depending on that piece of
information. However, the build command alone is not enough to know in which
"build mode" we are operating. For instance, there are several build modes
corresponding to "buck" build commands.

This led to duplication of the logic (to retrieve which build mode we are in in
the various phases of an infer run), and some invariants that had to be
re-asserted at various points in the code, eg that the arguments are not empty.

This diff adds a `build_mode` type (renaming the previous `build_mode` to
`build_system`) that identifies the various integrations we support. We compute
the build mode at the start of infer, then pass the build mode around.

Also, move `run_javac` to a new `integration/Javac.ml` file given that it's a
bit large.

Reviewed By: jberdine

Differential Revision: D4415074

fbshipit-source-id: db854a0
Permalink
Failed to load latest commit information.
.travis fix permission of test scripts Jun 21, 2016
dependencies [mod_dep] Color and cluster mod_dep graph by directory Oct 11, 2016
docker Update to Infer v0.9.4.1 Dec 6, 2016
examples Remove support for SuppressWarnings annotations Dec 16, 2016
facebook-clang-plugins @ 7d55695 [clang] Make sl_file store source file instead of string Dec 9, 2016
infer [driver] decouple logic for choosing capture mode from the capture Jan 16, 2017
m4 [tests] convert pmd-xml test to Makefile Dec 15, 2016
scripts [make] make infer/src/Makefile less phony Dec 14, 2016
.buckconfig [infer][genrule] Add example of Buck DEFS macro to generate Infer ana… Dec 10, 2016
.clang-format fix sync mishaps Jun 21, 2016
.gitignore [make] split Makefile.config.in into Makefile.autoconf.in and Makefil… Jan 13, 2017
.gitmodules [infer] Add facebook clang plugins submodule Aug 18, 2015
.inferconfig [tests] Convert the linter tests to the new direct format Sep 18, 2016
.npmrc Upgrade yarn to latest version Dec 8, 2016
.travis.yml [travis] use new reason version Oct 17, 2016
CONTRIBUTING.md [docs] update docs Nov 18, 2016
DEFS Cleanup DEFS file for generating infer genrules Jan 11, 2017
FILES.md Call java frontend directly instead of using fork Jan 3, 2017
INSTALL.md Update INSTALL.md to include latest dependencies Dec 6, 2016
LICENSE Add module to fix copyright messages. Jul 16, 2015
Makefile [make] add `make byte` toplevel target Jan 12, 2017
Makefile.autoconf.in [make] split Makefile.config.in into Makefile.autoconf.in and Makefil… Jan 13, 2017
Makefile.config [make] split Makefile.config.in into Makefile.autoconf.in and Makefil… Jan 13, 2017
PATENTS initial synchronization Jun 9, 2015
README.md README.md upgrade Dec 6, 2016
autogen.sh Add an option to skip updating submodules if only building for java Jan 10, 2017
build-infer.sh Add an option to skip updating submodules if only building for java Jan 10, 2017
configure.ac [make] split Makefile.config.in into Makefile.autoconf.in and Makefil… Jan 13, 2017
install-sh [utils] Add CTypes binding of fts and implement remove_directory_tree Nov 20, 2016
opam update yarn.lock and yarn, add xmlm dependency Jan 12, 2017
package.json update yarn.lock and yarn, add xmlm dependency Jan 12, 2017
yarn.lock update yarn.lock and yarn, add xmlm dependency Jan 12, 2017

README.md

Infer Build Status

Infer is a static analysis tool for Java, Objective-C and C, written in OCaml.

Installation

Read our Getting Started page for details on how to install packaged versions of Infer. To build Infer from source, see INSTALL.md.

License

Infer is BSD-licensed. We also provide an additional patent grant.

Note: Enabling Java support may require you to download and install components licensed under the GPL.