clang-contracts VS gcc-invariant-plugin

Compare clang-contracts vs gcc-invariant-plugin and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
clang-contracts gcc-invariant-plugin
1 1
29 5
- -
10.0 10.0
over 5 years ago over 1 year ago
C++ C++
GNU General Public License v3.0 or later -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

clang-contracts

Posts with mentions or reviews of clang-contracts. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-01.
  • Adding “invariant” clauses to C++ via GCC plugin to enable Design-by-Contract
    5 projects | news.ycombinator.com | 1 Jan 2023
    I'm the author, and even I think so. I'm more of an LLVM fan myself (though I can't not mention David Malcom's work on the GCC Static Analyzer).

    Ideally it wouldn't be a plugin at all, it'd be a language feature. We got Contracts and left out the most useful contract of them all, the stateful invariant!

    Originally, I started it as a Clang plugin, thinking that I could also implement support for the Contracts "[[pre]]" and "[[post]]" specification on top (or at least some minimal implementation of it.

    The difficulty seemed a lot greater to support pre/post attributes with expressions inside of them than [[invariant]] marker attributes.

    If people would like to use this from Clang, even without support for regular Contracts, I will publish a compatible Clang plugin.

    I think at some point there was support for Contracts in Clang, maybe longer term I'll try to get them working again? (I've no experience here)

    https://github.com/arcosuc3m/clang-contracts

    This fellow wrote a whole ~200 page thesis on this just as recently as 2018, such a shame for it to go to waste =/

    https://e-archivo.uc3m.es/bitstream/handle/10016/29231/TFG_J...

gcc-invariant-plugin

Posts with mentions or reviews of gcc-invariant-plugin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-01.

What are some alternatives?

When comparing clang-contracts and gcc-invariant-plugin you can also consider the following projects:

CMake - Mirror of CMake upstream repository

MIRAI - Rust mid-level IR Abstract Interpreter

icontract-hypothesis - Combine contracts and automatic testing.