-
Notifications
You must be signed in to change notification settings - Fork 77
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build with dune instead of ocamlbuild (#79), travis caching
clean build now 17s vs 1m09s before rebuild now 0.5s vs. 4s before travis total now ~16m vs. 29-40m before * tried to use jbuilder (now dune): ppx_import did not work * jbuild -> dune * dune: can not compile pinned goblint-cil b/c no Pretty etc. in its META file * cleanup src/dune: `copy_files` no longer needed because of `include_subdirs` * pin ppx_distr_guards until omp-version available opam pin add ppx_distr_guards https://github.com/vogler/ppx_distr_guards.git * dune: forgot to commit * `make dune` builds, TODO gen&build src/goblint.ml instead of maingoblint * done. clean `make dune` takes 17s vs 1m09s `make`; rerun: 0.5s vs. 4s * make dune default, cleanup/comment make.sh * opam lock * travis: upgrade osx_image as for goblint-cil * travis: cache local opam switch? * ignore Warning 27: unused variable * dune: generate_opam_files * adding cil as git submodule/vendored_dir instead of opam package also works * Revert "travis: cache local opam switch?" TODO: only create switch if _build does not exist and otherwise just install into it? Travis: $ opam switch -y create . --deps-only ocaml-base-compiler.4.09.0 --locked [ERROR] Directory "/Users/travis/build/goblint/analyzer/_opam" already exists, please choose a different name This reverts commit ffcd2fc. * travis (macos): debug why some analysis and solvers are not registered * opam.locked -> goblint.opam.locked * travis (macos): why does ls stop listing files? try find instead. * travis (macos): diff seems fine, list both ls and find * travis: cache _opam (do not create local switch if it exists), debug missing files * travis creates cached directories before they're cached... * travis build now works (generate src/goblint.ml before dune build) Why is this only a problem on travis and not locally? * fix Dockerfile: opam* -> goblint.opam* * only install opam; no brew update * travis (macos): brew install via travis addon which does not run update * travis (macos): homebrew addon does not work without update -> no way around it
- Loading branch information
Showing
14 changed files
with
226 additions
and
102 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
opt : | ||
native : | ||
|
||
% : | ||
@./make.sh $@ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
(lang dune 1.11) | ||
(name goblint) | ||
; build failed with: Files src/.maingoblint.eobjs/native/mutex.cmx and _opam/lib/ocaml/threads/threads.cmxa both define a module named Mutex | ||
; maybe related: https://github.com/ocaml/dune/issues/1727, https://github.com/ocaml/dune/issues/597 | ||
; (implicit_transitive_deps false) ; does not help about the pulled-in Mutex from ocaml/threads | ||
(wrapped_executables true) ; prefix compilation unit names; mentioned here: https://github.com/ocaml/ocaml/pull/2218#issuecomment-572043299; doc says it's the default since dune 2.0, but it somehow still fixes the clash | ||
|
||
; https://dune.readthedocs.io/en/stable/dune-files.html#generate-opam-files | ||
(generate_opam_files true) | ||
|
||
(source (github goblint/analyzer)) | ||
(homepage "https://goblint.in.tum.de") | ||
(documentation "https://goblint.github.io/analyzer") | ||
(authors "Vesal Vojdani, Kalmer Apinis, Ralf Vogler, Michael Schwarz, Julian Erhard") | ||
(maintainers "Michael Schwarz <[email protected]>" "Ralf Vogler <[email protected]>") | ||
(license MIT) | ||
|
||
(package | ||
(name goblint) | ||
(synopsis "Static analysis framework for concurrent C") | ||
(depends | ||
(ocaml (>= 4.04.1)) ; TODO check with travis env matrix as for goblint-cil | ||
dune | ||
goblint-cil ; TODO no way to define as pin-depends? Used goblint.opam.template to add it for now. https://github.com/ocaml/dune/issues/3231. Alternatively, removing this line and adding cil as a git submodule and `(vendored_dirs cil)` as ./dune also works. This way, no more need to reinstall the pinned cil opam package on changes. However, then cil is cleaned and has to be rebuild together with goblint. | ||
batteries | ||
xml-light | ||
(ppx_distr_guards (>= 0.2)) | ||
ppx_import | ||
ppx_deriving | ||
ppx_deriving_yojson | ||
ocaml-monadic | ||
(ounit2 :with-test) | ||
(odoc :with-doc) | ||
; TODO still need the following after switch to dune? | ||
ocamlbuild | ||
ocamlfind | ||
) | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# This file is generated by dune, edit dune-project instead | ||
opam-version: "2.0" | ||
synopsis: "Static analysis framework for concurrent C" | ||
maintainer: [ | ||
"Michael Schwarz <[email protected]>" | ||
"Ralf Vogler <[email protected]>" | ||
] | ||
authors: [ | ||
"Vesal Vojdani, Kalmer Apinis, Ralf Vogler, Michael Schwarz, Julian Erhard" | ||
] | ||
license: "MIT" | ||
homepage: "https://goblint.in.tum.de" | ||
doc: "https://goblint.github.io/analyzer" | ||
bug-reports: "https://github.com/goblint/analyzer/issues" | ||
depends: [ | ||
"ocaml" {>= "4.04.1"} | ||
"dune" | ||
"goblint-cil" | ||
"batteries" | ||
"xml-light" | ||
"ppx_distr_guards" {>= "0.2"} | ||
"ppx_import" | ||
"ppx_deriving" | ||
"ppx_deriving_yojson" | ||
"ocaml-monadic" | ||
"ounit2" {with-test} | ||
"odoc" {with-doc} | ||
"ocamlbuild" | ||
"ocamlfind" | ||
] | ||
build: [ | ||
["dune" "subst"] {pinned} | ||
[ | ||
"dune" | ||
"build" | ||
"-p" | ||
name | ||
"-j" | ||
jobs | ||
"@install" | ||
"@runtest" {with-test} | ||
"@doc" {with-doc} | ||
] | ||
] | ||
dev-repo: "git+https://github.com/goblint/analyzer.git" | ||
pin-depends: [ | ||
[ "goblint-cil.1.7.4" "git+https://github.com/goblint/cil.git" ] | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,19 @@ | ||
opam-version: "2.0" | ||
name: "goblint" | ||
maintainer: "Ralf Vogler <[email protected]>" | ||
authors: "Vesal Vojdani, Kalmer Apinis, Ralf Vogler" | ||
synopsis: "Static analysis framework for concurrent C" | ||
maintainer: [ | ||
"Michael Schwarz <[email protected]>" | ||
"Ralf Vogler <[email protected]>" | ||
] | ||
authors: [ | ||
"Vesal Vojdani, Kalmer Apinis, Ralf Vogler, Michael Schwarz, Julian Erhard" | ||
] | ||
license: "MIT" | ||
homepage: "https://github.com/goblint/analyzer" | ||
homepage: "https://goblint.in.tum.de" | ||
doc: "https://goblint.github.io/analyzer" | ||
bug-reports: "https://github.com/goblint/analyzer/issues" | ||
dev-repo: "git+https://github.com/goblint/analyzer.git" | ||
build: [make] | ||
run-test: [make "test"] | ||
depends: [ | ||
"base" {= "v0.13.1"} | ||
"base-bigarray" {= "base"} | ||
"base-threads" {= "base"} | ||
"base-unix" {= "base"} | ||
"batteries" {= "3.0.0"} | ||
|
@@ -18,39 +22,53 @@ depends: [ | |
"conf-m4" {= "1"} | ||
"conf-perl" {= "1"} | ||
"cppo" {= "1.6.6"} | ||
"dune" {= "1.11.4"} | ||
"dune-configurator" {= "1.0.0"} | ||
"dune" {= "2.3.1"} | ||
"dune-configurator" {= "2.3.1"} | ||
"dune-private-libs" {= "2.3.1"} | ||
"easy-format" {= "1.3.2"} | ||
"goblint-cil" {= "1.7.4"} | ||
"num" {= "1.3"} | ||
"ocaml" {= "4.09.0"} | ||
"ocaml-base-compiler" {= "4.09.0"} | ||
"ocaml-compiler-libs" {= "v0.12.1"} | ||
"ocaml-migrate-parsetree" {= "1.5.0"} | ||
"ocaml-config" {= "1"} | ||
"ocaml-migrate-parsetree" {= "1.6.0"} | ||
"ocaml-monadic" {= "0.4.1"} | ||
"ocamlbuild" {= "0.14.0"} | ||
"ocamlfind" {= "1.8.1"} | ||
"ppx_derivers" {= "1.2.1"} | ||
"ppx_deriving" {= "4.4.1"} | ||
"ppx_deriving_yojson" {= "3.5.2"} | ||
"ppx_distr_guards" {= "0.1"} | ||
"ppx_import" {= "1.7.0"} | ||
"ppx_distr_guards" {= "0.2"} | ||
"ppx_import" {= "1.7.1"} | ||
"ppx_tools" {= "6.0+4.08.0"} | ||
"ppx_tools_versioned" {= "5.2.3"} | ||
"ppxfind" {= "1.3"} | ||
"ppxfind" {= "1.4"} | ||
"ppxlib" {= "0.12.0"} | ||
"result" {= "1.4"} | ||
"result" {= "1.5"} | ||
"sexplib0" {= "v0.13.0"} | ||
"stdio" {= "v0.13.0"} | ||
"xml-light" {= "2.4"} | ||
"yojson" {= "1.7.0"} | ||
"zarith" {= "1.9.1"} | ||
] | ||
build: [ | ||
["dune" "subst"] {pinned} | ||
[ | ||
"dune" | ||
"build" | ||
"-p" | ||
name | ||
"-j" | ||
jobs | ||
"@install" | ||
"@runtest" {with-test} | ||
"@doc" {with-doc} | ||
] | ||
] | ||
dev-repo: "git+https://github.com/goblint/analyzer.git" | ||
pin-depends: [ | ||
[ "goblint-cil.1.7.4" "git+https://github.com/goblint/cil.git" ] | ||
] | ||
synopsis: "Static analysis framework for concurrent C" | ||
url { | ||
src: "https://github.com/goblint/analyzer/archive/goblint-1.0.0.tar.gz" | ||
checksum: "md5=dd3ff7266e17f2772a17609d6bd960b8" | ||
} | ||
name: "goblint" | ||
version: "dev" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
pin-depends: [ | ||
[ "goblint-cil.1.7.4" "git+https://github.com/goblint/cil.git" ] | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.