@@ -82,6 +82,7 @@ (define-module (gnu packages ocaml)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rsync)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tex)
@@ -902,6 +903,52 @@ (define-public ocaml-down
@end example")
(license license:isc)))
+(define-public ocaml-goblint
+ (package
+ (name "ocaml-goblint")
+ (version "2.4.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/goblint/analyzer")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1a2a6xyvda183r0a4ck56bh0nv8ymf7wkg1bjz031bqf9izyrf78"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-goblint-cil
+ ocaml-batteries
+ ocaml-zarith
+ ocaml-yojson
+ ocaml-qcheck
+ ocaml-ppx-deriving
+ ocaml-ppx-deriving-hash
+ ocaml-ppx-deriving-yojson
+ ocaml-odoc
+ ocaml-fpath
+ dune-site
+ ocaml-dune-build-info
+ ocaml-json-data-encoding
+ ocaml-jsonrpc
+ ocaml-sha
+ ocaml-fileutils
+ ocaml-cpu
+ ocaml-arg-complete
+ ocaml-yaml
+ ocaml-uuidm
+ ocaml-catapult
+ gmp
+ gcc))
+ (native-inputs
+ (list ocaml-ounit2 ocaml-qcheck ruby ocaml-benchmark))
+ (home-page "https://goblint.in.tum.de")
+ (synopsis "Static analysis framework for C")
+ (description
+ "This package provides a static analyzer for multi-threaded C
+programs, specializing in finding concurrency bugs.")
+ (license license:expat)))
+
(define-public ocaml-goblint-cil
(package
(name "ocaml-goblint-cil")