it was mentioned on the static analyzer's open project page, there is a desire to rewrite the existing Perl implementation to Python. beside that there were also a point "Do a better job interposing on a compilation" which I did prototype and test a solution.
here are the major characteristic of the rewrite:
- it works/tested on python 2.7, 3.x,
- it has no dependencies other than standard python modules,
- it differs from the current perl implementation in functionality,
- does not generate not-used-attribute files, since analyzer does not report it;
- does not generate parser reject report, since analyzer does not report it;
- does not check '-isysroot' uniqness;
- does execute 'clang' binary only if it needed (one time less than current perl);
- does not copy pre-compiled header (.ghc) files into report directory;
- does create compilation database during the analysis;
- does cover build systems which do not respect 'CC' or 'CXX' environment variables;
- analyzer is run only after the compilation database were created (not during the build);
- does filter requested sub-directories from the final report;
- the invocation of the script changed a little (tried to minimize the change as much as i could)
- it was tested on Linux, FreeBSD and OS X,
- it has functional and unit tests around,
- it is a self contained python package,
- it's decomposed into multiple modules;
- it has more documentation inside than the original implementation.
reach => rich?