this repo has no description

[new release] memcad 1.1.0 (#19786)

* [new release] memcad 1.1.0

This PR provides a new release for memcad static analyzer.

- Modifications with an impact on the analysis precision, performance, and
domain of applications:

- Support for set parameters in inductive predicates:
MemCAD now supports inductive predicates with constraints over sets,
that can be passed as an argument to inductive predicates. This makes
it possible for the analysis to reason over the preservation of the
set of elements stored in a structure, or to reason over some shared
data-structures. Handling of set parameters relies on a novel set
abstract domain. MemCAD can use a wide range of set abstract domains.
By default, it uses the external library setr.

- Partial support for sequence parameters in inductive predicates:
MemCAD now supports inductive predicates with constraints over
sequences of elements. This makes it possible for the analysis to
reason over properties such as the preservation of the ordering of
the elements in a data-structure or their correct sorting. Handling
of constraints over sequence parameters relies on a novel sequence
abstract domain.

- Clean up of the sub-memory abstract domain:
MemCAD incorporates an abstract domain to reason over data-structures
stored inside other data-structures, such as a list the elements of
which live in a static array. The precision of this abstract domain
operations has been improved, which should make the verification of
larger families of programs possible.

- Novel abstract domain for specific patters of sub-memories:
A novel abstract domain has been added to MemCAD, so as to support
specific instances of nested data-structures, of more simple form
than the ones addressed by the sub-memory abstract domain mentioned
above. While its scope is restricted, it enables the verification
of some families of operating system code such as basic drivers or
memory allocators.

- Value abstract domain for optional values:
The above abstract domain needs to express properties about optional
values, in the sence of the option type in OCaml. A dedicated abstract
domain provides support for optional scalar values.

- Internal changes, that should not be observable when using the analysis,
but with an impact on code quality and maintenance:

- Refactoring of the data-type that describes symbolic variables.

- General management of the set and sequence symbolic variables under a
common umbrella referred to as "collection variables".

- Refactoring of all the printers used in the analysis, using the
formatter interface.

* Update version dependencies for clangml-transforms

* Remove light-uninstall

* Tighter constraint for clangml version

* Add explicit dependency to dune

* Remove obuild dependency

* memcad.1.1.0: Fix opam syntax

* Fix version constraints

* Fix version constraints for setr and apron

* Add version constraint for mlbdd

Co-authored-by: Kate <kit.ty.kate@disroot.org>

Changed files
+46 -2
packages
clangml-transforms
clangml-transforms.0.26
memcad
memcad.1.1.0
+2 -2
packages/clangml-transforms/clangml-transforms.0.26/opam
···
doc: "https://gitlab.inria.fr/memcad/clangml-transforms"
bug-reports: "https://gitlab.inria.fr/memcad/clangml-transforms/issues"
depends: [
-
"ocaml" {>= "4.03.0" & < "4.12.0"}
+
"ocaml" {>= "4.08.0"}
"dune" {>= "1.11.0"}
-
"clangml" {>= "4.2.0"}
+
"clangml" {>= "4.4.0"}
"dolog" {>= "4.0.0" & < "5.0.0"}
"traverse" {>= "0.2.0"}
"refl" {>= "0.2.1"}
+44
packages/memcad/memcad.1.1.0/opam
···
+
opam-version: "2.0"
+
maintainer: "Xavier.Rival@ens.fr"
+
authors: "Xavier Rival et. al."
+
homepage: "https://www.di.ens.fr/~rival/memcad.html"
+
bug-reports: "https://gitlab.inria.fr/memcad/memcad/-/issues"
+
dev-repo: "git+https://gitlab.inria.fr/memcad/memcad.git"
+
license: "GPL-3.0-only"
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
depends: [
+
"ocaml" {>= "4.08.0"}
+
"apron" {>= "v0.9.12"}
+
"base-unix"
+
"bdd"
+
"clangml" {>= "4.4.0"}
+
"clangml-transforms" {>= "0.26"}
+
"conf-graphviz"
+
"dune" {>= "1.3"}
+
"ounit"
+
"parmap"
+
"qtest"
+
"mlbdd" {>= "0.5"}
+
"setr" {>= "0.1.1"}
+
]
+
synopsis: "The MemCAD analyzer"
+
description: """
+
MemCAD is an abstract interpreter for shape analysis.
+
MemCAD can analyze C programs manipulating complex data structures."""
+
url {
+
src: "https://gitlab.inria.fr/memcad/memcad/-/archive/v1.1.0/memcad-v1.1.0.tar.gz"
+
checksum: "sha512=7e37933fb3c2b67d166906f1ac38855b6819d4ce8f015f84b98012a513cf254eea5081b5d37fe69689dead565f8a1973418a023c9cee76426a5bdb93815c681f"
+
}