Frequently Asked Questions (FAQ)

HSR Parallel Checker

Installation Question

I do not see any messages from the Parallel Checker. What is wrong?

You need to enable "full solution analysis" in Visual Studio® to run the checker after installation. More information can be found in the installation guide under Download, the highlighted section.

Are older versions of Visual Studio® supported?

The parallel checker only supports the current version 2015 and 2017. Older versions are not supported.

Technical Questions

How stable is the checker?

The checker is in beta stage, but should neither crash or severely slow down Visual Studio, even for larger projects. However, being in beta stage, it has certain implementation restrictions or bugs leading to incorrect detection results.

Does the checker also support other languages than C#?

No, although the algorithms are general and could be applied to other programming languages as well, the checker only supports C#. This is due to the programming efforts that would be necessary to port it to another language. The current checker is also based on Roslyn that currently implements a compiler framework for C# and Visual Basic®.

Does the checker safely detect all concurrency issues?

No, the checker may only report a sub-set of data races, deadlocks and other concurrency issues. It is designed to be mostly precise and thus may miss real errors. In scientific terms, it is not a "sound" checker algorithm.

Is it possible that the checker reports false positives, i.e. non-issues?

Yes, it may report false positives, false warnings in certain cases. Although the checker strives for a precise detection in most cases, it takes conservative assumptions for external input/output, unknown, uncompilable, or unanalyzable code parts, external libraries, or due to implementation limitations.

What does the star sign * signify at the end of the checker's information message?

The asterisk sign * at the end of parallel checker information message denotes an unsupported internal state in the checker that is typically due to an implementation limitation (unsupported language features etc.).

Are the checker results deterministic, i.e. reproducible?

Yes, the checker execution should always result the same issues for the same code.

How long does checker take for larger projects?

The checker should take up to a few seconds for larger projects. Its execution is bound to certain deterministic analysis depth.

What are details of the algorithm?

A future academic paper is planned to disclose the details of the checker algorithm and report on experimental results. The Documentation provides some more high-level description.

What open issues are known for the checker?

Currently, there are some implementation limitations regarding the support of specific language features, see the section "Limitations" under Download.

Where can I report issues with the checker?

We appreciate if you report us encountered issues via our contact form.

License and General Questions

Can I use the checker for free?

The checker is free of charge, if it is interactively used as a plugin in an integrated development environment, such as Visual Studio®, see the License.

Is the checker open source?

No, the checker source is currently not published. We have not yet decided whether we would possibly release it as open source in future.

Can I automate the checker on a build server?

No, it is only allowed to interactively use the checker within an integrated development environment. Interactively means that it should not be automated or integrated as a background checker as part of a quality toolchain, devops, or build servers etc. Please consult the License.

Can our company license the checker for further application areas or for commercialization?

Please contact us if you are interested in more general licenses than the free license version of this distribution. You can reach us via the contact form. We are happy to consult you.

What data privacy policy is implemented by the checker?

We can assure the following for the parallel checker code developed by us: Our checker code does neither store data nor communicate with external systems. Hence, we do neither collect any information of your systems or code bases. However, we cannot make any statements about the integrating or integrated libraries and systems, i.e. Roslyn and Visual Studio®.

Our developers are not so familiar with concurrency and parallelization. Do you offer any training?

We, the HSR Concurrency Lab, frequently perform training, coaching, and workshops in companies on the topics of concurrency and parallelization. Please check our website or contact us via the contact form.

Notice: Microsoft, Visual Studio, and Visual Basic are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

All trademarks, trade names etc. are the property of their respective owners.

HSR, HSR Parallel Checker, and the contributors DO NOT have any affiliation with any mentioned trademark holders.