Expand all FAQ | Fold all FAQ

Click each FAQ title to expand the answer.

About Installtion

How to install fast?

(under construction)

How to install fast?

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

Can AdLint run on Ruby of version other than 1.9.3?

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.

About Execution

What does "Failed to read `adlint_traits.yml'" mean?

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

What does "adlint_traits.yml already exists" mean?

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.

How to verify configuration files and execution environment?

adlint_chk command is provided to execute only the preprocessing phase.

And GNUmakefile generated by adlintize command has check target to execute adlint_chk command.

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.

How to analyze fast?

Introduce some Tips to shorten the analysis time.

Concurrent single module analyses

You can specify the number of concurrent jobs to GNU Make by -j option. 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.

Is it necessary to generate the traits file by adlintize command everytime?

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.

Can I suppress unwanted warning detections?

No. But we're planning to develop suppress feature after AdLint 2.0.0. is released.

Can I suppress warning messages about system headers?

No. (under construction.)

Can I analyze source files not ready to compile?

No. (under construction)

Are there any limitation of build enviroment?

No. There are no limitation for build environment.

Can I analyze source files whose target compiler is not GCC or other major one?


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.

How to set user defined environment?

(under construction)

About Core Development

Why AdLint is written in Ruby?

Because we want to shorten the time to develop (not the time to run), we choose Ruby which has great productivity.

Are there any documentation of the AdLint core?

I'm afraid design document is in the make.

If you have questions about AdLint core, please let us know.

Other Questions

What does AdLint come from?

Respect for lint command. Advanced lint to AdLint.

>> Return to Top