aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rwxr-xr-xdev/ci/ci-paramcoq.sh3
-rw-r--r--dev/core_dune.dbg2
-rw-r--r--dev/doc/build-system.dune.md38
-rw-r--r--dev/dune4
-rw-r--r--dev/dune_db_4082
-rw-r--r--dev/dune_db_4092
6 files changed, 39 insertions, 12 deletions
diff --git a/dev/ci/ci-paramcoq.sh b/dev/ci/ci-paramcoq.sh
index d2e0ee89bf..1b2d6a73a2 100755
--- a/dev/ci/ci-paramcoq.sh
+++ b/dev/ci/ci-paramcoq.sh
@@ -5,4 +5,7 @@ ci_dir="$(dirname "$0")"
git_download paramcoq
+# Typically flaky on our worker configuration
+# https://gitlab.com/coq/coq/-/jobs/1144081161
+export COQEXTRAFLAGS='-native-compiler no'
( cd "${CI_BUILD_DIR}/paramcoq" && make && make install && cd test-suite && make examples)
diff --git a/dev/core_dune.dbg b/dev/core_dune.dbg
index da3022644d..db51dc08b6 100644
--- a/dev/core_dune.dbg
+++ b/dev/core_dune.dbg
@@ -6,7 +6,7 @@ load_printer clib.cma
load_printer dynlink.cma
load_printer lib.cma
load_printer gramlib.cma
-load_printer byterun.cma
+load_printer coqrun.cma
load_printer kernel.cma
load_printer library.cma
load_printer engine.cma
diff --git a/dev/doc/build-system.dune.md b/dev/doc/build-system.dune.md
index de3d5a3d15..8ebd6b5073 100644
--- a/dev/doc/build-system.dune.md
+++ b/dev/doc/build-system.dune.md
@@ -10,17 +10,23 @@ Coq can now be built using [Dune](https://github.com/ocaml/dune).
## Quick Start
-Usually, using the latest version of Dune is recommended, see
-`dune-project` for the minimum required version; type `dune build` to
-build the base Coq libraries. No call to `./configure` is needed.
+Usually, using the latest version of Dune is recommended, see the
+first line of the `dune-project` file for the minimum required
+version.
+
+It is strongly recommended that you use the helper targets available
+in `Makefile.dune`, `make -f Makefile.dune` will display help. Note
+that dune will call configure for you if needed, so no need to call
+`./configure` in the regular development workflow.
+
+`dune build @install` will build all the public Coq artifacts; `dune
+build` will build all the targets in the workspace, including tests
+and documentations.
Dune will get confused if it finds leftovers of in-tree compilation,
so please be sure your tree is clean from objects files generated by
the make-based system.
-More helper targets are available in `Makefile.dune`, `make -f
-Makefile.dune` will display some help.
-
Dune places build artifacts in a separate directory `_build`; it will
also generate an `.install` file so files can be properly installed by
package managers.
@@ -84,7 +90,11 @@ builds, please see below.
## Documentation and testing targets
-Coq's test-suite can be run with `dune runtest`.
+Coq's test-suite can be run with `dune runtest`; given that `dune`
+still invokes the test-suite makefile, the environment variable
+`NJOBS` will control the value of the `-j` option that is passed to
+make; common call `NJOBS=8 dune runtest`. This will be resolved in the
+future once the test suite is ported to Dune rules.
There is preliminary support to build the API documentation and
reference manual in HTML format, use `dune build {@doc,@refman-html}`
@@ -229,3 +239,17 @@ useful to Coq, some examples are:
implicitly loaded plugins / vo files. See the "Running binaries
[coqtop / coqide]" section above as to how to correctly call Coq's
binaries.
+
+## Dune cheat sheet
+
+- `dune build` build all targets in the current workspace
+- `dune build @check` build all ML targets as fast as possible, setup merlin
+- `dune utop $dir` open a shell for libraries in `$dir`
+- `dune exec -- $file` build and execute binary `$file`, can be in path or be an specific name
+- `dune build _build/$context/$foo` build target `$foo$` in `$context`, with build dir layout
+- `dune build _build/install/$context/foo` build target `$foo$` in `$context`, with install dir layout
+
+### packaging:
+
+- `dune subst` generate metadata for a package to be installed / distributed, necessary for opam
+- `dune build -p $pkg` build a package in release mode
diff --git a/dev/dune b/dev/dune
index 9da06a3fab..d3ba5c7e3d 100644
--- a/dev/dune
+++ b/dev/dune
@@ -21,8 +21,8 @@
%{lib:coq-core.clib:clib.cma}
%{lib:coq-core.lib:lib.cma}
%{lib:coq-core.kernel:kernel.cma}
- %{lib:coq-core.vm:byterun.cma}
- %{lib:coq-core.vm:../../stublibs/dllbyterun_stubs.so}
+ %{lib:coq-core.vm:coqrun.cma}
+ %{lib:coq-core.vm:../../stublibs/dllcoqrun_stubs.so}
%{lib:coq-core.library:library.cma}
%{lib:coq-core.engine:engine.cma}
%{lib:coq-core.pretyping:pretyping.cma}
diff --git a/dev/dune_db_408 b/dev/dune_db_408
index bc86020d56..dff9b1e9e6 100644
--- a/dev/dune_db_408
+++ b/dev/dune_db_408
@@ -6,7 +6,7 @@ load_printer clib.cma
load_printer dynlink.cma
load_printer lib.cma
load_printer gramlib.cma
-load_printer byterun.cma
+load_printer coqrun.cma
load_printer kernel.cma
load_printer library.cma
load_printer engine.cma
diff --git a/dev/dune_db_409 b/dev/dune_db_409
index adb1f76872..6c9f701b65 100644
--- a/dev/dune_db_409
+++ b/dev/dune_db_409
@@ -5,7 +5,7 @@ load_printer config.cma
load_printer clib.cma
load_printer lib.cma
load_printer gramlib.cma
-load_printer byterun.cma
+load_printer coqrun.cma
load_printer kernel.cma
load_printer library.cma
load_printer engine.cma