Click each FAQ title to expand the answer.
If you use following command to install AdLint,
gem command will automatically generate API documents about AdLint core.
It will take too much time.
% gem install adlint
By the following command, you can suppress the API documents generation and can get AdLint installed very quickly.
% gem install adlint --no-ri --no-rdoc
We're developing and testing with Ruby 1.9.3-p194.
We've never tested with Ruby 1.8 series and trunk (2.0.0 dev). So we don't know AdLint is works.
It is considered there are mistake in syntax of traits file (
adlint_traits.yml) or traits file's encoding is not UTF-8.
In the case of syntax errors, you can find the position in the detailed message.
% adlint -t adlint_traits.yml a.c adlint: Failed to read `adlint_traits.yml'. The detailed message is below; (adlint_traits.yml): couldn't parse YAML at line 5 column 2
In the case of bad file encoding, the position of the detailed message will be "line 0 column 0" and the traits file's encoding should be converted to UTF-8.
% adlint -t adlint_traits.yml a.c adlint: Failed to read `adlint_traits.yml'. The detailed message is below; (adlint_traits.yml): couldn't parse YAML at line 0 column 0
You have already executed
adlintize command for the project.
If you want to regenerate the traits file, execute
adlintize command with
-f option. The traits file will be overwritten.
adlint_chk command is provided to execute only the preprocessing phase.
GNUmakefile generated by
adlintize command has
check target to execute
By the following command, you can validate the traist file and the execution environment quickly.
% make check
User's guide of 3.5
adlint_chk command is also useful information for this topic.
Introduce some Tips to shorten the analysis time.
Concurrent single module analyses
You can specify the number of concurrent jobs to GNU Make by
all target of
GNUmakefile which generated by
adlintize command can execute single module analysis concurrently without progress reports.
So the following command can shorten the whole analysis time with 4 concurrent single module analyses.
% make -j 4 all 2>make.err
Skip the cross module analysis
The single module analysis can make most of warning messages and quality metrics. We suggest the following operation.
- During development : execute only single module analyses of each modules
- Integration time (in the night) : execute single module analyses and cross module analysis by CI tool (such as Jenkins)
If you want skip cross module analysis, execute the following command.
% make verbose-sma-only
And the following command skips cross module analysis and run 4 concurrrent single module analyses.
% make -j 4 sma-only 2>make.err
User's guide of 3 Command specification and the comment in
GNUmakefile are also useful information for this topic.
Yes, but it's only first time analysis.
The traits file (
adlint_traits.yml) which generated by
adlintize command is just a templates.
So you have to generate the templates by
adlintize command at
the first analysis. Then edit it.
You don't have to generate traits file every time.
No. But we're planning to develop suppress feature after AdLint 2.0.0. is released.
No. (under construction.)
No. (under construction)
No. There are no limitation for build environment.
AdLint doesn't have any dependency with compilers. If your code is using the compiler specific extensions, it can ignored by the AdLint's function of "token replacement" or it can replace corresponding ISO standards element.
User's guide of 4.2.2 Compiler Traits is also useful information for this topic.
About Core Development
Because we want to shorten the time to develop (not the time to run), we choose Ruby which has great productivity.
I'm afraid design document is in the make.
If you have questions about AdLint core, please let us know.
Respect for lint command. Advanced lint to AdLint.