aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml52
-rw-r--r--INSTALL.md23
-rw-r--r--META.coq.in4
-rw-r--r--Makefile.build12
-rw-r--r--azure-pipelines.yml2
-rw-r--r--clib/cUnix.ml2
-rw-r--r--config/dune2
-rw-r--r--configure.ml39
-rw-r--r--coq.opam1
-rw-r--r--coq.opam.docker1
-rw-r--r--default.nix2
-rw-r--r--dev/build/windows/patches_coq/ocaml-4.08.1.patch25
-rw-r--r--dev/ci/ci-common.sh4
-rw-r--r--dev/ci/docker/bionic_coq/Dockerfile8
-rw-r--r--dev/ci/nix/default.nix3
-rw-r--r--dev/ci/user-overlays/12977-ppedrot-static-hint-poly.sh9
-rw-r--r--dev/ci/user-overlays/13028-herbelin-master+fix-quotations-printing.sh6
-rw-r--r--dev/doc/changes.md4
-rw-r--r--dev/include_printers2
-rw-r--r--dev/nixpkgs.nix4
-rw-r--r--dev/top_printers.dbg1
-rw-r--r--dev/top_printers.ml8
-rw-r--r--dev/top_printers.mli3
-rw-r--r--doc/changelog/03-notations/12946-master+fix12908-part1-collision-lonely-notation-printing.rst6
-rw-r--r--doc/changelog/03-notations/12960-master+fix9403-missing-flattening-app-notations.rst8
-rw-r--r--doc/changelog/03-notations/13026-master+fix-printing-custom-no-level-8.2.rst7
-rw-r--r--doc/changelog/03-notations/13067-master+fix-display-parentheses-default-coqide.rst5
-rw-r--r--doc/changelog/04-tactics/12847-master+inversion-works-with-eq-in-type.rst6
-rw-r--r--doc/changelog/05-tactic-language/13028-master+fix-quotations-printing.rst6
-rw-r--r--doc/changelog/08-tools/13063-fix-no-output-sync-make-file.rst6
-rw-r--r--doc/changelog/11-infrastructure-and-dependencies/13007-zarith+goodbye_num.rst4
-rw-r--r--doc/sphinx/proof-engine/tactics.rst12
-rw-r--r--doc/tools/coqrst/coqdomain.py10
-rw-r--r--ide/coqide/coq.ml2
-rw-r--r--interp/notation.ml21
-rw-r--r--interp/notation_ops.ml2
-rw-r--r--kernel/byterun/coq_fix_code.c12
-rw-r--r--kernel/byterun/coq_interp.c245
-rw-r--r--kernel/byterun/coq_memory.c2
-rw-r--r--kernel/byterun/coq_values.c16
-rw-r--r--kernel/byterun/coq_values.h4
-rw-r--r--kernel/genOpcodeFiles.ml10
-rw-r--r--kernel/vm.ml2
-rw-r--r--kernel/vmbytegen.ml90
-rw-r--r--kernel/vmemitcodes.ml16
-rw-r--r--kernel/vmsymtable.ml14
-rw-r--r--kernel/vmvalues.ml118
-rw-r--r--kernel/vmvalues.mli3
-rw-r--r--lib/acyclicGraph.ml42
-rw-r--r--plugins/ltac/coretactics.mlg2
-rw-r--r--plugins/ltac/extraargs.mlg2
-rw-r--r--plugins/ltac/g_ltac.mlg6
-rw-r--r--plugins/ltac/leminv.ml17
-rw-r--r--plugins/ltac/pptactic.ml11
-rw-r--r--plugins/ltac/taccoerce.ml2
-rw-r--r--plugins/ltac/taccoerce.mli2
-rw-r--r--plugins/ltac/tacentries.ml8
-rw-r--r--plugins/ltac/tacexpr.ml2
-rw-r--r--plugins/ltac/tacexpr.mli2
-rw-r--r--plugins/ltac/tacintern.ml6
-rw-r--r--plugins/ltac/tacinterp.ml61
-rw-r--r--plugins/ltac/tacsubst.ml2
-rw-r--r--plugins/micromega/dune2
-rw-r--r--plugins/setoid_ring/newring.ml6
-rw-r--r--plugins/ssr/ssrparser.mlg8
-rw-r--r--tactics/btermdn.ml2
-rw-r--r--tactics/btermdn.mli1
-rw-r--r--tactics/class_tactics.ml13
-rw-r--r--tactics/dn.ml20
-rw-r--r--tactics/dn.mli2
-rw-r--r--tactics/equality.ml8
-rw-r--r--tactics/hints.ml134
-rw-r--r--tactics/hints.mli11
-rw-r--r--tactics/inv.ml14
-rwxr-xr-xtest-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/run.sh11
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.err.log.expected1
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.expected398
-rw-r--r--test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.in5629
-rwxr-xr-xtest-suite/coq-makefile/timing/precomputed-time-tests/run.sh1
-rwxr-xr-xtest-suite/misc/coq_makefile_destination_of.sh26
-rw-r--r--test-suite/output/ErrorLocation_ltac_1.out3
-rw-r--r--test-suite/output/ErrorLocation_ltac_1.v3
-rw-r--r--test-suite/output/ErrorLocation_ltac_2.out3
-rw-r--r--test-suite/output/ErrorLocation_ltac_2.v4
-rw-r--r--test-suite/output/ErrorLocation_ltac_3.out3
-rw-r--r--test-suite/output/ErrorLocation_ltac_3.v4
-rw-r--r--test-suite/output/ErrorLocation_ltac_4.out3
-rw-r--r--test-suite/output/ErrorLocation_ltac_4.v3
-rw-r--r--test-suite/output/bug_10803.out10
-rw-r--r--test-suite/output/bug_10803.v14
-rw-r--r--test-suite/output/bug_12908.out2
-rw-r--r--test-suite/output/bug_12908.v6
-rw-r--r--test-suite/output/bug_13004.out2
-rw-r--r--test-suite/output/bug_13004.v7
-rw-r--r--test-suite/output/bug_13018.out14
-rw-r--r--test-suite/output/bug_13018.v30
-rw-r--r--test-suite/output/bug_9403.out6
-rw-r--r--test-suite/output/bug_9403.v99
-rw-r--r--test-suite/output/print_ltac.out2
-rw-r--r--test-suite/success/eqtacticsnois.v15
-rw-r--r--test-suite/success/induct.v2
-rw-r--r--theories/Reals/Rseries.v25
-rw-r--r--tools/CoqMakefile.in2
-rw-r--r--tools/TimeFileMaker.py7
-rw-r--r--toplevel/dune3
-rw-r--r--user-contrib/Ltac2/tac2core.ml2
-rw-r--r--vernac/classes.ml11
-rw-r--r--vernac/comHints.ml16
-rw-r--r--vernac/metasyntax.ml25
-rw-r--r--vernac/vernacentries.ml13
110 files changed, 6987 insertions, 648 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 22658cc9b8..9b208f5a24 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,7 +19,7 @@ stages:
variables:
# Format: $IMAGE-V$DATE [Cache is not used as of today but kept here
# for reference]
- CACHEKEY: "bionic_coq-V2020-09-16-V38"
+ CACHEKEY: "bionic_coq-V2020-09-17-V88"
IMAGE: "$CI_REGISTRY_IMAGE:$CACHEKEY"
# By default, jobs run in the base switch; override to select another switch
OPAM_SWITCH: "base"
@@ -79,6 +79,7 @@ before_script:
- config/coq_config.py
- config/coq_config.ml
- test-suite/misc/universes/all_stdlib.v
+ - dmesg.txt
expire_in: 1 week
script:
- set -e
@@ -242,6 +243,11 @@ before_script:
- make -f Makefile.ci -j "$NJOBS" "${CI_JOB_NAME#*:}"
- echo 'end:coq.test'
- set +e
+ artifacts:
+ name: "$CI_JOB_NAME"
+ paths:
+ - _build_ci
+ when: always
needs:
- build:base
dependencies:
@@ -325,22 +331,30 @@ build:base+async:
variables:
COQ_EXTRA_CONF: "-native-compiler yes -coqide opt"
COQUSERFLAGS: "-async-proofs on"
+ after_script:
+ - dmesg > dmesg.txt
timeout: 100m
allow_failure: true # See https://github.com/coq/coq/issues/9658
only:
variables:
- $UNRELIABLE =~ /enabled/
+ artifacts:
+ when: always
build:quick:
extends: .build-template
variables:
COQ_EXTRA_CONF: "-native-compiler no"
QUICK: "1"
+ after_script:
+ - dmesg > dmesg.txt
timeout: 100m
allow_failure: true # See https://github.com/coq/coq/issues/9637
only:
variables:
- $UNRELIABLE =~ /enabled/
+ artifacts:
+ when: always
windows64:
extends: .windows-template
@@ -446,6 +460,8 @@ pkg:nix:deploy:channel:
- pkg:nix:deploy
script:
- echo "$CACHIX_DEPLOYMENT_KEY" | tr -d '\r' | ssh-add - > /dev/null
+ # Remove all pr branches because they could be missing when we run git fetch --unshallow
+ - git branch --list 'pr-*' | xargs -r git branch -d
- git fetch --unshallow
- git branch -v
- git push git@github.com:coq/coq-on-cachix "${CI_COMMIT_SHA}":"refs/heads/${CI_COMMIT_REF_NAME}"
@@ -600,7 +616,7 @@ test-suite:edge:dune:dev:
- opam repo add ocaml-beta https://github.com/ocaml/ocaml-beta-repository.git
- opam update
- opam install ocaml-variants=$OCAMLVER
- - opam install dune num zarith
+ - opam install dune zarith
- eval $(opam env)
- export COQ_UNIT_TEST=noop
- make -f Makefile.dune test-suite
@@ -683,10 +699,6 @@ library:ci-bbv:
library:ci-bedrock2:
extends: .ci-template-flambda
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
variables:
NJOBS: "1"
@@ -712,10 +724,6 @@ library:ci-coq_tools:
library:ci-coqprime:
stage: stage-3
extends: .ci-template-flambda
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
needs:
- build:edge+flambda
- plugin:ci-bignums
@@ -741,10 +749,6 @@ library:ci-fcsl_pcm:
library:ci-fiat_crypto:
extends: .ci-template-flambda
stage: stage-4
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
needs:
- build:edge+flambda
- library:ci-coqprime
@@ -781,10 +785,6 @@ library:ci-fiat_crypto_ocaml:
library:ci-flocq:
extends: .ci-template-flambda
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
library:ci-corn:
extends: .ci-template-flambda
@@ -809,10 +809,6 @@ library:ci-iris:
library:ci-math_classes:
extends: .ci-template-flambda
stage: stage-3
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
needs:
- build:edge+flambda
- plugin:ci-bignums
@@ -855,10 +851,6 @@ plugin:ci-aac_tactics:
plugin:ci-bignums:
extends: .ci-template-flambda
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
plugin:ci-coq_dpdgraph:
extends: .ci-template
@@ -871,10 +863,6 @@ plugin:ci-elpi:
plugin:ci-equations:
extends: .ci-template
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
plugin:ci-fiat_parsers:
extends: .ci-template
@@ -920,7 +908,3 @@ plugin:ci-relation_algebra:
plugin:ci-rewriter:
extends: .ci-template-flambda
- artifacts:
- name: "$CI_JOB_NAME"
- paths:
- - _build_ci
diff --git a/INSTALL.md b/INSTALL.md
index adc0f557ac..f672bb45d3 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -15,9 +15,6 @@ To compile Coq yourself, you need:
- [OCaml](https://ocaml.org/) (version >= 4.05.0)
(This version of Coq has been tested up to OCaml 4.11.1)
-- The [num](https://github.com/ocaml/num) library; note that it is
- included in the OCaml distribution for OCaml versions < 4.06.0
-
- The [ZArith library](https://github.com/ocaml/Zarith) >= 1.10
- The [findlib](http://projects.camlcity.org/projects/findlib.html) library (version >= 1.8.0)
@@ -32,18 +29,18 @@ To compile Coq yourself, you need:
- for CoqIDE, the
[lablgtk3-sourceview3](https://github.com/garrigue/lablgtk) library
- (version >= 3.0.beta8), and the corresponding GTK 3.x libraries, as
+ (version >= 3.1.0), and the corresponding GTK 3.x libraries, as
of today (gtk+3 >= 3.18 and gtksourceview3 >= 3.18)
-The IEEE-754 compliance is required by primitive floating-point
-numbers (`Require Import Floats`). Common sources of incompatibility
-are checked at configure time, preventing compilation. In the,
-unlikely, event an incompatibility remains undetected, using Floats
-would enable to prove False on this architecture.
+Primitive floating-point numbers require IEEE-754 compliance
+(`Require Import Floats`). Common sources of incompatibility
+are checked at configure time, preventing compilation. In the
+unlikely event an incompatibility remains undetected, using `Floats`
+would enable proving `False` on this architecture.
-Note that `num` and `lablgtk3-sourceview3` should be properly
-registered with `findlib/ocamlfind` as Coq's makefile will use it to
-locate the libraries during the build.
+Note that OCaml dependencies (`zarith` and `lablgtk3-sourceview3` at
+this moment) must be properly registered with `findlib/ocamlfind`
+since Coq's build system uses `findlib` to locate them.
Debian / Ubuntu users can get the necessary system packages for
CoqIDE with:
@@ -55,7 +52,7 @@ the corresponding packages.
$ opam switch create coq 4.11.1+flambda
$ eval $(opam env)
- $ opam install num ocamlfind lablgtk3-sourceview3
+ $ opam install ocamlfind zarith lablgtk3-sourceview3
should get you a reasonable OCaml environment to compile Coq. See the
OPAM documentation for more help.
diff --git a/META.coq.in b/META.coq.in
index 5aaa8cc8a6..a6747c614b 100644
--- a/META.coq.in
+++ b/META.coq.in
@@ -223,7 +223,7 @@ package "toplevel" (
description = "Coq Toplevel"
version = "8.13"
- requires = "num, coq.stm"
+ requires = "coq.stm"
directory = "toplevel"
archive(byte) = "toplevel.cma"
@@ -327,7 +327,7 @@ package "plugins" (
description = "Coq micromega plugin"
version = "8.13"
- requires = "num, coq.plugins.ltac"
+ requires = "coq.plugins.ltac"
directory = "micromega"
archive(byte) = "micromega_plugin.cmo"
diff --git a/Makefile.build b/Makefile.build
index 061489f47f..eed3c2813a 100644
--- a/Makefile.build
+++ b/Makefile.build
@@ -302,7 +302,7 @@ $(OCAMLC) $(MLINCLUDES) $(BYTEFLAGS) $(CUSTOM) -o $@ -linkpkg $(1) $^
endef
# Main packages linked by Coq.
-SYSMOD:=-package str,unix,dynlink,threads,num,zarith
+SYSMOD:=-package str,unix,dynlink,threads,zarith
###########################################################################
# Infrastructure for the rest of the Makefile
@@ -587,11 +587,11 @@ CSDPCERTCMO:=clib/clib.cma $(addprefix plugins/micromega/, \
$(CSDPCERT): $(call bestobj, $(CSDPCERTCMO))
$(SHOW)'OCAMLBEST -o $@'
- $(HIDE)$(call bestocaml, -package num,unix)
+ $(HIDE)$(call bestocaml, -package unix)
$(CSDPCERTBYTE): $(CSDPCERTCMO)
$(SHOW)'OCAMLC -o $@'
- $(HIDE)$(call ocamlbyte, -package num,unix)
+ $(HIDE)$(call ocamlbyte, -package unix)
###########################################################################
# tests
@@ -707,7 +707,7 @@ COND_OPTFLAGS= \
plugins/micromega/%.cmi: plugins/micromega/%.mli
$(SHOW)'OCAMLC $<'
- $(HIDE)$(OCAMLC) $(COND_BYTEFLAGS) -package unix,num -c $<
+ $(HIDE)$(OCAMLC) $(COND_BYTEFLAGS) -package unix -c $<
%.cmi: %.mli
$(SHOW)'OCAMLC $<'
@@ -715,7 +715,7 @@ plugins/micromega/%.cmi: plugins/micromega/%.mli
plugins/micromega/%.cmo: plugins/micromega/%.ml
$(SHOW)'OCAMLC $<'
- $(HIDE)$(OCAMLC) $(COND_BYTEFLAGS) -package unix,num -c $<
+ $(HIDE)$(OCAMLC) $(COND_BYTEFLAGS) -package unix -c $<
%.cmo: %.ml
$(SHOW)'OCAMLC $<'
@@ -752,7 +752,7 @@ plugins/micromega/csdpcert_FORPACK:=
plugins/micromega/%.cmx: plugins/micromega/%.ml
$(SHOW)'OCAMLOPT $<'
- $(HIDE)$(OCAMLOPT) $(COND_OPTFLAGS) $(HACKMLI) $($(@:.cmx=_FORPACK)) -package unix,num -c $<
+ $(HIDE)$(OCAMLOPT) $(COND_OPTFLAGS) $(HACKMLI) $($(@:.cmx=_FORPACK)) -package unix -c $<
plugins/%.cmx: plugins/%.ml
$(SHOW)'OCAMLOPT $<'
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index be9e774381..41b5210f45 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -80,7 +80,7 @@ jobs:
opam switch set ocaml-base-compiler.$COMPILER
eval $(opam env)
opam update
- opam install -j "$NJOBS" num ocamlfind${FINDLIB_VER} ounit lablgtk3-sourceview3 zarith.1.10
+ opam install -j "$NJOBS" ocamlfind${FINDLIB_VER} ounit lablgtk3-sourceview3 zarith.1.10
opam list
displayName: 'Install OCaml dependencies'
env:
diff --git a/clib/cUnix.ml b/clib/cUnix.ml
index 75ed73540e..3a10e33369 100644
--- a/clib/cUnix.ml
+++ b/clib/cUnix.ml
@@ -69,7 +69,7 @@ let canonical_path_name p =
p'
with Sys_error _ ->
(* We give up to find a canonical name and just simplify it... *)
- strip_path p
+ current ^ dirsep ^ strip_path p
let make_suffix name suffix =
if Filename.check_suffix name suffix then name else (name ^ suffix)
diff --git a/config/dune b/config/dune
index a30fdce9aa..83d1364b0c 100644
--- a/config/dune
+++ b/config/dune
@@ -22,4 +22,4 @@
; Needed to generate include lists for coq_makefile
plugin_list
(env_var COQ_CONFIGURE_PREFIX))
- (action (chdir %{project_root} (run %{ocaml} configure.ml -no-ask -native-compiler no))))
+ (action (chdir %{project_root} (run %{ocaml} configure.ml -no-ask -native-compiler no -bin-annot))))
diff --git a/configure.ml b/configure.ml
index 2dbc01651e..7fd1acb53e 100644
--- a/configure.ml
+++ b/configure.ml
@@ -688,23 +688,22 @@ let operating_system =
else
(try Sys.getenv "OS" with Not_found -> "")
-(** Zarith and num libraries *)
-
-let check_for_numlib () =
- (if caml_version_nums >= [4;6;0] then
- let numlib,_ = tryrun camlexec.find ["query";"num"] in
- match numlib with
- | "" ->
- die "Num library not installed, required for OCaml 4.06 or later"
- | _ -> cprintf "You have the Num library installed. Good!");
+(** Zarith library *)
+
+let check_for_zarith () =
let zarith,_ = tryrun camlexec.find ["query";"zarith"] in
+ let zarith_version, _ = run camlexec.find ["query"; "zarith"; "-format"; "%v"] in
match zarith with
| "" ->
die "Zarith library not installed, required"
- | _ -> cprintf "You have the Zarith library installed. Good!"
+ | _ ->
+ let zarith_version_int = List.map int_of_string (numeric_prefix_list zarith_version) in
+ if zarith_version_int >= [1;10;0] then
+ cprintf "You have the Zarith library %s installed. Good!" zarith_version
+ else
+ die ("Zarith version 1.10 is required, you have " ^ zarith_version)
-let numlib =
- check_for_numlib ()
+let numlib = check_for_zarith ()
(** * lablgtk3 and CoqIDE *)
@@ -717,20 +716,14 @@ let get_lablgtkdir () =
let check_lablgtk_version () =
let v, _ = tryrun camlexec.find ["query"; "-format"; "%v"; "lablgtk3"] in
- (true, v)
-
-(* ejgallego: we wait to do version checks until an official release is out *)
-(* try
- let vi = numeric_prefix_list v in
- (* Temporary hack *)
- if vi = ["3";"0";"beta3"] then (false, v) else
- let vi = List.map s2i vi in
- if vi < [3; 0; 0] then
+ try
+ let vl = numeric_prefix_list v in
+ let vn = List.map int_of_string vl in
+ if vn < [3; 1; 0] then
(false, v)
else
(true, v)
with _ -> (false, v)
-*)
let pr_ide = function No -> "no" | Byte -> "only bytecode" | Opt -> "native"
@@ -758,7 +751,7 @@ let check_coqide () =
else
let (ok, version) = check_lablgtk_version () in
let found = sprintf "LablGtk3 and LablGtkSourceView3 found (%s)" version in
- if not ok then set_ide No (found^", but too old (required >= 3.0, found " ^ version ^ ")");
+ if not ok then set_ide No (found^", but too old (required >= 3.1.0, found " ^ version ^ ")");
(* We're now sure to produce at least one kind of coqide *)
lablgtkdir := shorten_camllib dir;
if !prefs.coqide = Some Byte then set_ide Byte (found^", bytecode requested");
diff --git a/coq.opam b/coq.opam
index 342adee1f4..77fdf14834 100644
--- a/coq.opam
+++ b/coq.opam
@@ -24,7 +24,6 @@ depends: [
"ocaml" { >= "4.05.0" }
"dune" { >= "2.5.0" }
"ocamlfind" { build }
- "num"
"zarith" { >= "1.10" }
]
diff --git a/coq.opam.docker b/coq.opam.docker
index 09065fdffd..74ca68ac0b 100644
--- a/coq.opam.docker
+++ b/coq.opam.docker
@@ -23,7 +23,6 @@ version: "dev"
depends: [
"ocaml" { >= "4.05.0" }
"ocamlfind" { build }
- "num"
"zarith" { >= "1.10" }
"conf-findutils" {build}
]
diff --git a/default.nix b/default.nix
index e383d214e0..ffee77f1f7 100644
--- a/default.nix
+++ b/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
# Since #12604, ocamlfind looks for num when building plugins
# This follows a similar change in the nixpkgs repo (cf. NixOS/nixpkgs#94230)
# Same for zarith which is needed since its introduction as a dependency of Coq
- propagatedBuildInputs = with ocamlPackages; [ num zarith ];
+ propagatedBuildInputs = with ocamlPackages; [ zarith ];
src =
if shell then null
diff --git a/dev/build/windows/patches_coq/ocaml-4.08.1.patch b/dev/build/windows/patches_coq/ocaml-4.08.1.patch
new file mode 100644
index 0000000000..a79033a061
--- /dev/null
+++ b/dev/build/windows/patches_coq/ocaml-4.08.1.patch
@@ -0,0 +1,25 @@
+diff --git a/runtime/caml/misc.h b/runtime/caml/misc.h
+index 6aa98516b..8184c2797 100644
+--- a/runtime/caml/misc.h
++++ b/runtime/caml/misc.h
+@@ -327,7 +327,6 @@ extern void caml_set_fields (intnat v, uintnat, uintnat);
+
+ #if defined(_WIN32) && !defined(_UCRT)
+ extern int caml_snprintf(char * buf, size_t size, const char * format, ...);
+-#define snprintf caml_snprintf
+ #endif
+
+ #ifdef CAML_INSTR
+@@ -336,6 +335,12 @@ extern int caml_snprintf(char * buf, size_t size, const char * format, ...);
+ #include <time.h>
+ #include <stdio.h>
+
++/* snprintf emulation for Win32 - do define after stdio.h, in case snprintf is defined */
++
++#if defined(_WIN32) && !defined(_UCRT)
++#define snprintf caml_snprintf
++#endif
++
+ extern intnat caml_stat_minor_collections;
+ extern intnat caml_instr_starttime, caml_instr_stoptime;
+
diff --git a/dev/ci/ci-common.sh b/dev/ci/ci-common.sh
index c01bc57f72..f9187d53a6 100644
--- a/dev/ci/ci-common.sh
+++ b/dev/ci/ci-common.sh
@@ -97,9 +97,9 @@ make()
if [ -z "${MAKEFLAGS+x}" ] && [ -n "${NJOBS}" ];
then
# Not submake and parallel make requested
- command make -j "$NJOBS" "$@"
+ command make --output-sync -j "$NJOBS" "$@"
else
- command make "$@"
+ command make --output-sync "$@"
fi
}
diff --git a/dev/ci/docker/bionic_coq/Dockerfile b/dev/ci/docker/bionic_coq/Dockerfile
index 2fcd69e130..f672ead807 100644
--- a/dev/ci/docker/bionic_coq/Dockerfile
+++ b/dev/ci/docker/bionic_coq/Dockerfile
@@ -1,4 +1,4 @@
-# CACHEKEY: "bionic_coq-V2020-09-16-V38"
+# CACHEKEY: "bionic_coq-V2020-09-17-V88"
# ^^ Update when modifying this file.
FROM ubuntu:bionic
@@ -40,10 +40,8 @@ ENV NJOBS="2" \
# Base opam is the set of base packages required by Coq
ENV COMPILER="4.05.0"
-# Common OPAM packages, num to be removed once the migration to
-# micromega is complete, `num` also does not have a version number as
-# the right version to install varies with the compiler version.
-ENV BASE_OPAM="num zarith.1.10 ocamlfind.1.8.1 ounit2.2.2.3 odoc.1.5.1" \
+# Common OPAM packages
+ENV BASE_OPAM="zarith.1.10 ocamlfind.1.8.1 ounit2.2.2.3 odoc.1.5.1" \
CI_OPAM="menhir.20190626 ocamlgraph.1.8.8" \
BASE_ONLY_OPAM="elpi.1.11.0"
diff --git a/dev/ci/nix/default.nix b/dev/ci/nix/default.nix
index 741cb89eed..7863af842a 100644
--- a/dev/ci/nix/default.nix
+++ b/dev/ci/nix/default.nix
@@ -131,7 +131,8 @@ stdenv.mkDerivation {
name = "shell-for-${project}-in-${branch}";
buildInputs =
- optional withCoq coq
+ [ python ]
+ ++ optional withCoq coq
++ (prj.buildInputs or [])
++ optionals withCoq (prj.coqBuildInputs or [])
;
diff --git a/dev/ci/user-overlays/12977-ppedrot-static-hint-poly.sh b/dev/ci/user-overlays/12977-ppedrot-static-hint-poly.sh
new file mode 100644
index 0000000000..7bed43afe1
--- /dev/null
+++ b/dev/ci/user-overlays/12977-ppedrot-static-hint-poly.sh
@@ -0,0 +1,9 @@
+if [ "$CI_PULL_REQUEST" = "12977" ] || [ "$CI_BRANCH" = "static-hint-poly" ]; then
+
+ equations_CI_REF=static-hint-poly
+ equations_CI_GITURL=https://github.com/ppedrot/Coq-Equations
+
+ fiat_parsers_CI_REF=static-hint-poly
+ fiat_parsers_CI_GITURL=https://github.com/ppedrot/fiat
+
+fi
diff --git a/dev/ci/user-overlays/13028-herbelin-master+fix-quotations-printing.sh b/dev/ci/user-overlays/13028-herbelin-master+fix-quotations-printing.sh
new file mode 100644
index 0000000000..3407c2db39
--- /dev/null
+++ b/dev/ci/user-overlays/13028-herbelin-master+fix-quotations-printing.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "13028" ] || [ "$CI_BRANCH" = "master+fix-quotations-printing" ]; then
+
+ equations_CI_REF=master+adapt-coq-pr13028-quotation-qualifier-printing
+ equations_CI_GITURL=https://github.com/herbelin/Coq-Equations
+
+fi
diff --git a/dev/doc/changes.md b/dev/doc/changes.md
index ae4c6328b5..7d2100515d 100644
--- a/dev/doc/changes.md
+++ b/dev/doc/changes.md
@@ -1,5 +1,9 @@
## Changes between Coq 8.12 and Coq 8.13
+- Tactic language: TacGeneric now takes an argument to tell if it
+ comes from a notation. Use `None` if not and `Some foo` to tell to
+ print such TacGeneric surrounded with `foo:( )`.
+
## Changes between Coq 8.11 and Coq 8.12
### Code formatting
diff --git a/dev/include_printers b/dev/include_printers
index 30529b5fd6..7583762970 100644
--- a/dev/include_printers
+++ b/dev/include_printers
@@ -26,6 +26,8 @@
#install_printer (* judgement *) ppj;;
#install_printer (* id set *) ppidset;;
#install_printer (* int set *) ppintset;;
+#install_printer (* id set *) ppidmapgen;;
+#install_printer (* int set *) ppintmapgen;;
#install_printer (* Reductionops machine stack *) pp_stack_t;;
diff --git a/dev/nixpkgs.nix b/dev/nixpkgs.nix
index e798645ed0..a582a70e0a 100644
--- a/dev/nixpkgs.nix
+++ b/dev/nixpkgs.nix
@@ -1,4 +1,4 @@
import (fetchTarball {
- url = "https://github.com/NixOS/nixpkgs/archive/3c0e3697520cbe7d9eb3a64bfd87de840bf4aa77.tar.gz";
- sha256 = "1vx7kyaq0i287dragjgfdj94ggwr3ky2b7bq32l8rkd2k3vc3gl5";
+ url = "https://github.com/NixOS/nixpkgs/archive/0bbeca2ff952e6a171534793ddd0fa97c8f9546a.tar.gz";
+ sha256 = "0h1y4ffvyvkqs6k2pak02pby25va7c6c1y4p8xkwlzqwswxqxvfl";
})
diff --git a/dev/top_printers.dbg b/dev/top_printers.dbg
index 60618f6491..21d6fbe9aa 100644
--- a/dev/top_printers.dbg
+++ b/dev/top_printers.dbg
@@ -28,6 +28,7 @@ install_printer Top_printers.ppnumtokunsignednat
install_printer Top_printers.ppintset
install_printer Top_printers.ppidset
install_printer Top_printers.ppidmapgen
+install_printer Top_printers.ppintmapgen
install_printer Top_printers.ppididmap
install_printer Top_printers.ppconstrunderbindersidmap
install_printer Top_printers.ppevarsubst
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 773170207e..e4dd7ef52c 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -94,11 +94,13 @@ let pridmap pr l =
prset' pr (Id.Map.fold (fun a b l -> (a,b)::l) l [])
let ppidmap pr l = pp (pridmap pr l)
-let pridmapgen l =
- let dom = Id.Set.elements (Id.Map.domain l) in
+let prmapgen pr dom =
if dom = [] then str "[]" else
- str "[domain= " ++ hov 0 (prlist_with_sep spc Id.print dom) ++ str "]"
+ str "[domain= " ++ hov 0 (prlist_with_sep spc pr dom) ++ str "]"
+let pridmapgen l = prmapgen Id.print (Id.Set.elements (Id.Map.domain l))
let ppidmapgen l = pp (pridmapgen l)
+let printmapgen l = prmapgen int (Int.Set.elements (Int.Map.domain l))
+let ppintmapgen l = pp (printmapgen l)
let ppevarsubst = ppidmap (fun id0 -> prset (fun (c,copt,id) ->
hov 0
diff --git a/dev/top_printers.mli b/dev/top_printers.mli
index b1bb5e4702..712f66112c 100644
--- a/dev/top_printers.mli
+++ b/dev/top_printers.mli
@@ -65,6 +65,9 @@ val ppidmap : (Names.Id.Map.key -> 'a -> Pp.t) -> 'a Names.Id.Map.t -> unit
val pridmapgen : 'a Names.Id.Map.t -> Pp.t
val ppidmapgen : 'a Names.Id.Map.t -> unit
+val printmapgen : 'a Int.Map.t -> Pp.t
+val ppintmapgen : 'a Int.Map.t -> unit
+
val prididmap : Names.Id.t Names.Id.Map.t -> Pp.t
val ppididmap : Names.Id.t Names.Id.Map.t -> unit
diff --git a/doc/changelog/03-notations/12946-master+fix12908-part1-collision-lonely-notation-printing.rst b/doc/changelog/03-notations/12946-master+fix12908-part1-collision-lonely-notation-printing.rst
new file mode 100644
index 0000000000..95a9093272
--- /dev/null
+++ b/doc/changelog/03-notations/12946-master+fix12908-part1-collision-lonely-notation-printing.rst
@@ -0,0 +1,6 @@
+- **Fixed:**
+ Undetected collision between a lonely notation and a notation in
+ scope at printing time
+ (`#12946 <https://github.com/coq/coq/pull/12946>`_,
+ fixes the first part of `#12908 <https://github.com/coq/coq/issues/12908>`_,
+ by Hugo Herbelin).
diff --git a/doc/changelog/03-notations/12960-master+fix9403-missing-flattening-app-notations.rst b/doc/changelog/03-notations/12960-master+fix9403-missing-flattening-app-notations.rst
new file mode 100644
index 0000000000..fc909e7a1d
--- /dev/null
+++ b/doc/changelog/03-notations/12960-master+fix9403-missing-flattening-app-notations.rst
@@ -0,0 +1,8 @@
+- **Fixed:**
+ Issues in the presence of notations recursively referring to another
+ applicative notations, such as missing scope propagation, or failure
+ to use a notation for printing
+ (`#12960 <https://github.com/coq/coq/pull/12960>`_,
+ fixes `#9403 <https://github.com/coq/coq/issues/9403>`_
+ and `#10803 <https://github.com/coq/coq/issues/10803>`_,
+ by Hugo Herbelin).
diff --git a/doc/changelog/03-notations/13026-master+fix-printing-custom-no-level-8.2.rst b/doc/changelog/03-notations/13026-master+fix-printing-custom-no-level-8.2.rst
new file mode 100644
index 0000000000..42b62eed75
--- /dev/null
+++ b/doc/changelog/03-notations/13026-master+fix-printing-custom-no-level-8.2.rst
@@ -0,0 +1,7 @@
+- **Fixed:**
+ Fixing printing of notations in custom entries with
+ variables not mentioning an explicit level
+ (`#13026 <https://github.com/coq/coq/pull/13026>`_,
+ fixes `#12775 <https://github.com/coq/coq/issues/12775>`_
+ and `#13018 <https://github.com/coq/coq/issues/13018>`_,
+ by Hugo Herbelin).
diff --git a/doc/changelog/03-notations/13067-master+fix-display-parentheses-default-coqide.rst b/doc/changelog/03-notations/13067-master+fix-display-parentheses-default-coqide.rst
new file mode 100644
index 0000000000..50aa4a9052
--- /dev/null
+++ b/doc/changelog/03-notations/13067-master+fix-display-parentheses-default-coqide.rst
@@ -0,0 +1,5 @@
+- **Fixed:**
+ Repairing option :g:`Display parentheses` in CoqIDE
+ (`#12794 <https://github.com/coq/coq/pull/12794>`_ and `#13067 <https://github.com/coq/coq/pull/13067>`_,
+ fixes `#12793 <https://github.com/coq/coq/issues/12793>`_,
+ by Jean-Christophe Léchenet and Hugo Herbelin).
diff --git a/doc/changelog/04-tactics/12847-master+inversion-works-with-eq-in-type.rst b/doc/changelog/04-tactics/12847-master+inversion-works-with-eq-in-type.rst
new file mode 100644
index 0000000000..b444a2f436
--- /dev/null
+++ b/doc/changelog/04-tactics/12847-master+inversion-works-with-eq-in-type.rst
@@ -0,0 +1,6 @@
+- **Added:**
+ :tacn:`replace` and :tacn:`inversion` support registration of a
+ :g:`core.identity`-like equality in :g:`Type`, such as HoTT's :g:`path`
+ (`#12847 <https://github.com/coq/coq/pull/12847>`_,
+ partially fixes `#12846 <https://github.com/coq/coq/issues/12846>`_,
+ by Hugo Herbelin).
diff --git a/doc/changelog/05-tactic-language/13028-master+fix-quotations-printing.rst b/doc/changelog/05-tactic-language/13028-master+fix-quotations-printing.rst
new file mode 100644
index 0000000000..a191716b2f
--- /dev/null
+++ b/doc/changelog/05-tactic-language/13028-master+fix-quotations-printing.rst
@@ -0,0 +1,6 @@
+- **Fixed:**
+ printing of the quotation qualifiers when printing :g:`Ltac` functions
+ (`#13028 <https://github.com/coq/coq/pull/13028>`_,
+ fixes `#9716 <https://github.com/coq/coq/issues/9716>`_
+ and `#13004 <https://github.com/coq/coq/issues/13004>`_,
+ by Hugo Herbelin).
diff --git a/doc/changelog/08-tools/13063-fix-no-output-sync-make-file.rst b/doc/changelog/08-tools/13063-fix-no-output-sync-make-file.rst
new file mode 100644
index 0000000000..75b1e26248
--- /dev/null
+++ b/doc/changelog/08-tools/13063-fix-no-output-sync-make-file.rst
@@ -0,0 +1,6 @@
+- **Fixed:**
+ Targets such as ``print-pretty-timed`` in ``coq_makefile``-made
+ ``Makefile``\s no longer error in rare cases where ``--output-sync`` is not
+ passed to make and the timing output gets interleaved in just the wrong way
+ (`#13063 <https://github.com/coq/coq/pull/13063>`_, fixes `#13062
+ <https://github.com/coq/coq/issues/13062>`_, by Jason Gross).
diff --git a/doc/changelog/11-infrastructure-and-dependencies/13007-zarith+goodbye_num.rst b/doc/changelog/11-infrastructure-and-dependencies/13007-zarith+goodbye_num.rst
new file mode 100644
index 0000000000..c142eec561
--- /dev/null
+++ b/doc/changelog/11-infrastructure-and-dependencies/13007-zarith+goodbye_num.rst
@@ -0,0 +1,4 @@
+- **Removed:**
+ The `num` library is not linked to Coq anymore
+ (`#13007 <https://github.com/coq/coq/pull/13007>`_,
+ by Emilio Jesus Gallego Arias).
diff --git a/doc/sphinx/proof-engine/tactics.rst b/doc/sphinx/proof-engine/tactics.rst
index 2f505e7448..e276a0edcb 100644
--- a/doc/sphinx/proof-engine/tactics.rst
+++ b/doc/sphinx/proof-engine/tactics.rst
@@ -732,12 +732,13 @@ Applying theorems
does not succeed because it would require the conversion of ``id ?foo`` and
:g:`O`.
+ .. _simple_apply_ex:
.. example::
.. coqtop:: all
Definition id (x : nat) := x.
- Parameter H : forall y, id y = y.
+ Parameter H : forall x y, id x = y.
Goal O = O.
Fail simple apply H.
@@ -907,13 +908,8 @@ Applying theorems
.. tacv:: simple apply @term in @ident
This behaves like :tacn:`apply … in` but it reasons modulo conversion
- only on subterms that contain no variables to instantiate. For instance,
- if :g:`id := fun x:nat => x` and :g:`H: forall y, id y = y -> True` and
- :g:`H0 : O = O` then :g:`simple apply H in H0` does not succeed because it
- would require the conversion of :g:`id ?x` and :g:`O` where :g:`?x` is
- an existential variable to instantiate.
- Tactic :n:`simple apply @term in @ident` does not
- either traverse tuples as :n:`apply @term in @ident` does.
+ only on subterms that contain no variables to instantiate and does not
+ traverse tuples. See :ref:`the corresponding example <simple_apply_ex>`.
.. tacv:: {? simple} apply {+, @term {? with @bindings_list}} in @ident {? as @simple_intropattern}
{? simple} eapply {+, @term {? with @bindings_list}} in @ident {? as @simple_intropattern}
diff --git a/doc/tools/coqrst/coqdomain.py b/doc/tools/coqrst/coqdomain.py
index 3fef3bcbd1..56464851ba 100644
--- a/doc/tools/coqrst/coqdomain.py
+++ b/doc/tools/coqrst/coqdomain.py
@@ -1424,11 +1424,11 @@ def setup(app):
app.connect('doctree-resolved', CoqtopBlocksTransform.merge_consecutive_coqtop_blocks)
# Add extra styles
- app.add_stylesheet("ansi.css")
- app.add_stylesheet("coqdoc.css")
- app.add_javascript("notations.js")
- app.add_stylesheet("notations.css")
- app.add_stylesheet("pre-text.css")
+ app.add_css_file("ansi.css")
+ app.add_css_file("coqdoc.css")
+ app.add_js_file("notations.js")
+ app.add_css_file("notations.css")
+ app.add_css_file("pre-text.css")
# Tell Sphinx about extra settings
app.add_config_value("report_undocumented_coq_objects", None, 'env')
diff --git a/ide/coqide/coq.ml b/ide/coqide/coq.ml
index 0e237b74fe..038c8b91a8 100644
--- a/ide/coqide/coq.ml
+++ b/ide/coqide/coq.ml
@@ -559,7 +559,7 @@ struct
{ opts = [raw_matching]; init = true;
label = "Display raw _matching expressions" };
{ opts = [notations]; init = true; label = "Display _notations" };
- { opts = [parentheses]; init = true; label = "Display _parentheses" };
+ { opts = [parentheses]; init = false; label = "Display _parentheses" };
{ opts = [all_basic]; init = false;
label = "Display _all basic low-level contents" };
{ opts = [existential]; init = false;
diff --git a/interp/notation.ml b/interp/notation.ml
index 17ae045187..7e90e15b72 100644
--- a/interp/notation.ml
+++ b/interp/notation.ml
@@ -1198,10 +1198,25 @@ let rec find_without_delimiters find (ntn_scope,ntn) = function
find_without_delimiters find (ntn_scope,ntn) scopes
end
| LonelyNotationItem ntn' :: scopes ->
- begin match ntn_scope, ntn with
- | LastLonelyNotation, Some ntn when notation_eq ntn ntn' ->
- Some (None, None)
+ begin match ntn with
+ | Some ntn'' when notation_eq ntn' ntn'' ->
+ begin match ntn_scope with
+ | LastLonelyNotation ->
+ (* If the first notation with same string in the visibility stack
+ is the one we want to print, then it can be used without
+ risking a collision *)
+ Some (None, None)
+ | NotationInScope _ ->
+ (* A lonely notation is liable to hide the scoped notation
+ to print, we check if the lonely notation is active to
+ know if the delimiter of the scoped notationis needed *)
+ if find default_scope then
+ find_with_delimiters ntn_scope
+ else
+ find_without_delimiters find (ntn_scope,ntn) scopes
+ end
| _ ->
+ (* A lonely notation which does not interfere with the notation to use *)
find_without_delimiters find (ntn_scope,ntn) scopes
end
| [] ->
diff --git a/interp/notation_ops.ml b/interp/notation_ops.ml
index 6422e184b5..22531b0016 100644
--- a/interp/notation_ops.ml
+++ b/interp/notation_ops.ml
@@ -187,7 +187,7 @@ let apply_cases_pattern ?loc (ids_disjpat,id) c =
let glob_constr_of_notation_constr_with_binders ?loc g f ?(h=default_binder_status_fun) e nc =
let lt x = DAst.make ?loc x in lt @@ match nc with
| NVar id -> GVar id
- | NApp (a,args) -> let e = h.no e in GApp (f e a, List.map (f e) args)
+ | NApp (a,args) -> let e = h.no e in DAst.get (mkGApp (f e a) (List.map (f e) args))
| NList (x,y,iter,tail,swap) ->
let t = f e tail in let it = f e iter in
let innerl = (ldots_var,t)::(if swap then [y, lt @@ GVar x] else []) in
diff --git a/kernel/byterun/coq_fix_code.c b/kernel/byterun/coq_fix_code.c
index 814cdfe1d8..9118410549 100644
--- a/kernel/byterun/coq_fix_code.c
+++ b/kernel/byterun/coq_fix_code.c
@@ -33,12 +33,12 @@ void init_arity () {
arity[ACC0]=arity[ACC1]=arity[ACC2]=arity[ACC3]=arity[ACC4]=arity[ACC5]=
arity[ACC6]=arity[ACC7]=arity[PUSH]=arity[PUSHACC0]=arity[PUSHACC1]=
arity[PUSHACC2]=arity[PUSHACC3]=arity[PUSHACC4]=arity[PUSHACC5]=
- arity[PUSHACC6]=arity[PUSHACC7]=arity[ENVACC1]=arity[ENVACC2]=
- arity[ENVACC3]=arity[ENVACC4]=arity[PUSHENVACC1]=arity[PUSHENVACC2]=
- arity[PUSHENVACC3]=arity[PUSHENVACC4]=arity[APPLY1]=arity[APPLY2]=
- arity[APPLY3]=arity[APPLY4]=arity[RESTART]=arity[OFFSETCLOSUREM2]=
- arity[OFFSETCLOSURE0]=arity[OFFSETCLOSURE2]=arity[PUSHOFFSETCLOSUREM2]=
- arity[PUSHOFFSETCLOSURE0]=arity[PUSHOFFSETCLOSURE2]=
+ arity[PUSHACC6]=arity[PUSHACC7]=
+ arity[ENVACC0]=arity[ENVACC1]=arity[ENVACC2]=arity[ENVACC3]=
+ arity[PUSHENVACC0]=arity[PUSHENVACC1]=arity[PUSHENVACC2]=arity[PUSHENVACC3]=
+ arity[APPLY1]=arity[APPLY2]=arity[APPLY3]=arity[APPLY4]=arity[RESTART]=
+ arity[OFFSETCLOSURE0]=arity[OFFSETCLOSURE1]=
+ arity[PUSHOFFSETCLOSURE0]=arity[PUSHOFFSETCLOSURE1]=
arity[GETFIELD0]=arity[GETFIELD1]=arity[SETFIELD0]=arity[SETFIELD1]=
arity[CONST0]=arity[CONST1]=arity[CONST2]=arity[CONST3]=
arity[PUSHCONST0]=arity[PUSHCONST1]=arity[PUSHCONST2]=arity[PUSHCONST3]=
diff --git a/kernel/byterun/coq_interp.c b/kernel/byterun/coq_interp.c
index 15cc451ea8..1b6da7dd6f 100644
--- a/kernel/byterun/coq_interp.c
+++ b/kernel/byterun/coq_interp.c
@@ -193,6 +193,8 @@ if (sp - num_args < coq_stack_threshold) { \
#endif
#endif
+#define Is_accu(v) (Is_block(v) && Tag_val(v) == Closure_tag && Code_val(v) == accumulate)
+
#define CheckPrimArgs(cond, apply_lbl) do{ \
if (cond) pc++; \
else{ \
@@ -383,37 +385,49 @@ value coq_interprete
}
/* Access in heap-allocated environment */
+ Instruct(ENVACC0){
+ print_instr("ENVACC0");
+ accu = Field(coq_env, 2);
+ Next;
+ }
Instruct(ENVACC1){
print_instr("ENVACC1");
- accu = Field(coq_env, 1); Next;
+ accu = Field(coq_env, 3);
+ Next;
}
Instruct(ENVACC2){
print_instr("ENVACC2");
- accu = Field(coq_env, 2); Next;
+ accu = Field(coq_env, 4);
+ Next;
}
Instruct(ENVACC3){
print_instr("ENVACC3");
- accu = Field(coq_env, 3); Next;
+ accu = Field(coq_env, 5);
+ Next;
}
- Instruct(ENVACC4){
- print_instr("ENVACC4");
- accu = Field(coq_env, 4); Next;
+ Instruct(PUSHENVACC0){
+ print_instr("PUSHENVACC0");
+ *--sp = accu;
+ accu = Field(coq_env, 2);
+ Next;
}
Instruct(PUSHENVACC1){
print_instr("PUSHENVACC1");
- *--sp = accu; accu = Field(coq_env, 1); Next;
+ *--sp = accu;
+ accu = Field(coq_env, 3);
+ Next;
}
Instruct(PUSHENVACC2){
print_instr("PUSHENVACC2");
- *--sp = accu; accu = Field(coq_env, 2); Next;
+ *--sp = accu;
+ accu = Field(coq_env, 4);
+ Next;
}
Instruct(PUSHENVACC3){
print_instr("PUSHENVACC3");
- *--sp = accu; accu = Field(coq_env, 3); Next;
- }
- Instruct(PUSHENVACC4){
- print_instr("PUSHENVACC4");
- *--sp = accu; accu = Field(coq_env, 4); Next;
+ *--sp = accu;
+ accu = Field(coq_env, 5);
+ Next;
}
Instruct(PUSHENVACC){
print_instr("PUSHENVACC");
@@ -423,7 +437,7 @@ value coq_interprete
Instruct(ENVACC){
print_instr("ENVACC");
print_int(*pc);
- accu = Field(coq_env, *pc++);
+ accu = Field(coq_env, 2 + *pc++);
Next;
}
/* Function application */
@@ -598,7 +612,6 @@ value coq_interprete
sp[0] = arg1;
sp[1] = arg2;
pc = Code_val(accu);
- print_lint(accu);
coq_env = accu;
coq_extra_args += 1;
goto check_stack;
@@ -643,13 +656,13 @@ value coq_interprete
}
Instruct(RESTART) {
- int num_args = Wosize_val(coq_env) - 2;
+ int num_args = Wosize_val(coq_env) - 3;
int i;
print_instr("RESTART");
CHECK_STACK(num_args);
sp -= num_args;
- for (i = 0; i < num_args; i++) sp[i] = Field(coq_env, i + 2);
- coq_env = Field(coq_env, 1);
+ for (i = 0; i < num_args; i++) sp[i] = Field(coq_env, i + 3);
+ coq_env = Field(coq_env, 2);
coq_extra_args += num_args;
Next;
}
@@ -663,9 +676,10 @@ value coq_interprete
} else {
mlsize_t num_args, i;
num_args = 1 + coq_extra_args; /* arg1 + extra args */
- Alloc_small(accu, num_args + 2, Closure_tag);
- Field(accu, 1) = coq_env;
- for (i = 0; i < num_args; i++) Field(accu, i + 2) = sp[i];
+ Alloc_small(accu, num_args + 3, Closure_tag);
+ Field(accu, 1) = Val_int(2);
+ Field(accu, 2) = coq_env;
+ for (i = 0; i < num_args; i++) Field(accu, i + 3) = sp[i];
Code_val(accu) = pc - 3; /* Point to the preceding RESTART instr. */
sp += num_args;
pc = (code_t)(sp[0]);
@@ -680,16 +694,18 @@ value coq_interprete
int rec_pos = *pc++; /* commence a zero */
print_instr("GRABREC");
if (rec_pos <= coq_extra_args && !Is_accu(sp[rec_pos])) {
- pc++;/* On saute le Restart */
+ pc++; /* Skip the next RESTART, then point coq_env at the free variables. */
+ coq_env = coq_env + (Int_val(Field(coq_env, 1)) - 2) * sizeof(value);
} else {
if (coq_extra_args < rec_pos) {
/* Partial application */
mlsize_t num_args, i;
num_args = 1 + coq_extra_args; /* arg1 + extra args */
- Alloc_small(accu, num_args + 2, Closure_tag);
- Field(accu, 1) = coq_env;
- for (i = 0; i < num_args; i++) Field(accu, i + 2) = sp[i];
- Code_val(accu) = pc - 3;
+ Alloc_small(accu, num_args + 3, Closure_tag);
+ Code_val(accu) = pc - 3; /* Point to the preceding RESTART instr. */
+ Field(accu, 1) = Val_int(2);
+ Field(accu, 2) = coq_env;
+ for (i = 0; i < num_args; i++) Field(accu, i + 3) = sp[i];
sp += num_args;
pc = (code_t)(sp[0]);
coq_env = sp[1];
@@ -698,25 +714,26 @@ value coq_interprete
} else {
/* The recursif argument is an accumulator */
mlsize_t num_args, i;
+ value block;
/* Construction of fixpoint applied to its [rec_pos-1] first arguments */
- Alloc_small(accu, rec_pos + 2, Closure_tag);
- Field(accu, 1) = coq_env; // We store the fixpoint in the first field
- for (i = 0; i < rec_pos; i++) Field(accu, i + 2) = sp[i]; // Storing args
- Code_val(accu) = pc;
- sp += rec_pos;
- *--sp = accu;
- /* Construction of the atom */
- Alloc_small(accu, 2, ATOM_FIX_TAG);
- Field(accu,1) = sp[0];
- Field(accu,0) = sp[1];
- sp++; sp[0] = accu;
- /* Construction of the accumulator */
+ Alloc_small(accu, rec_pos + 3, Closure_tag);
+ Code_val(accu) = pc; /* Point to the next RESTART instr. */
+ Field(accu, 1) = Val_int(2);
+ Field(accu, 2) = coq_env; // We store the fixpoint in the first field
+ for (i = 0; i < rec_pos; i++) Field(accu, i + 3) = *sp++; // Storing args
+ /* Construction of the atom */
+ Alloc_small(block, 2, ATOM_FIX_TAG);
+ Field(block, 0) = *sp++;
+ Field(block, 1) = accu;
+ accu = block;
+ /* Construction of the accumulator */
num_args = coq_extra_args - rec_pos;
- Alloc_small(accu, 2+num_args, Accu_tag);
- Code_val(accu) = accumulate;
- Field(accu,1) = sp[0]; sp++;
- for (i = 0; i < num_args;i++)Field(accu, i + 2) = sp[i];
- sp += num_args;
+ Alloc_small(block, 3 + num_args, Closure_tag);
+ Code_val(block) = accumulate;
+ Field(block, 1) = Val_int(2);
+ Field(block, 2) = accu;
+ for (i = 0; i < num_args; i++) Field(block, i + 3) = *sp++;
+ accu = block;
pc = (code_t)(sp[0]);
coq_env = sp[1];
coq_extra_args = Long_val(sp[2]);
@@ -732,12 +749,13 @@ value coq_interprete
print_instr("CLOSURE");
print_int(nvars);
if (nvars > 0) *--sp = accu;
- Alloc_small(accu, 1 + nvars, Closure_tag);
+ Alloc_small(accu, 2 + nvars, Closure_tag);
+ Field(accu, 1) = Val_int(2);
Code_val(accu) = pc + *pc;
pc++;
for (i = 0; i < nvars; i++) {
print_lint(sp[i]);
- Field(accu, i + 1) = sp[i];
+ Field(accu, i + 2) = sp[i];
}
sp += nvars;
Next;
@@ -758,24 +776,19 @@ value coq_interprete
}
pc += nfuncs;
*--sp=accu;
- Alloc_small(accu, nfuncs * 2 + nvars, Closure_tag);
- Field(accu, nfuncs * 2 + nvars - 1) = *sp++;
- /* On remplie la partie pour les variables libres */
- p = &Field(accu, nfuncs * 2 - 1);
- for (i = 0; i < nvars; i++) {
- *p++ = *sp++;
- }
+ Alloc_small(accu, nfuncs * 3 + nvars, Closure_tag);
+ Field(accu, nfuncs * 3 + nvars - 1) = *sp++;
p = &Field(accu, 0);
- *p = (value) (pc + pc[0]);
- p++;
+ *p++ = (value) (pc + pc[0]);
+ *p++ = Val_int(nfuncs * 3 - 1);
for (i = 1; i < nfuncs; i++) {
- *p = Make_header(i * 2, Infix_tag, Caml_white);
- p++; /* color irrelevant. */
- *p = (value) (pc + pc[i]);
- p++;
+ *p++ = Make_header(i * 3, Infix_tag, Caml_white); /* color irrelevant. */
+ *p++ = (value) (pc + pc[i]);
+ *p++ = Val_int((nfuncs - i) * 3 - 1);
}
+ for (i = 0; i < nvars; i++) *p++ = *sp++;
pc += nfuncs;
- accu = accu + 2 * start * sizeof(value);
+ accu = accu + start * 3 * sizeof(value);
Next;
}
@@ -797,31 +810,28 @@ value coq_interprete
/* Creation des blocks accumulate */
for(i=0; i < nfunc; i++) {
- Alloc_small(accu, 2, Accu_tag);
+ Alloc_small(accu, 3, Closure_tag);
Code_val(accu) = accumulate;
- Field(accu,1) = Val_int(1);
+ Field(accu, 1) = Val_int(2);
+ Field(accu, 2) = Val_int(1);
*--sp=accu;
}
/* creation des fonction cofix */
p = sp;
- size = nfunc + nvars + 2;
+ size = nfunc + nvars + 3;
for (i=0; i < nfunc; i++) {
-
+ value block;
Alloc_small(accu, size, Closure_tag);
Code_val(accu) = pc+pc[i];
- for (j = 0; j < nfunc; j++) Field(accu, j+1) = p[j];
+ Field(accu, 1) = Val_int(2);
+ for (j = 0; j < nfunc; ++j) Field(accu, j + 2) = p[j];
Field(accu, size - 1) = p[nfunc];
- for (j = nfunc+1; j <= nfunc+nvars; j++) Field(accu, j) = p[j];
- *--sp = accu;
- /* creation du block contenant le cofix */
-
- Alloc_small(accu,1, ATOM_COFIX_TAG);
- Field(accu, 0) = sp[0];
- *sp = accu;
- /* mise a jour du block accumulate */
- caml_modify(&Field(p[i], 1),*sp);
- sp++;
+ for (j = nfunc + 1; j <= nfunc + nvars; ++j) Field(accu, j + 1) = p[j];
+ Alloc_small(block, 1, ATOM_COFIX_TAG);
+ Field(block, 0) = accu;
+ /* update the accumulate block */
+ caml_modify(&Field(p[i], 2), block);
}
pc += nfunc;
accu = p[start];
@@ -837,15 +847,8 @@ value coq_interprete
} /* fallthrough */
Instruct(OFFSETCLOSURE) {
print_instr("OFFSETCLOSURE");
- accu = coq_env + *pc++ * sizeof(value); Next;
- }
- Instruct(PUSHOFFSETCLOSUREM2) {
- print_instr("PUSHOFFSETCLOSUREM2");
- *--sp = accu;
- } /* fallthrough */
- Instruct(OFFSETCLOSUREM2) {
- print_instr("OFFSETCLOSUREM2");
- accu = coq_env - 2 * sizeof(value); Next;
+ accu = coq_env - *pc++ * 3 * sizeof(value);
+ Next;
}
Instruct(PUSHOFFSETCLOSURE0) {
print_instr("PUSHOFFSETCLOSURE0");
@@ -853,15 +856,17 @@ value coq_interprete
}/* fallthrough */
Instruct(OFFSETCLOSURE0) {
print_instr("OFFSETCLOSURE0");
- accu = coq_env; Next;
+ accu = coq_env;
+ Next;
}
- Instruct(PUSHOFFSETCLOSURE2){
- print_instr("PUSHOFFSETCLOSURE2");
+ Instruct(PUSHOFFSETCLOSURE1){
+ print_instr("PUSHOFFSETCLOSURE1");
*--sp = accu; /* fallthrough */
}
- Instruct(OFFSETCLOSURE2) {
- print_instr("OFFSETCLOSURE2");
- accu = coq_env + 2 * sizeof(value); Next;
+ Instruct(OFFSETCLOSURE1) {
+ print_instr("OFFSETCLOSURE1");
+ accu = coq_env - 3 * sizeof(value);
+ Next;
}
/* Access to global variables */
@@ -954,6 +959,7 @@ value coq_interprete
print_int(sizes & 0xFFFFFF);
if (Is_block(accu)) {
long index = Tag_val(accu);
+ if (index == Closure_tag) index = 0;
print_instr("block");
print_lint(index);
pc += pc[(sizes & 0xFFFFFF) + index];
@@ -1021,7 +1027,7 @@ value coq_interprete
print_instr("PROJ");
if (Is_accu (accu)) {
*--sp = accu; // Save matched block on stack
- accu = Field(accu, 1); // Save atom to accu register
+ accu = Field(accu, 2); // Save atom to accu register
switch (Tag_val(accu)) {
case ATOM_COFIX_TAG: // We are forcing a cofix
{
@@ -1033,11 +1039,11 @@ value coq_interprete
coq_env = Field(accu, 0); // Pointer to suspension
accu = sp[2]; // Save accumulator to accu register
sp[2] = Val_long(coq_extra_args); // Push number of args for return
- nargs = Wosize_val(accu) - 2; // Number of args = size of accumulator - 1 (accumulator code) - 1 (atom)
+ nargs = Wosize_val(accu) - 3; // Number of args = size of accumulator - 2 (accumulator closure) - 1 (atom)
// Push arguments to stack
CHECK_STACK(nargs + 1);
sp -= nargs;
- for (i = 0; i < nargs; ++i) sp[i] = Field(accu, i + 2);
+ for (i = 0; i < nargs; ++i) sp[i] = Field(accu, i + 3);
*--sp = accu; // Last argument is the pointer to the suspension
coq_extra_args = nargs;
pc = Code_val(coq_env); // Trigger evaluation
@@ -1059,9 +1065,10 @@ value coq_interprete
Field(accu, 0) = Field(coq_global_data, *pc++);
Field(accu, 1) = *sp++;
/* Create accumulator */
- Alloc_small(block, 2, Accu_tag);
+ Alloc_small(block, 3, Closure_tag);
Code_val(block) = accumulate;
- Field(block, 1) = accu;
+ Field(block, 1) = Val_int(2);
+ Field(block, 2) = accu;
accu = block;
}
}
@@ -1122,7 +1129,7 @@ value coq_interprete
mlsize_t i, size;
print_instr("ACCUMULATE");
size = Wosize_val(coq_env);
- Alloc_small(accu, size + coq_extra_args + 1, Accu_tag);
+ Alloc_small(accu, size + coq_extra_args + 1, Closure_tag);
for(i = 0; i < size; i++) Field(accu, i) = Field(coq_env, i);
for(i = size; i <= coq_extra_args + size; i++)
Field(accu, i) = *sp++;
@@ -1135,7 +1142,7 @@ value coq_interprete
Instruct(MAKESWITCHBLOCK) {
print_instr("MAKESWITCHBLOCK");
*--sp = accu; // Save matched block on stack
- accu = Field(accu,1); // Save atom to accu register
+ accu = Field(accu, 2); // Save atom to accu register
switch (Tag_val(accu)) {
case ATOM_COFIX_TAG: // We are forcing a cofix
{
@@ -1149,11 +1156,11 @@ value coq_interprete
coq_env = Field(accu,0); // Pointer to suspension
accu = sp[2]; // Save accumulator to accu register
sp[2] = Val_long(coq_extra_args); // Push number of args for return
- nargs = Wosize_val(accu) - 2; // Number of args = size of accumulator - 1 (accumulator code) - 1 (atom)
+ nargs = Wosize_val(accu) - 3; // Number of args = size of accumulator - 2 (accumulator closure) - 1 (atom)
// Push arguments to stack
CHECK_STACK(nargs+1);
sp -= nargs;
- for (i = 0; i < nargs; i++) sp[i] = Field(accu, i + 2);
+ for (i = 0; i < nargs; i++) sp[i] = Field(accu, i + 3);
*--sp = accu; // Leftmost argument is the pointer to the suspension
print_lint(nargs);
coq_extra_args = nargs;
@@ -1174,6 +1181,7 @@ value coq_interprete
mlsize_t sz;
int i, annot;
code_t typlbl,swlbl;
+ value block;
print_instr("MAKESWITCHBLOCK");
typlbl = (code_t)pc + *pc;
@@ -1200,24 +1208,26 @@ value coq_interprete
*--sp = accu;
Alloc_small(accu, 1, Abstract_tag);
Code_val(accu) = swlbl;
- *--sp = accu;
/* We create the switch zipper */
- Alloc_small(accu, 5, Default_tag);
- Field(accu, 0) = sp[1];
- Field(accu, 1) = sp[0];
- Field(accu, 2) = sp[3];
- Field(accu, 3) = sp[2];
- Field(accu, 4) = coq_env;
+ Alloc_small(block, 5, Default_tag);
+ Field(block, 0) = sp[0];
+ Field(block, 1) = accu;
+ Field(block, 2) = sp[2];
+ Field(block, 3) = sp[1];
+ Field(block, 4) = coq_env;
sp += 3;
- sp[0] = accu;
+ accu = block;
/* We create the atom */
- Alloc_small(accu, 2, ATOM_SWITCH_TAG);
- Field(accu, 0) = sp[1]; Field(accu, 1) = sp[0];
- sp++;sp[0] = accu;
+ Alloc_small(block, 2, ATOM_SWITCH_TAG);
+ Field(block, 0) = *sp++;
+ Field(block, 1) = accu;
+ accu = block;
/* We create the accumulator */
- Alloc_small(accu, 2, Accu_tag);
- Code_val(accu) = accumulate;
- Field(accu,1) = *sp++;
+ Alloc_small(block, 3, Closure_tag);
+ Code_val(block) = accumulate;
+ Field(block, 1) = Val_int(2);
+ Field(block, 2) = accu;
+ accu = block;
}
}
Next;
@@ -1228,10 +1238,11 @@ value coq_interprete
Instruct(MAKEACCU) {
int i;
print_instr("MAKEACCU");
- Alloc_small(accu, coq_extra_args + 3, Accu_tag);
+ Alloc_small(accu, coq_extra_args + 4, Closure_tag);
Code_val(accu) = accumulate;
- Field(accu,1) = Field(coq_atom_tbl, *pc);
- for(i = 2; i < coq_extra_args + 3; i++) Field(accu, i) = *sp++;
+ Field(accu, 1) = Val_int(2);
+ Field(accu, 2) = Field(coq_atom_tbl, *pc);
+ for (i = 2; i < coq_extra_args + 3; i++) Field(accu, i + 1) = *sp++;
pc = (code_t)(sp[0]);
coq_env = sp[1];
coq_extra_args = Long_val(sp[2]);
@@ -1875,11 +1886,11 @@ value coq_push_val(value v) {
value coq_push_arguments(value args) {
int nargs,i;
value * sp = coq_sp;
- nargs = Wosize_val(args) - 2;
+ nargs = Wosize_val(args) - 3;
CHECK_STACK(nargs);
coq_sp -= nargs;
print_instr("push_args");print_int(nargs);
- for(i = 0; i < nargs; i++) coq_sp[i] = Field(args, i+2);
+ for (i = 0; i < nargs; i++) coq_sp[i] = Field(args, i + 3);
return Val_unit;
}
diff --git a/kernel/byterun/coq_memory.c b/kernel/byterun/coq_memory.c
index 6233675c66..ae5251c252 100644
--- a/kernel/byterun/coq_memory.c
+++ b/kernel/byterun/coq_memory.c
@@ -108,7 +108,7 @@ value init_coq_vm(value unit) /* ML */
init_coq_interpreter();
/* Some predefined pointer code.
- * It is typically contained in accumulator blocks whose tag is 0 and thus
+ * It is typically contained in accumulator blocks and thus might be
* scanned by the GC, so make it look like an OCaml block. */
value accu_block = (value) coq_stat_alloc(2 * sizeof(value));
Hd_hp (accu_block) = Make_header (1, Abstract_tag, Caml_black); \
diff --git a/kernel/byterun/coq_values.c b/kernel/byterun/coq_values.c
index bbe91da628..adfd4e8954 100644
--- a/kernel/byterun/coq_values.c
+++ b/kernel/byterun/coq_values.c
@@ -38,9 +38,9 @@ value coq_closure_arity(value clos) {
opcode_t * c = Code_val(clos);
if (Is_instruction(c,RESTART)) {
c++;
- if (Is_instruction(c,GRAB)) return Val_int(3 + c[1] - Wosize_val(clos));
+ if (Is_instruction(c,GRAB)) return Val_int(4 + c[1] - Wosize_val(clos));
else {
- if (Wosize_val(clos) != 2) caml_failwith("Coq Values : coq_closure_arity");
+ if (Wosize_val(clos) != 3) caml_failwith("Coq Values : coq_closure_arity");
return Val_int(1);
}
}
@@ -50,13 +50,17 @@ value coq_closure_arity(value clos) {
/* Fonction sur les fix */
-value coq_offset(value v) {
+value coq_current_fix(value v) {
if (Tag_val(v) == Closure_tag) return Val_int(0);
- else return Val_long(-Wsize_bsize(Infix_offset_val(v)));
+ else return Val_long(Wsize_bsize(Infix_offset_val(v)) / 3);
}
-value coq_offset_closure(value v, value offset){
- return (value)&Field(v, Int_val(offset));
+value coq_shift_fix(value v, value offset) {
+ return v + Int_val(offset) * 3 * sizeof(value);
+}
+
+value coq_last_fix(value v) {
+ return v + (Int_val(Field(v, 1)) - 2) * sizeof(value);
}
value coq_set_bytecode_field(value v, value i, value code) {
diff --git a/kernel/byterun/coq_values.h b/kernel/byterun/coq_values.h
index a19f9b56c1..f07018711b 100644
--- a/kernel/byterun/coq_values.h
+++ b/kernel/byterun/coq_values.h
@@ -17,7 +17,6 @@
#include <float.h>
#define Default_tag 0
-#define Accu_tag 0
#define ATOM_ID_TAG 0
#define ATOM_INDUCTIVE_TAG 1
@@ -28,9 +27,6 @@
#define ATOM_COFIX_TAG 6
#define ATOM_COFIXEVALUATED_TAG 7
-/* Les blocs accumulate */
-#define Is_accu(v) (Is_block(v) && (Tag_val(v) == Accu_tag))
-#define IS_EVALUATED_COFIX(v) (Is_accu(v) && Is_block(Field(v,1)) && (Tag_val(Field(v,1)) == ATOM_COFIXEVALUATED_TAG))
#define Is_double(v) (Tag_val(v) == Double_tag)
#define Is_tailrec_switch(v) (Field(v,1) == Val_true)
diff --git a/kernel/genOpcodeFiles.ml b/kernel/genOpcodeFiles.ml
index 2d74cca44c..f052e03cde 100644
--- a/kernel/genOpcodeFiles.ml
+++ b/kernel/genOpcodeFiles.ml
@@ -38,15 +38,15 @@ let opcodes =
"PUSHACC7";
"PUSHACC";
"POP";
+ "ENVACC0";
"ENVACC1";
"ENVACC2";
"ENVACC3";
- "ENVACC4";
"ENVACC";
+ "PUSHENVACC0";
"PUSHENVACC1";
"PUSHENVACC2";
"PUSHENVACC3";
- "PUSHENVACC4";
"PUSHENVACC";
"PUSH_RETADDR";
"APPLY";
@@ -65,13 +65,11 @@ let opcodes =
"CLOSURE";
"CLOSUREREC";
"CLOSURECOFIX";
- "OFFSETCLOSUREM2";
"OFFSETCLOSURE0";
- "OFFSETCLOSURE2";
+ "OFFSETCLOSURE1";
"OFFSETCLOSURE";
- "PUSHOFFSETCLOSUREM2";
"PUSHOFFSETCLOSURE0";
- "PUSHOFFSETCLOSURE2";
+ "PUSHOFFSETCLOSURE1";
"PUSHOFFSETCLOSURE";
"GETGLOBAL";
"PUSHGETGLOBAL";
diff --git a/kernel/vm.ml b/kernel/vm.ml
index 76954a83d8..3adb2f2113 100644
--- a/kernel/vm.ml
+++ b/kernel/vm.ml
@@ -95,7 +95,7 @@ let reduce_fix k vf =
(* computing types *)
let fc_typ = fix_types fb in
let ndef = Array.length fc_typ in
- let et = offset_closure_fix fb (2*(ndef - 1)) in
+ let et = fix_env fb in
let ftyp =
Array.map
(fun c -> interprete c crazy_val et 0) fc_typ in
diff --git a/kernel/vmbytegen.ml b/kernel/vmbytegen.ml
index 1274e3a867..375b1aface 100644
--- a/kernel/vmbytegen.ml
+++ b/kernel/vmbytegen.ml
@@ -28,10 +28,10 @@ open Environ
(* The virtual machine doesn't distinguish closures and their environment *)
(* Representation of function environments : *)
-(* [clos_t | code | fv1 | fv2 | ... | fvn ] *)
+(* [clos_t | code | envofs=2 | fv1 | fv2 | ... | fvn ] *)
(* ^ *)
-(* The offset for accessing free variables is 1 (we must skip the code *)
-(* pointer). *)
+(* The offset for accessing free variables is 2 (we must skip the code *)
+(* pointer and the environment offset). *)
(* While compiling, free variables are stored in [in_env] in order *)
(* opposite to machine representation, so we can add new free variables *)
(* easily (i.e. without changing the position of previous variables) *)
@@ -42,9 +42,9 @@ open Environ
(* In the function body [arg1] is represented by de Bruijn [n], and *)
(* [argn] by de Bruijn [1] *)
-(* Representation of environments of mutual fixpoints : *)
-(* [t1|C1| ... |tc|Cc| ... |t(nbr)|C(nbr)| fv1 | fv2 | .... | fvn | type] *)
-(* ^<----------offset---------> *)
+(* Representation of environments of mutual fixpoints : *)
+(* [clos_t|C1|envofs1| ... |infix_t|Ci|envofsi| ... |infix_t|Cnbr|envofsnbr=2| fv1 | fv2 | .... | fvn | type] *)
+(* ^ *)
(* type = [Ct1 | .... | Ctn] *)
(* Ci is the code pointer of the i-th body *)
(* At runtime, a fixpoint environment (which is the same as the fixpoint *)
@@ -52,45 +52,45 @@ open Environ
(* In each fixpoint body, de Bruijn [nbr] represents the first fixpoint *)
(* and de Bruijn [1] the last one. *)
(* Access to these variables is performed by the [Koffsetclosure n] *)
-(* instruction that shifts the environment pointer of [n] fields. *)
+(* instruction that shifts the environment pointer by [n] closuress. *)
(* This allows representing mutual fixpoints in just one block. *)
(* [Ct1 | ... | Ctn] is an array holding code pointers of the fixpoint *)
(* types. They are used in conversion tests (which requires that *)
(* fixpoint types must be convertible). Their environment is the one of *)
(* the last fixpoint : *)
-(* [t1|C1| ... |tc|Cc| ... |t(nbr)|C(nbr)| fv1 | fv2 | .... | fvn | type] *)
-(* ^ *)
+(* [clos_t|C1| ... |infix_t|Ci| ... |infix_t|Cnbr|envofsnbr=2| fv1 | fv2 | .... | fvn | type] *)
+(* ^ *)
(* Representation of mutual cofix : *)
(* a1 = [A_t | accumulate | [Cfx_t | fcofix1 ] ] *)
(* ... *)
(* anbr = [A_t | accumulate | [Cfx_t | fcofixnbr ] ] *)
(* *)
-(* fcofix1 = [clos_t | code1 | a1 |...| anbr | fv1 |...| fvn | type] *)
+(* fcofix1 = [clos_t | code1 | envofs=2 | a1 |...| anbr | fv1 |...| fvn | type] *)
(* ^ *)
(* ... *)
-(* fcofixnbr = [clos_t | codenbr | a1 |...| anbr | fv1 |...| fvn | type] *)
+(* fcofixnbr = [clos_t | codenbr | envofs=2 | a1 |...| anbr | fv1 |...| fvn | type] *)
(* ^ *)
(* The [ai] blocks are functions that accumulate their arguments: *)
(* ai arg1 argp ---> *)
-(* ai' = [A_t | accumulate | [Cfx_t | fcofixi] | arg1 | ... | argp ] *)
+(* ai' = [A_t | accumulate | envofs | [Cfx_t | fcofixi] | arg1 | ... | argp ] *)
(* If such a block is matched against, we have to force evaluation, *)
(* function [fcofixi] is then applied to [ai'] [arg1] ... [argp] *)
(* (note that [ai'] is a pointer to the closure, passed as argument) *)
(* Once evaluation is completed [ai'] is updated with the result: *)
(* ai' <-- *)
-(* [A_t | accumulate | [Cfxe_t |fcofixi|result] | arg1 | ... | argp ] *)
+(* [A_t | accumulate | envofs | [Cfxe_t |fcofixi|result] | arg1 | ... | argp ] *)
(* This representation is nice because the application of the cofix is *)
(* evaluated only once (it simulates a lazy evaluation) *)
(* Moreover, when cofix don't have arguments, it is possible to create *)
(* a cycle, e.g.: *)
(* cofix one := cons 1 one *)
-(* a1 = [A_t | accumulate | [Cfx_t|fcofix1] ] *)
-(* fcofix1 = [clos_t | code | a1] *)
+(* a1 = [A_t | accumulate | envofs | [Cfx_t|fcofix1] ] *)
+(* fcofix1 = [clos_t | code | envofs | a1] *)
(* The result of evaluating [a1] is [cons_t | 1 | a1]. *)
(* When [a1] is updated : *)
-(* a1 = [A_t | accumulate | [Cfxe_t | fcofix1 | [cons_t | 1 | a1]] ] *)
+(* a1 = [A_t | accumulate | envofs | [Cfxe_t | fcofix1 | [cons_t | 1 | a1]] ] *)
(* The cycle is created ... *)
(* *)
(* In Cfxe_t accumulators, we need to store [fcofixi] for testing *)
@@ -131,9 +131,7 @@ type comp_env = {
(* universes are always at the bottom. *)
nb_stack : int; (* number of variables on the stack *)
in_stack : int Range.t; (* position in the stack *)
- nb_rec : int; (* number of mutually recursive functions *)
- pos_rec : instruction list; (* instruction d'acces pour les variables *)
- (* de point fix ou de cofix *)
+ pos_rec : instruction array; (* instruction to access mutually-defined functions *)
offset : int;
in_env : vm_env ref (* The free variables of the expression *)
}
@@ -159,8 +157,7 @@ let empty_comp_env ()=
nb_uni_stack = 0;
nb_stack = 0;
in_stack = Range.empty;
- nb_rec = 0;
- pos_rec = [];
+ pos_rec = [||];
offset = 0;
in_env = ref empty_fv
}
@@ -195,9 +192,8 @@ let comp_env_fun ?(univs=0) arity =
nb_uni_stack = univs ;
nb_stack = arity;
in_stack = add_param arity 0 Range.empty;
- nb_rec = 0;
- pos_rec = [];
- offset = 1;
+ pos_rec = [||];
+ offset = 0;
in_env = ref empty_fv
}
@@ -207,24 +203,18 @@ let comp_env_fix_type rfv =
nb_uni_stack = 0;
nb_stack = 0;
in_stack = Range.empty;
- nb_rec = 0;
- pos_rec = [];
- offset = 1;
+ pos_rec = [||];
+ offset = 0;
in_env = rfv
}
-let comp_env_fix ndef curr_pos arity rfv =
- let prec = ref [] in
- for i = ndef downto 1 do
- prec := Koffsetclosure (2 * (ndef - curr_pos - i)) :: !prec
- done;
+let comp_env_fix ndef arity rfv =
{ arity;
nb_uni_stack = 0;
nb_stack = arity;
in_stack = add_param arity 0 Range.empty;
- nb_rec = ndef;
- pos_rec = !prec;
- offset = 2 * (ndef - curr_pos - 1)+1;
+ pos_rec = Array.init ndef (fun i -> Koffsetclosure i);
+ offset = 0;
in_env = rfv
}
@@ -233,24 +223,18 @@ let comp_env_cofix_type ndef rfv =
nb_uni_stack = 0;
nb_stack = 0;
in_stack = Range.empty;
- nb_rec = 0;
- pos_rec = [];
- offset = 1+ndef;
+ pos_rec = [||];
+ offset = ndef;
in_env = rfv
}
let comp_env_cofix ndef arity rfv =
- let prec = ref [] in
- for i = 1 to ndef do
- prec := Kenvacc i :: !prec
- done;
{ arity;
nb_uni_stack = 0;
nb_stack = arity;
in_stack = add_param arity 0 Range.empty;
- nb_rec = ndef;
- pos_rec = !prec;
- offset = ndef+1;
+ pos_rec = Array.init ndef (fun i -> Kenvacc (ndef - 1 - i));
+ offset = ndef;
in_env = rfv
}
@@ -283,11 +267,11 @@ let pos_rel i r sz =
Kacc(sz - (Range.get r.in_stack (i-1)))
else
let i = i - r.nb_stack in
- if i <= r.nb_rec then
- try List.nth r.pos_rec (i-1)
- with (Failure _|Invalid_argument _) -> assert false
+ let nb_rec = Array.length r.pos_rec in
+ if i <= nb_rec then
+ r.pos_rec.(i - 1)
else
- let i = i - r.nb_rec in
+ let i = i - nb_rec in
let db = FVrel(i) in
let env = !(r.in_env) in
try Kenvacc(r.offset + find_at db env)
@@ -410,16 +394,16 @@ let add_grabrec rec_arg arity lbl cont =
let cont_cofix arity =
(* accu = res *)
(* stk = ai::args::ra::... *)
- (* ai = [At|accumulate|[Cfx_t|fcofix]|args] *)
+ (* ai = [At|accumulate|envofs|[Cfx_t|fcofix]|args] *)
[ Kpush;
Kpush; (* stk = res::res::ai::args::ra::... *)
Kacc 2;
- Kfield 1;
+ Kfield 2;
Kfield 0;
Kmakeblock(2, cofix_evaluated_tag);
Kpush; (* stk = [Cfxe_t|fcofix|res]::res::ai::args::ra::...*)
Kacc 2;
- Ksetfield 1; (* ai = [At|accumulate|[Cfxe_t|fcofix|res]|args] *)
+ Ksetfield 2; (* ai = [At|accumulate|envofs|[Cfxe_t|fcofix|res]|args] *)
(* stk = res::ai::args::ra::... *)
Kacc 0; (* accu = res *)
Kreturn (arity+2) ]
@@ -627,7 +611,7 @@ let rec compile_lam env cenv lam sz cont =
for i = 0 to ndef - 1 do
let params,body = decompose_Llam bodies.(i) in
let arity = Array.length params in
- let env_body = comp_env_fix ndef i arity rfv in
+ let env_body = comp_env_fix ndef arity rfv in
let cont1 =
ensure_stack_capacity (compile_lam env env_body body arity) [Kreturn arity]
in
diff --git a/kernel/vmemitcodes.ml b/kernel/vmemitcodes.ml
index 2dfc9a2941..f913cb906c 100644
--- a/kernel/vmemitcodes.ml
+++ b/kernel/vmemitcodes.ml
@@ -270,12 +270,12 @@ let emit_instr env = function
| Kacc n ->
if n < 8 then out env(opACC0 + n) else (out env opACC; out_int env n)
| Kenvacc n ->
- if n >= 1 && n <= 4
- then out env(opENVACC1 + n - 1)
+ if n >= 0 && n <= 3
+ then out env(opENVACC0 + n)
else (out env opENVACC; out_int env n)
| Koffsetclosure ofs ->
- if Int.equal ofs (-2) || Int.equal ofs 0 || Int.equal ofs 2
- then out env (opOFFSETCLOSURE0 + ofs / 2)
+ if Int.equal ofs 0 || Int.equal ofs 1
+ then out env (opOFFSETCLOSURE0 + ofs)
else (out env opOFFSETCLOSURE; out_int env ofs)
| Kpush ->
out env opPUSH
@@ -385,13 +385,13 @@ let rec emit env insns remaining = match insns with
if n < 8 then out env(opPUSHACC0 + n) else (out env opPUSHACC; out_int env n);
emit env c remaining
| Kpush :: Kenvacc n :: c ->
- if n >= 1 && n <= 4
- then out env(opPUSHENVACC1 + n - 1)
+ if n >= 0 && n <= 3
+ then out env(opPUSHENVACC0 + n)
else (out env opPUSHENVACC; out_int env n);
emit env c remaining
| Kpush :: Koffsetclosure ofs :: c ->
- if Int.equal ofs (-2) || Int.equal ofs 0 || Int.equal ofs 2
- then out env(opPUSHOFFSETCLOSURE0 + ofs / 2)
+ if Int.equal ofs 0 || Int.equal ofs 1
+ then out env(opPUSHOFFSETCLOSURE0 + ofs)
else (out env opPUSHOFFSETCLOSURE; out_int env ofs);
emit env c remaining
| Kpush :: Kgetglobal id :: c ->
diff --git a/kernel/vmsymtable.ml b/kernel/vmsymtable.ml
index 85f7369654..4ad830a298 100644
--- a/kernel/vmsymtable.ml
+++ b/kernel/vmsymtable.ml
@@ -206,15 +206,11 @@ and eval_to_patch env (buff,pl,fv) =
in
let tc = patch buff pl slots in
let vm_env =
- (* Beware, this may look like a call to [Array.map], but it's not.
- Calling [Array.map f] when the first argument returned by [f]
- is a float would lead to [vm_env] being an unboxed Double_array
- (Tag_val = Double_array_tag) whereas eval_tcode expects a
- regular array (Tag_val = 0).
- See test-suite/primitive/float/coq_env_double_array.v
- for an actual instance. *)
- let a = Array.make (Array.length fv) crazy_val in
- Array.iteri (fun i v -> a.(i) <- slot_for_fv env v) fv; a in
+ (* Environment should look like a closure, so free variables start at slot 2. *)
+ let a = Array.make (Array.length fv + 2) crazy_val in
+ a.(1) <- Obj.magic 2;
+ Array.iteri (fun i v -> a.(i + 2) <- slot_for_fv env v) fv;
+ a in
eval_tcode tc (get_atom_rel ()) (vm_global global_data.glob_val) vm_env
and val_of_constr env c =
diff --git a/kernel/vmvalues.ml b/kernel/vmvalues.ml
index de604176cb..0678f37a0b 100644
--- a/kernel/vmvalues.ml
+++ b/kernel/vmvalues.ml
@@ -34,8 +34,6 @@ let crazy_val = (val_of_obj (Obj.repr 0))
type tag = int
-let accu_tag = 0
-
let type_atom_tag = 2
let max_atom_tag = 2
let proj_tag = 3
@@ -166,7 +164,6 @@ let cofix_upd_val v = (Obj.magic v : values)
type vm_env
type vm_global
let fun_env v = (Obj.magic v : vm_env)
-let fix_env v = (Obj.magic v : vm_env)
let cofix_env v = (Obj.magic v : vm_env)
let cofix_upd_env v = (Obj.magic v : vm_env)
type vstack = values array
@@ -207,13 +204,13 @@ type vswitch = {
(* dom : values, codom : vfun *)
(* *)
(* + Functions have two representations : *)
-(* - unapplied fun : vf = Ct_[ C | fv1 | ... | fvn] *)
+(* - unapplied fun : vf = Ct_[ C | envofs=2 | fv1 | ... | fvn] *)
(* C:tcode, fvi : values *)
(* Remark : a function and its environment is the same value. *)
-(* - partially applied fun : Ct_[Restart:C| vf | arg1 | ... argn] *)
+(* - partially applied fun : Ct_[ Restart::C | envofs=2 | vf | arg1 | ... | argn] *)
(* *)
(* + Fixpoints : *)
-(* - Ct_[C1|Infix_t|C2|...|Infix_t|Cn|fv1|...|fvn] *)
+(* - Ct_[C1|envofs1=3*n-1 | Infix_t|C2|envofs2 | ... | Infix_t|Cn|envofsn=2 | fv1|...|fvn] *)
(* One single block to represent all of the fixpoints, each fixpoint *)
(* is the pointer to the field holding the pointer to its code, and *)
(* the infix tag is used to know where the block starts. *)
@@ -226,13 +223,12 @@ type vswitch = {
(* + Cofixpoints : see cbytegen.ml *)
(* *)
(* + vblock's encode (non constant) constructors as in Ocaml, but *)
-(* starting from 0 up. tag 0 ( = accu_tag) is reserved for *)
-(* accumulators. *)
+(* starting from 0 up. *)
(* *)
(* + vm_env is the type of the machine environments (i.e. a function or *)
(* a fixpoint) *)
(* *)
-(* + Accumulators : At_[accumulate| accu | arg1 | ... | argn ] *)
+(* + Accumulators : At_[accumulate | envofs=2 | accu | arg1 | ... | argn ] *)
(* - representation of [accu] : tag_[....] *)
(* -- tag <= 3 : encoding atom type (sorts, free vars, etc.) *)
(* -- 10_[accu|proj name] : a projection blocked by an accu *)
@@ -291,10 +287,10 @@ type whd =
| Vuniv_level of Univ.Level.t
(* Functions over arguments *)
-let nargs : arguments -> int = fun args -> (Obj.size (Obj.repr args)) - 2
+let nargs : arguments -> int = fun args -> Obj.size (Obj.repr args) - 3
let arg args i =
if 0 <= i && i < (nargs args) then
- val_of_obj (Obj.field (Obj.repr args) (i+2))
+ val_of_obj (Obj.field (Obj.repr args) (i + 3))
else invalid_arg
("Vm.arg size = "^(string_of_int (nargs args))^
" acces "^(string_of_int i))
@@ -329,9 +325,9 @@ let uni_lvl_val (v : values) : Univ.Level.t =
let rec whd_accu a stk =
let stk =
- if Int.equal (Obj.size a) 2 then stk
+ if Int.equal (Obj.size a) 3 then stk
else Zapp (Obj.obj a) :: stk in
- let at = Obj.field a 1 in
+ let at = Obj.field a 2 in
match Obj.tag at with
| i when Int.equal i type_atom_tag ->
begin match stk with
@@ -356,7 +352,7 @@ let rec whd_accu a stk =
| i when Int.equal i fix_app_tag ->
let fa = Obj.field at 1 in
let zfix =
- Zfix (Obj.obj (Obj.field fa 1), Obj.obj fa) in
+ Zfix (Obj.obj (Obj.field fa 2), Obj.obj fa) in
whd_accu (Obj.field at 0) (zfix :: stk)
| i when Int.equal i switch_tag ->
let zswitch = Zswitch (Obj.obj (Obj.field at 1)) in
@@ -392,29 +388,28 @@ external accumulate : unit -> tcode = "accumulate_code"
external set_bytecode_field : Obj.t -> int -> tcode -> unit = "coq_set_bytecode_field"
let accumulate = accumulate ()
-let whd_val : values -> whd =
- fun v ->
- let o = Obj.repr v in
- if Obj.is_int o then Vconstr_const (Obj.obj o)
+let whd_val (v: values) =
+ let o = Obj.repr v in
+ if Obj.is_int o then Vconstr_const (Obj.obj o)
+ else
+ let tag = Obj.tag o in
+ if Int.equal tag 0 then
+ if Int.equal (Obj.size o) 1 then
+ Varray (Obj.obj o)
+ else Vprod (Obj.obj o)
+ else if Int.equal tag Obj.closure_tag && is_accumulate (fun_code o) then
+ whd_accu o []
+ else if Int.equal tag Obj.closure_tag || Int.equal tag Obj.infix_tag then
+ (match kind_of_closure o with
+ | 0 -> Vfun(Obj.obj o)
+ | 1 -> Vfix(Obj.obj o, None)
+ | 2 -> Vfix(Obj.obj (Obj.field o 2), Some (Obj.obj o))
+ | 3 -> Vatom_stk(Aid(RelKey(int_tcode (fun_code o) 1)), [])
+ | _ -> CErrors.anomaly ~label:"Vm.whd " (Pp.str "kind_of_closure does not work."))
+ else if Int.equal tag Obj.custom_tag then Vint64 (Obj.magic v)
+ else if Int.equal tag Obj.double_tag then Vfloat64 (Obj.magic v)
else
- let tag = Obj.tag o in
- if tag = accu_tag then
- if Int.equal (Obj.size o) 1 then
- Varray(Obj.obj o)
- else if is_accumulate (fun_code o) then whd_accu o []
- else Vprod(Obj.obj o)
- else
- if tag = Obj.closure_tag || tag = Obj.infix_tag then
- (match kind_of_closure o with
- | 0 -> Vfun(Obj.obj o)
- | 1 -> Vfix(Obj.obj o, None)
- | 2 -> Vfix(Obj.obj (Obj.field o 1), Some (Obj.obj o))
- | 3 -> Vatom_stk(Aid(RelKey(int_tcode (fun_code o) 1)), [])
- | _ -> CErrors.anomaly ~label:"Vm.whd " (Pp.str "kind_of_closure does not work."))
- else if Int.equal tag Obj.custom_tag then Vint64 (Obj.magic v)
- else if Int.equal tag Obj.double_tag then Vfloat64 (Obj.magic v)
- else
- Vconstr_block(Obj.obj o)
+ Vconstr_block (Obj.obj o)
(**********************************************)
(* Constructors *******************************)
@@ -422,9 +417,10 @@ let whd_val : values -> whd =
let obj_of_atom : atom -> Obj.t =
fun a ->
- let res = Obj.new_block accu_tag 2 in
+ let res = Obj.new_block Obj.closure_tag 3 in
set_bytecode_field res 0 accumulate;
- Obj.set_field res 1 (Obj.repr a);
+ Obj.set_field res 1 (Obj.repr 2);
+ Obj.set_field res 2 (Obj.repr a);
res
(* obj_of_str_const : structured_constant -> Obj.t *)
@@ -516,29 +512,23 @@ external closure_arity : vfun -> int = "coq_closure_arity"
(* Functions over fixpoint *)
-external offset : Obj.t -> int = "coq_offset"
-external offset_closure : Obj.t -> int -> Obj.t = "coq_offset_closure"
-external offset_closure_fix : vfix -> int -> vm_env = "coq_offset_closure"
+external current_fix : vfix -> int = "coq_current_fix"
+external shift_fix : vfix -> int -> vfix = "coq_shift_fix"
+external last_fix : vfix -> vfix = "coq_last_fix"
external tcode_array : tcode_array -> tcode array = "coq_tcode_array"
-let first o = (offset_closure o (offset o))
-let first_fix (v:vfix) = (Obj.magic (first (Obj.repr v)) : vfix)
+let first_fix o = shift_fix o (- current_fix o)
+let fix_env v = (Obj.magic (last_fix v) : vm_env)
let last o = (Obj.field o (Obj.size o - 1))
let fix_types (v:vfix) = tcode_array (Obj.magic (last (Obj.repr v)) : tcode_array)
let cofix_types (v:vcofix) = tcode_array (Obj.magic (last (Obj.repr v)) : tcode_array)
-let current_fix vf = - (offset (Obj.repr vf) / 2)
-
-let unsafe_fb_code fb i =
- let off = (2 * i) * (Sys.word_size / 8) in
- Obj.obj (Obj.add_offset (Obj.repr fb) (Int32.of_int off))
-
-let unsafe_rec_arg fb i = int_tcode (unsafe_fb_code fb i) 1
+let unsafe_rec_arg fb i = int_tcode (Obj.magic (shift_fix fb i)) 1
let rec_args vf =
- let fb = first (Obj.repr vf) in
- let size = Obj.size (last fb) in
+ let fb = first_fix vf in
+ let size = Obj.size (last (Obj.repr fb)) in
Array.init size (unsafe_rec_arg fb)
exception FALSE
@@ -547,10 +537,10 @@ let check_fix f1 f2 =
let i1, i2 = current_fix f1, current_fix f2 in
(* Checking starting point *)
if i1 = i2 then
- let fb1,fb2 = first (Obj.repr f1), first (Obj.repr f2) in
- let n = Obj.size (last fb1) in
+ let fb1,fb2 = first_fix f1, first_fix f2 in
+ let n = Obj.size (last (Obj.repr fb1)) in
(* Checking number of definitions *)
- if n = Obj.size (last fb2) then
+ if n = Obj.size (last (Obj.repr fb2)) then
(* Checking recursive arguments *)
try
for i = 0 to n - 1 do
@@ -593,21 +583,23 @@ let relaccu_code i =
let mk_fix_body k ndef fb =
let e = Obj.dup (Obj.repr fb) in
+ let env = Obj.repr (fix_env (Obj.obj e)) in
for i = 0 to ndef - 1 do
- set_bytecode_field e (2 * i) (relaccu_code (k + i))
+ set_bytecode_field e (3 * i) (relaccu_code (k + i))
done;
let fix_body i =
- let c = offset_tcode (unsafe_fb_code fb i) 2 in
- let res = Obj.new_block Obj.closure_tag 2 in
+ let c = offset_tcode (Obj.magic (shift_fix fb i)) 2 in
+ let res = Obj.new_block Obj.closure_tag 3 in
set_bytecode_field res 0 c;
- Obj.set_field res 1 (offset_closure e (2*i));
+ Obj.set_field res 1 (Obj.repr 2);
+ Obj.set_field res 2 env;
((Obj.obj res) : vfun) in
Array.init ndef fix_body
(* Functions over vcofix *)
let get_fcofix vcf i =
- match whd_val (Obj.obj (Obj.field (Obj.repr vcf) (i+1))) with
+ match whd_val (Obj.obj (Obj.field (Obj.repr vcf) (i+2))) with
| Vcofix(vcfi, _, _) -> vcfi
| _ -> assert false
@@ -628,7 +620,7 @@ let check_cofix vcf1 vcf2 =
let mk_cofix_body apply_varray k ndef vcf =
let e = Obj.dup (Obj.repr vcf) in
for i = 0 to ndef - 1 do
- Obj.set_field e (i+1) (Obj.repr (val_of_rel (k+i)))
+ Obj.set_field e (i+2) (Obj.repr (val_of_rel (k+i)))
done;
let cofix_body i =
@@ -636,9 +628,7 @@ let mk_cofix_body apply_varray k ndef vcf =
let c = Obj.field (Obj.repr vcfi) 0 in
Obj.set_field e 0 c;
let atom = Obj.new_block cofix_tag 1 in
- let self = Obj.new_block accu_tag 2 in
- set_bytecode_field self 0 accumulate;
- Obj.set_field self 1 (Obj.repr atom);
+ let self = obj_of_atom (Obj.obj atom) in
apply_varray (Obj.obj e) [|Obj.obj self|] in
Array.init ndef cofix_body
diff --git a/kernel/vmvalues.mli b/kernel/vmvalues.mli
index f6efd49cfc..6632dc46b2 100644
--- a/kernel/vmvalues.mli
+++ b/kernel/vmvalues.mli
@@ -27,8 +27,6 @@ type to_update
type tag = int
-val accu_tag : tag
-
val type_atom_tag : tag
val max_atom_tag : tag
val proj_tag : tag
@@ -181,7 +179,6 @@ val rec_args : vfix -> int array
val first_fix : vfix -> vfix
val fix_types : vfix -> tcode array
val cofix_types : vcofix -> tcode array
-external offset_closure_fix : vfix -> int -> vm_env = "coq_offset_closure"
val mk_fix_body : int -> int -> vfix -> vfun array
(** CoFix *)
diff --git a/lib/acyclicGraph.ml b/lib/acyclicGraph.ml
index dc5241b89e..8da09dc98a 100644
--- a/lib/acyclicGraph.ml
+++ b/lib/acyclicGraph.ml
@@ -356,39 +356,37 @@ module Make (Point:Point) = struct
let get_new_edges g to_merge =
(* Computing edge sets. *)
- let to_merge_lvl =
- List.fold_left (fun acc u -> PMap.add u.canon u acc)
- PMap.empty to_merge
- in
let ltle =
- let fold _ n acc =
+ let fold acc n =
let fold u strict acc =
- if strict then PMap.add u strict acc
- else if PMap.mem u acc then acc
- else PMap.add u false acc
+ match PMap.find u acc with
+ | true -> acc
+ | false -> if strict then PMap.add u true acc else acc
+ | exception Not_found -> PMap.add u strict acc
in
PMap.fold fold n.ltle acc
in
- PMap.fold fold to_merge_lvl PMap.empty
+ match to_merge with
+ | [] -> assert false
+ | hd :: tl -> List.fold_left fold hd.ltle tl
in
let ltle, _ = clean_ltle g ltle in
- let ltle =
- PMap.merge (fun _ a strict ->
- match a, strict with
- | Some _, Some true ->
- (* There is a lt edge inside the new component. This is a
- "bad cycle". *)
- raise CycleDetected
- | Some _, Some false -> None
- | _, _ -> strict
- ) to_merge_lvl ltle
+ let fold accu a =
+ match PMap.find a.canon ltle with
+ | true ->
+ (* There is a lt edge inside the new component. This is a
+ "bad cycle". *)
+ raise CycleDetected
+ | false -> PMap.remove a.canon accu
+ | exception Not_found -> accu
in
+ let ltle = List.fold_left fold ltle to_merge in
let gtge =
- PMap.fold (fun _ n acc -> PSet.union acc n.gtge)
- to_merge_lvl PSet.empty
+ List.fold_left (fun acc n -> PSet.union acc n.gtge)
+ PSet.empty to_merge
in
let gtge, _ = clean_gtge g gtge in
- let gtge = PSet.diff gtge (PMap.domain to_merge_lvl) in
+ let gtge = List.fold_left (fun acc n -> PSet.remove n.canon acc) gtge to_merge in
(ltle, gtge)
diff --git a/plugins/ltac/coretactics.mlg b/plugins/ltac/coretactics.mlg
index cb226de586..f1f538ab39 100644
--- a/plugins/ltac/coretactics.mlg
+++ b/plugins/ltac/coretactics.mlg
@@ -263,7 +263,7 @@ END
(** Double induction *)
-TACTIC EXTEND double_induction
+TACTIC EXTEND double_induction DEPRECATED { Deprecation.make () }
| [ "double" "induction" quantified_hypothesis(h1) quantified_hypothesis(h2) ] ->
{ Elim.h_double_induction h1 h2 }
END
diff --git a/plugins/ltac/extraargs.mlg b/plugins/ltac/extraargs.mlg
index eb53fd45d0..863c4d37d8 100644
--- a/plugins/ltac/extraargs.mlg
+++ b/plugins/ltac/extraargs.mlg
@@ -25,7 +25,7 @@ open Locus
(** Adding scopes for generic arguments not defined through ARGUMENT EXTEND *)
let create_generic_quotation name e wit =
- let inject (loc, v) = Tacexpr.TacGeneric (Genarg.in_gen (Genarg.rawwit wit) v) in
+ let inject (loc, v) = Tacexpr.TacGeneric (Some name, Genarg.in_gen (Genarg.rawwit wit) v) in
Tacentries.create_ltac_quotation name inject (e, None)
let () = create_generic_quotation "integer" Pcoq.Prim.integer Stdarg.wit_int
diff --git a/plugins/ltac/g_ltac.mlg b/plugins/ltac/g_ltac.mlg
index 78cde2cde8..d88cda177e 100644
--- a/plugins/ltac/g_ltac.mlg
+++ b/plugins/ltac/g_ltac.mlg
@@ -180,7 +180,7 @@ GRAMMAR EXTEND Gram
[ [ a = tactic_arg -> { a }
| c = Constr.constr -> { (match c with { CAst.v = CRef (r,None) } -> Reference r | c -> ConstrMayEval (ConstrTerm c)) }
(* Unambiguous entries: tolerated w/o "ltac:" modifier *)
- | "()" -> { TacGeneric (genarg_of_unit ()) } ] ]
+ | "()" -> { TacGeneric (None, genarg_of_unit ()) } ] ]
;
(* Can be used as argument and at toplevel in tactic expressions. *)
tactic_arg:
@@ -209,9 +209,9 @@ GRAMMAR EXTEND Gram
| c = Constr.constr -> { ConstrTerm c } ] ]
;
tactic_atom:
- [ [ n = integer -> { TacGeneric (genarg_of_int n) }
+ [ [ n = integer -> { TacGeneric (None, genarg_of_int n) }
| r = reference -> { TacCall (CAst.make ~loc (r,[])) }
- | "()" -> { TacGeneric (genarg_of_unit ()) } ] ]
+ | "()" -> { TacGeneric (None, genarg_of_unit ()) } ] ]
;
match_key:
[ [ "match" -> { Once }
diff --git a/plugins/ltac/leminv.ml b/plugins/ltac/leminv.ml
index 0024d1a4ba..47df3ec34f 100644
--- a/plugins/ltac/leminv.ml
+++ b/plugins/ltac/leminv.ml
@@ -228,14 +228,15 @@ let inversion_scheme ~name ~poly env sigma t sort dep_option inv_op =
let c = fill_holes pfterm in
(* warning: side-effect on ownSign *)
let invProof = it_mkNamedLambda_or_LetIn c !ownSign in
- let p = EConstr.to_constr sigma invProof in
- p, sigma
+ invProof, sigma
let add_inversion_lemma ~poly name env sigma t sort dep inv_op =
let invProof, sigma = inversion_scheme ~name ~poly env sigma t sort dep inv_op in
- let univs = Evd.univ_entry ~poly sigma in
- let entry = Declare.definition_entry ~univs invProof in
- let _ : Names.Constant.t = Declare.declare_constant ~name ~kind:Decls.(IsProof Lemma) (Declare.DefinitionEntry entry) in
+ let cinfo = Declare.CInfo.make ~name ~typ:None () in
+ let info = Declare.Info.make ~poly ~kind:Decls.(IsProof Lemma) () in
+ let _ : Names.GlobRef.t =
+ Declare.declare_definition ~cinfo ~info ~opaque:false ~body:invProof sigma
+ in
()
(* inv_op = Inv (derives de complete inv. lemma)
@@ -246,11 +247,7 @@ let add_inversion_lemma_exn ~poly na com comsort bool tac =
let sigma = Evd.from_env env in
let sigma, c = Constrintern.interp_type_evars ~program_mode:false env sigma com in
let sigma, sort = Evd.fresh_sort_in_family ~rigid:univ_rigid sigma comsort in
- try
- add_inversion_lemma ~poly na env sigma c sort bool tac
- with
- | UserError (Some "Case analysis",s) -> (* Reference to Indrec *)
- user_err ~hdr:"Inv needs Nodep Prop Set" s
+ add_inversion_lemma ~poly na env sigma c sort bool tac
(* ================================= *)
(* Applying a given inversion lemma *)
diff --git a/plugins/ltac/pptactic.ml b/plugins/ltac/pptactic.ml
index f69fe064a7..85bb901046 100644
--- a/plugins/ltac/pptactic.ml
+++ b/plugins/ltac/pptactic.ml
@@ -338,8 +338,8 @@ let string_of_genarg_arg (ArgumentType arg) =
| Extend.Uentryl (_, l) -> prtac LevelSome arg
| _ ->
match arg with
- | TacGeneric arg ->
- let pr l arg = prtac l (TacGeneric arg) in
+ | TacGeneric (isquot,arg) ->
+ let pr l arg = prtac l (TacGeneric (isquot,arg)) in
pr_any_arg pr symb arg
| _ -> str "ltac:(" ++ prtac LevelSome arg ++ str ")"
@@ -571,7 +571,7 @@ let pr_goal_selector ~toplevel s =
let pr_let_clause k pr_gen pr_arg (na,(bl,t)) =
let pr = function
- | TacGeneric arg ->
+ | TacGeneric (_,arg) ->
let name = string_of_genarg_arg (genarg_tag arg) in
if name = "unit" || name = "int" then
(* Hard-wired parsing rules *)
@@ -1049,8 +1049,9 @@ let pr_goal_selector ~toplevel s =
pr_may_eval env sigma pr.pr_constr pr.pr_lconstr pr.pr_constant pr.pr_pattern c, leval
| TacArg { CAst.v=TacFreshId l } ->
primitive "fresh" ++ pr_fresh_ids l, latom
- | TacArg { CAst.v=TacGeneric arg } ->
- pr.pr_generic env sigma arg, latom
+ | TacArg { CAst.v=TacGeneric (isquot,arg) } ->
+ let p = pr.pr_generic env sigma arg in
+ (match isquot with Some name -> str name ++ str ":(" ++ p ++ str ")" | None -> p), latom
| TacArg { CAst.v=TacCall {CAst.v=(f,[])} } ->
pr.pr_reference f, latom
| TacArg { CAst.v=TacCall {CAst.loc; v=(f,l)} } ->
diff --git a/plugins/ltac/taccoerce.ml b/plugins/ltac/taccoerce.ml
index 91d26519b8..f7037176d2 100644
--- a/plugins/ltac/taccoerce.ml
+++ b/plugins/ltac/taccoerce.ml
@@ -394,7 +394,7 @@ type appl =
(* Values for interpretation *)
type tacvalue =
- | VFun of appl*Tacexpr.ltac_trace * Val.t Id.Map.t *
+ | VFun of appl * Tacexpr.ltac_trace * Loc.t option * Val.t Id.Map.t *
Name.t list * Tacexpr.glob_tactic_expr
| VRec of Val.t Id.Map.t ref * Tacexpr.glob_tactic_expr
diff --git a/plugins/ltac/taccoerce.mli b/plugins/ltac/taccoerce.mli
index 3afbb56b23..b8592c5c76 100644
--- a/plugins/ltac/taccoerce.mli
+++ b/plugins/ltac/taccoerce.mli
@@ -104,7 +104,7 @@ type appl =
(** For calls to global constants, some may alias other. *)
type tacvalue =
- | VFun of appl*Tacexpr.ltac_trace * Val.t Id.Map.t *
+ | VFun of appl *Tacexpr.ltac_trace * Loc.t option * Val.t Id.Map.t *
Name.t list * Tacexpr.glob_tactic_expr
| VRec of Val.t Id.Map.t ref * Tacexpr.glob_tactic_expr
diff --git a/plugins/ltac/tacentries.ml b/plugins/ltac/tacentries.ml
index f8c25d5dd0..fcd60ea250 100644
--- a/plugins/ltac/tacentries.ml
+++ b/plugins/ltac/tacentries.ml
@@ -174,7 +174,7 @@ let add_tactic_entry (kn, ml, tg) state =
if Genarg.has_type arg wit && not ml then
Tacexp (Genarg.out_gen wit arg)
else
- TacGeneric arg
+ TacGeneric (None, arg)
in
let l = List.map map l in
(TacAlias (CAst.make ~loc (kn,l)):raw_tactic_expr)
@@ -349,7 +349,7 @@ let extend_atomic_tactic name entries =
| TacNonTerm (_, (symb, _)) ->
let EntryName (typ, e) = prod_item_of_symbol 0 symb in
let Genarg.Rawwit wit = typ in
- let inj x = TacArg (CAst.make @@ TacGeneric (Genarg.in_gen typ x)) in
+ let inj x = TacArg (CAst.make @@ TacGeneric (None, Genarg.in_gen typ x)) in
let default = epsilon_value inj e in
match default with
| None -> raise NonEmptyArgument
@@ -780,7 +780,7 @@ let ml_val_tactic_extend ~plugin ~name ~local ?deprecation sign tac =
let ml_tactic_name = { mltac_tactic = name; mltac_plugin = plugin } in
let len = ml_sig_len sign in
let vars = List.init len (fun i -> Id.of_string (Printf.sprintf "arg%i" i)) in
- let body = TacGeneric (in_tacval { tacval_tac = ml_tactic_name; tacval_var = vars }) in
+ let body = TacGeneric (None, in_tacval { tacval_tac = ml_tactic_name; tacval_var = vars }) in
let vars = List.map (fun id -> Name id) vars in
let body = Tacexpr.TacFun (vars, Tacexpr.TacArg (CAst.make body)) in
let id = Names.Id.of_string name in
@@ -876,7 +876,7 @@ let argument_extend (type a b c) ~name (arg : (a, b, c) tactic_argument) =
let (rpr, gpr, tpr) = arg.arg_printer in
let () = Pptactic.declare_extra_genarg_pprule wit rpr gpr tpr in
let () = create_ltac_quotation name
- (fun (loc, v) -> Tacexpr.TacGeneric (Genarg.in_gen (Genarg.rawwit wit) v))
+ (fun (loc, v) -> Tacexpr.TacGeneric (Some name,Genarg.in_gen (Genarg.rawwit wit) v))
(entry, None)
in
(wit, entry)
diff --git a/plugins/ltac/tacexpr.ml b/plugins/ltac/tacexpr.ml
index b261096b63..eaedf8d9c1 100644
--- a/plugins/ltac/tacexpr.ml
+++ b/plugins/ltac/tacexpr.ml
@@ -154,7 +154,7 @@ constraint 'a = <
(** Possible arguments of a tactic definition *)
type 'a gen_tactic_arg =
- | TacGeneric of 'lev generic_argument
+ | TacGeneric of string option * 'lev generic_argument
| ConstrMayEval of ('trm,'cst,'pat) may_eval
| Reference of 'ref
| TacCall of ('ref * 'a gen_tactic_arg list) CAst.t
diff --git a/plugins/ltac/tacexpr.mli b/plugins/ltac/tacexpr.mli
index 650349b586..50767821e4 100644
--- a/plugins/ltac/tacexpr.mli
+++ b/plugins/ltac/tacexpr.mli
@@ -153,7 +153,7 @@ constraint 'a = <
(** Possible arguments of a tactic definition *)
type 'a gen_tactic_arg =
- | TacGeneric of 'lev generic_argument
+ | TacGeneric of string option * 'lev generic_argument
| ConstrMayEval of ('trm,'cst,'pat) may_eval
| Reference of 'ref
| TacCall of ('ref * 'a gen_tactic_arg list) CAst.t
diff --git a/plugins/ltac/tacintern.ml b/plugins/ltac/tacintern.ml
index afa79a88db..dea216045e 100644
--- a/plugins/ltac/tacintern.ml
+++ b/plugins/ltac/tacintern.ml
@@ -195,7 +195,7 @@ let intern_non_tactic_reference strict ist qid =
if qualid_is_ident qid && not strict then
let id = qualid_basename qid in
let ipat = in_gen (glbwit wit_intro_pattern) (make ?loc:qid.CAst.loc @@ IntroNaming (IntroIdentifier id)) in
- TacGeneric ipat
+ TacGeneric (None,ipat)
else
(* Reference not found *)
let _, info = Exninfo.capture exn in
@@ -713,9 +713,9 @@ and intern_tacarg strict onlytac ist = function
| TacPretype c -> TacPretype (intern_constr ist c)
| TacNumgoals -> TacNumgoals
| Tacexp t -> Tacexp (intern_tactic onlytac ist t)
- | TacGeneric arg ->
+ | TacGeneric (isquot,arg) ->
let arg = intern_genarg ist arg in
- TacGeneric arg
+ TacGeneric (isquot,arg)
(* Reads the rules of a Match Context or a Match *)
and intern_match_rule onlytac ist ?(as_type=false) = function
diff --git a/plugins/ltac/tacinterp.ml b/plugins/ltac/tacinterp.ml
index 2258201c22..ff6a36a049 100644
--- a/plugins/ltac/tacinterp.ml
+++ b/plugins/ltac/tacinterp.ml
@@ -124,7 +124,7 @@ let is_traced () =
let name_vfun appl vle =
if is_traced () && has_type vle (topwit wit_tacvalue) then
match to_tacvalue vle with
- | VFun (appl0,trace,lfun,vars,t) -> of_tacvalue (VFun (combine_appl appl0 appl,trace,lfun,vars,t))
+ | VFun (appl0,trace,loc,lfun,vars,t) -> of_tacvalue (VFun (combine_appl appl0 appl,trace,loc,lfun,vars,t))
| _ -> vle
else vle
@@ -134,6 +134,7 @@ let f_avoid_ids : Id.Set.t TacStore.field = TacStore.field ()
(* ids inherited from the call context (needed to get fresh ids) *)
let f_debug : debug_info TacStore.field = TacStore.field ()
let f_trace : ltac_trace TacStore.field = TacStore.field ()
+let f_loc : Loc.t TacStore.field = TacStore.field ()
(* Signature for interpretation: val_interp and interpretation functions *)
type interp_sign = Geninterp.interp_sign =
@@ -141,12 +142,23 @@ type interp_sign = Geninterp.interp_sign =
; poly : bool
; extra : TacStore.t }
+let add_extra_trace trace extra = TacStore.set extra f_trace trace
let extract_trace ist =
if is_traced () then match TacStore.get ist.extra f_trace with
| None -> []
| Some l -> l
else []
+let add_extra_loc loc extra =
+ match loc with
+ | None -> extra
+ | Some loc -> TacStore.set extra f_loc loc
+let add_loc loc ist =
+ match loc with
+ | None -> ist
+ | Some loc -> { ist with extra = TacStore.set ist.extra f_loc loc }
+let extract_loc ist = TacStore.get ist.extra f_loc
+
let print_top_val env v = Pptactic.pr_value Pptactic.ltop v
let catching_error call_trace fail (e, info) =
@@ -222,7 +234,7 @@ let pr_inspect env expr result =
let pp_result =
if has_type result (topwit wit_tacvalue) then
match to_tacvalue result with
- | VFun (_,_, ist, ul, b) ->
+ | VFun (_, _, _, ist, ul, b) ->
let body = if List.is_empty ul then b else (TacFun (ul, b)) in
str "a closure with body " ++ fnl() ++ pr_closure env ist body
| VRec (ist, body) ->
@@ -249,10 +261,10 @@ let propagate_trace ist loc id v =
if has_type v (topwit wit_tacvalue) then
let tacv = to_tacvalue v in
match tacv with
- | VFun (appl,_,lfun,it,b) ->
+ | VFun (appl,_,_,lfun,it,b) ->
let t = if List.is_empty it then b else TacFun (it,b) in
let trace = push_trace(loc,LtacVarCall (id,t)) ist in
- let ans = VFun (appl,trace,lfun,it,b) in
+ let ans = VFun (appl,trace,loc,lfun,it,b) in
Proofview.tclUNIT (of_tacvalue ans)
| _ -> Proofview.tclUNIT v
else Proofview.tclUNIT v
@@ -260,7 +272,7 @@ let propagate_trace ist loc id v =
let append_trace trace v =
if has_type v (topwit wit_tacvalue) then
match to_tacvalue v with
- | VFun (appl,trace',lfun,it,b) -> of_tacvalue (VFun (appl,trace'@trace,lfun,it,b))
+ | VFun (appl,trace',loc,lfun,it,b) -> of_tacvalue (VFun (appl,trace'@trace,loc,lfun,it,b))
| _ -> v
else v
@@ -272,7 +284,7 @@ let coerce_to_tactic loc id v =
if has_type v (topwit wit_tacvalue) then
let tacv = to_tacvalue v in
match tacv with
- | VFun _ -> v
+ | VFun (appl,trace,_,lfun,it,b) -> of_tacvalue (VFun (appl,trace,loc,lfun,it,b))
| _ -> fail ()
else fail ()
@@ -1062,7 +1074,7 @@ let rec val_interp ist ?(appl=UnnamedAppl) (tac:glob_tactic_expr) : Val.t Ftacti
function. *)
let value_interp ist = match tac with
| TacFun (it, body) ->
- Ftactic.return (of_tacvalue (VFun (UnnamedAppl,extract_trace ist, ist.lfun, it, body)))
+ Ftactic.return (of_tacvalue (VFun (UnnamedAppl, extract_trace ist, extract_loc ist, ist.lfun, it, body)))
| TacLetIn (true,l,u) -> interp_letrec ist l u
| TacLetIn (false,l,u) -> interp_letin ist l u
| TacMatchGoal (lz,lr,lmr) -> interp_match_goal ist lz lr lmr
@@ -1070,7 +1082,7 @@ let rec val_interp ist ?(appl=UnnamedAppl) (tac:glob_tactic_expr) : Val.t Ftacti
| TacArg {loc;v} -> interp_tacarg ist v
| t ->
(* Delayed evaluation *)
- Ftactic.return (of_tacvalue (VFun (UnnamedAppl,extract_trace ist, ist.lfun, [], t)))
+ Ftactic.return (of_tacvalue (VFun (UnnamedAppl, extract_trace ist, extract_loc ist, ist.lfun, [], t)))
in
let open Ftactic in
Control.check_for_interrupt ();
@@ -1163,7 +1175,7 @@ and eval_tactic_ist ist tac : unit Proofview.tactic = match tac with
| TacFirst l -> Tacticals.New.tclFIRST (List.map (interp_tactic ist) l)
| TacSolve l -> Tacticals.New.tclSOLVE (List.map (interp_tactic ist) l)
| TacComplete tac -> Tacticals.New.tclCOMPLETE (interp_tactic ist tac)
- | TacArg a -> Ftactic.run (val_interp ist tac) (fun v -> catch_error_loc a.CAst.loc false (tactic_of_value ist v))
+ | TacArg {CAst.loc} -> Ftactic.run (val_interp (add_loc loc ist) tac) (fun v -> tactic_of_value ist v)
| TacSelect (sel, tac) -> Tacticals.New.tclSELECT sel (interp_tactic ist tac)
(* For extensions *)
| TacAlias {loc; v=(s,l)} ->
@@ -1178,9 +1190,9 @@ and eval_tactic_ist ist tac : unit Proofview.tactic = match tac with
let ist = {
lfun
; poly
- ; extra = TacStore.set ist.extra f_trace trace } in
+ ; extra = add_extra_loc loc (add_extra_trace trace ist.extra) } in
val_interp ist alias.Tacenv.alias_body >>= fun v ->
- Ftactic.lift (catch_error_loc loc false (tactic_of_value ist v))
+ Ftactic.lift (tactic_of_value ist v)
in
let tac =
Ftactic.with_env interp_vars >>= fun (env, lr) ->
@@ -1243,11 +1255,12 @@ and interp_ltac_reference ?loc' mustbetac ist r : Val.t Ftactic.t =
let ist = { lfun = Id.Map.empty; poly; extra } in
let appl = GlbAppl[r,[]] in
Profile_ltac.do_profile "interp_ltac_reference" trace ~count_call:false
- (catch_error_tac_loc loc false trace (val_interp ~appl ist (Tacenv.interp_ltac r)))
+ (catch_error_tac_loc (* interp *) loc false trace
+ (val_interp ~appl (add_loc (* exec *) loc ist) (Tacenv.interp_ltac r)))
and interp_tacarg ist arg : Val.t Ftactic.t =
match arg with
- | TacGeneric arg -> interp_genarg ist arg
+ | TacGeneric (_,arg) -> interp_genarg ist arg
| Reference r -> interp_ltac_reference false ist r
| ConstrMayEval c ->
Ftactic.enter begin fun gl ->
@@ -1297,8 +1310,8 @@ and interp_app loc ist fv largs : Val.t Ftactic.t =
is not a tactic that expects arguments.
Otherwise Ltac goes into an infinite loop (val_interp puts
a VFun back on body, and then interp_app is called again...) *)
- | (VFun(appl,trace,olfun,(_::_ as var),body)
- |VFun(appl,trace,olfun,([] as var),
+ | (VFun(appl,trace,_,olfun,(_::_ as var),body)
+ |VFun(appl,trace,_,olfun,([] as var),
(TacFun _|TacLetIn _|TacMatchGoal _|TacMatch _| TacArg _ as body))) ->
let (extfun,lvar,lval)=head_with_value (var,largs) in
let fold accu (id, v) = Id.Map.add id v accu in
@@ -1312,7 +1325,7 @@ and interp_app loc ist fv largs : Val.t Ftactic.t =
; extra = TacStore.set ist.extra f_trace []
} in
Profile_ltac.do_profile "interp_app" trace ~count_call:false
- (catch_error_tac_loc loc false trace (val_interp ist body)) >>= fun v ->
+ (catch_error_tac_loc loc false trace (val_interp (add_loc loc ist) body)) >>= fun v ->
Ftactic.return (name_vfun (push_appl appl largs) v)
end
begin fun (e, info) ->
@@ -1333,8 +1346,8 @@ and interp_app loc ist fv largs : Val.t Ftactic.t =
end <*>
if List.is_empty lval then Ftactic.return v else interp_app loc ist v lval
else
- Ftactic.return (of_tacvalue (VFun(push_appl appl largs,trace,newlfun,lvar,body)))
- | (VFun(appl,trace,olfun,[],body)) ->
+ Ftactic.return (of_tacvalue (VFun(push_appl appl largs,trace,loc,newlfun,lvar,body)))
+ | (VFun(appl,trace,_,olfun,[],body)) ->
let extra_args = List.length largs in
let info = Exninfo.reify () in
Tacticals.New.tclZEROMSG ~info
@@ -1353,15 +1366,15 @@ and interp_app loc ist fv largs : Val.t Ftactic.t =
and tactic_of_value ist vle =
if has_type vle (topwit wit_tacvalue) then
match to_tacvalue vle with
- | VFun (appl,trace,lfun,[],t) ->
+ | VFun (appl,trace,loc,lfun,[],t) ->
Proofview.tclProofInfo [@ocaml.warning "-3"] >>= fun (_name, poly) ->
let ist = {
lfun = lfun;
poly;
extra = TacStore.set ist.extra f_trace []; } in
let tac = name_if_glob appl (eval_tactic_ist ist t) in
- Profile_ltac.do_profile "tactic_of_value" trace (catch_error_tac trace tac)
- | VFun (appl,_,vmap,vars,_) ->
+ Profile_ltac.do_profile "tactic_of_value" trace (catch_error_tac_loc loc false trace tac)
+ | VFun (appl,_,loc,vmap,vars,_) ->
let tactic_nm =
match appl with
UnnamedAppl -> "An unnamed user-defined tactic"
@@ -1440,14 +1453,14 @@ and interp_match_success ist { Tactic_matching.subst ; context ; terms ; lhs } =
let ist = { ist with lfun } in
val_interp ist lhs >>= fun v ->
if has_type v (topwit wit_tacvalue) then match to_tacvalue v with
- | VFun (appl,trace,lfun,[],t) ->
+ | VFun (appl,trace,loc,lfun,[],t) ->
let ist =
{ lfun = lfun
; poly
; extra = TacStore.set ist.extra f_trace trace
} in
let tac = eval_tactic_ist ist t in
- let dummy = VFun (appl,extract_trace ist, Id.Map.empty, [], TacId []) in
+ let dummy = VFun (appl, extract_trace ist, loc, Id.Map.empty, [], TacId []) in
catch_error_tac trace (tac <*> Ftactic.return (of_tacvalue dummy))
| _ -> Ftactic.return v
else Ftactic.return v
@@ -1940,7 +1953,7 @@ module Value = struct
include Taccoerce.Value
let of_closure ist tac =
- let closure = VFun (UnnamedAppl,extract_trace ist, ist.lfun, [], tac) in
+ let closure = VFun (UnnamedAppl, extract_trace ist, None, ist.lfun, [], tac) in
of_tacvalue closure
let apply_expr f args =
diff --git a/plugins/ltac/tacsubst.ml b/plugins/ltac/tacsubst.ml
index c2f1589b74..fd869b225f 100644
--- a/plugins/ltac/tacsubst.ml
+++ b/plugins/ltac/tacsubst.ml
@@ -237,7 +237,7 @@ and subst_tacarg subst = function
| TacPretype c -> TacPretype (subst_glob_constr subst c)
| TacNumgoals -> TacNumgoals
| Tacexp t -> Tacexp (subst_tactic subst t)
- | TacGeneric arg -> TacGeneric (subst_genarg subst arg)
+ | TacGeneric (isquot,arg) -> TacGeneric (isquot,subst_genarg subst arg)
(* Reads the rules of a Match Context or a Match *)
and subst_match_rule subst = function
diff --git a/plugins/micromega/dune b/plugins/micromega/dune
index 33ad3a0138..204125ab56 100644
--- a/plugins/micromega/dune
+++ b/plugins/micromega/dune
@@ -4,7 +4,7 @@
; be careful not to link the executable to the plugin!
(modules (:standard \ csdpcert g_zify zify))
(synopsis "Coq's micromega plugin")
- (libraries num coq.plugins.ltac))
+ (libraries coq.plugins.ltac))
(executable
(name csdpcert)
diff --git a/plugins/setoid_ring/newring.ml b/plugins/setoid_ring/newring.ml
index 6ed6b8da91..5f5a974b6a 100644
--- a/plugins/setoid_ring/newring.ml
+++ b/plugins/setoid_ring/newring.ml
@@ -127,8 +127,8 @@ let closed_term_ast =
let l = List.map (fun gr -> ArgArg(Loc.tag gr)) l in
TacFun([Name(Id.of_string"t")],
TacML(CAst.make (tacname,
- [TacGeneric (Genarg.in_gen (Genarg.glbwit Stdarg.wit_constr) (DAst.make @@ GVar(Id.of_string"t"),None));
- TacGeneric (Genarg.in_gen (Genarg.glbwit (Genarg.wit_list Stdarg.wit_ref)) l)])))
+ [TacGeneric (None, Genarg.in_gen (Genarg.glbwit Stdarg.wit_constr) (DAst.make @@ GVar(Id.of_string"t"),None));
+ TacGeneric (None, Genarg.in_gen (Genarg.glbwit (Genarg.wit_list Stdarg.wit_ref)) l)])))
(*
let _ = add_tacdef false ((Loc.ghost,Id.of_string"ring_closed_term"
*)
@@ -200,7 +200,7 @@ let exec_tactic env evd n f args =
(* Build the getter *)
let lid = List.init n (fun i -> Id.of_string("x"^string_of_int i)) in
let n = Genarg.in_gen (Genarg.glbwit Stdarg.wit_int) n in
- let get_res = TacML (CAst.make (get_res, [TacGeneric n])) in
+ let get_res = TacML (CAst.make (get_res, [TacGeneric (None, n)])) in
let getter = Tacexp (TacFun (List.map (fun n -> Name n) lid, get_res)) in
(* Evaluate the whole result *)
let gl = dummy_goal env evd in
diff --git a/plugins/ssr/ssrparser.mlg b/plugins/ssr/ssrparser.mlg
index 98439e27a1..b32b58062a 100644
--- a/plugins/ssr/ssrparser.mlg
+++ b/plugins/ssr/ssrparser.mlg
@@ -1682,7 +1682,7 @@ let set_pr_ssrtac name prec afmt = (* FIXME *) () (*
let ssrtac_expr ?loc name args = TacML (CAst.make ?loc (ssrtac_entry name, args))
let tclintros_expr ?loc tac ipats =
- let args = [Tacexpr.TacGeneric (in_gen (rawwit wit_ssrintrosarg) (tac, ipats))] in
+ let args = [Tacexpr.TacGeneric (None, in_gen (rawwit wit_ssrintrosarg) (tac, ipats))] in
ssrtac_expr ?loc "tclintros" args
}
@@ -1777,7 +1777,7 @@ let _ = set_pr_ssrtac "tcldo" 3 [ArgSep "do "; ArgSsr "doarg"]
let ssrdotac_expr ?loc n m tac clauses =
let arg = ((n, m), tac), clauses in
- ssrtac_expr ?loc "tcldo" [Tacexpr.TacGeneric (in_gen (rawwit wit_ssrdoarg) arg)]
+ ssrtac_expr ?loc "tcldo" [Tacexpr.TacGeneric (None, in_gen (rawwit wit_ssrdoarg) arg)]
}
@@ -1828,7 +1828,7 @@ let tclseq_expr ?loc tac dir arg =
let arg1 = in_gen (rawwit wit_ssrtclarg) tac in
let arg2 = in_gen (rawwit wit_ssrseqdir) dir in
let arg3 = in_gen (rawwit wit_ssrseqarg) (check_seqtacarg dir arg) in
- ssrtac_expr ?loc "tclseq" (List.map (fun x -> Tacexpr.TacGeneric x) [arg1; arg2; arg3])
+ ssrtac_expr ?loc "tclseq" (List.map (fun x -> Tacexpr.TacGeneric (None, x)) [arg1; arg2; arg3])
}
@@ -2451,7 +2451,7 @@ GRAMMAR EXTEND Gram
tactic_expr: LEVEL "3"
[ RIGHTA [ IDENT "abstract"; gens = ssrdgens ->
{ ssrtac_expr ~loc "abstract"
- [Tacexpr.TacGeneric (Genarg.in_gen (Genarg.rawwit wit_ssrdgens) gens)] } ]];
+ [Tacexpr.TacGeneric (None, Genarg.in_gen (Genarg.rawwit wit_ssrdgens) gens)] } ]];
END
TACTIC EXTEND ssrabstract
| [ "abstract" ssrdgens(gens) ] -> {
diff --git a/tactics/btermdn.ml b/tactics/btermdn.ml
index bacb5a7b8f..f721e9956b 100644
--- a/tactics/btermdn.ml
+++ b/tactics/btermdn.ml
@@ -186,7 +186,5 @@ struct
(fun dn t ->
Dn.lookup dn (bounded_constr_val_discr_st env sigma st) (t,!dnet_depth))
- let app f dn = Dn.app f dn
-
end
diff --git a/tactics/btermdn.mli b/tactics/btermdn.mli
index ab201a1872..01d68a8045 100644
--- a/tactics/btermdn.mli
+++ b/tactics/btermdn.mli
@@ -38,7 +38,6 @@ sig
val rmv : t -> pattern -> Z.t -> t
val lookup : Environ.env -> Evd.evar_map -> TransparentState.t option -> t -> EConstr.constr -> Z.t list
- val app : (Z.t -> unit) -> t -> unit
end
val dnet_depth : int ref
diff --git a/tactics/class_tactics.ml b/tactics/class_tactics.ml
index 96cbbf0ba8..b4d7e7d7f0 100644
--- a/tactics/class_tactics.ml
+++ b/tactics/class_tactics.ml
@@ -158,7 +158,7 @@ let unify_resolve ~with_evars flags h diff = match diff with
| None ->
Hints.hint_res_pf ~with_evars ~with_classes:false ~flags h
| Some (diff, ty) ->
- let () = assert (not h.hint_poly) in
+ let () = assert (Option.is_empty h.hint_uctx) in
Proofview.Goal.enter begin fun gl ->
let env = Proofview.Goal.env gl in
let sigma = Tacmach.New.project gl in
@@ -203,11 +203,10 @@ let unify_resolve_refine flags h diff =
let with_prods nprods h f =
if get_typeclasses_limit_intros () then
Proofview.Goal.enter begin fun gl ->
- let { hint_term = c; hint_poly = poly } = h in
- if poly || Int.equal nprods 0 then f None
+ if Option.has_some h.hint_uctx || Int.equal nprods 0 then f None
else
let sigma = Tacmach.New.project gl in
- let ty = Retyping.get_type_of (Proofview.Goal.env gl) sigma c in
+ let ty = Retyping.get_type_of (Proofview.Goal.env gl) sigma h.hint_term in
let diff = nb_prod sigma ty - nprods in
if (>=) diff 0 then f (Some (diff, ty))
else Tacticals.New.tclZEROMSG (str"Not enough premisses")
@@ -489,12 +488,12 @@ let make_resolve_hyp env sigma st only_classes pri decl =
let hints = build_subclasses ~check:false env sigma id empty_hint_info in
(List.map_append
(fun (path,info,c) ->
- let h = IsConstr (EConstr.of_constr c,Univ.ContextSet.empty) [@ocaml.warning "-3"] in
- make_resolves env sigma ~name:(PathHints path) info ~check:true ~poly:false h)
+ let h = IsConstr (EConstr.of_constr c, None) [@ocaml.warning "-3"] in
+ make_resolves env sigma ~name:(PathHints path) info ~check:true h)
hints)
else []
in
- (hints @ make_resolves env sigma pri ~name ~check:false ~poly:false (IsGlobRef id))
+ (hints @ make_resolves env sigma pri ~name ~check:false (IsGlobRef id))
else []
let make_hints g (modes,st) only_classes sign =
diff --git a/tactics/dn.ml b/tactics/dn.ml
index 07eb49442a..c587f91e54 100644
--- a/tactics/dn.ml
+++ b/tactics/dn.ml
@@ -62,10 +62,10 @@ prefix ordering, [dna] is the function returning the main node of a pattern *)
pathrec []
let tm_of tm lbl =
- try [Trie.next tm lbl, true] with Not_found -> []
+ try [Trie.next tm lbl] with Not_found -> []
let rec skip_arg n tm =
- if Int.equal n 0 then [tm, true]
+ if Int.equal n 0 then [tm]
else
let labels = Trie.labels tm in
let map lbl = match lbl with
@@ -73,23 +73,19 @@ prefix ordering, [dna] is the function returning the main node of a pattern *)
| Some (_, m) ->
skip_arg (pred n + m) (Trie.next tm lbl)
in
- List.flatten (List.map map labels)
+ List.map_append map labels
let lookup tm dna t =
let rec lookrec t tm =
match dna t with
| Nothing -> tm_of tm None
| Label(lbl,v) ->
- tm_of tm None@
- (List.fold_left
- (fun l c ->
- List.flatten(List.map (fun (tm, b) ->
- if b then lookrec c tm
- else [tm,b]) l))
- (tm_of tm (Some(lbl,List.length v))) v)
+ let fold accu c = List.map_append (fun tm -> lookrec c tm) accu in
+ tm_of tm None @
+ (List.fold_left fold (tm_of tm (Some (lbl, List.length v))) v)
| Everything -> skip_arg 1 tm
in
- List.flatten (List.map (fun (tm,b) -> ZSet.elements (Trie.get tm)) (lookrec t tm))
+ List.map_append (fun tm -> ZSet.elements (Trie.get tm)) (lookrec t tm)
let pattern dna pat = path_of dna pat
@@ -99,7 +95,5 @@ prefix ordering, [dna] is the function returning the main node of a pattern *)
let rmv tm p inf =
Trie.remove p (ZSet.singleton inf) tm
- let app f tm = Trie.iter (fun _ p -> ZSet.iter f p) tm
-
end
diff --git a/tactics/dn.mli b/tactics/dn.mli
index 287aa2b257..85f9ef6dfb 100644
--- a/tactics/dn.mli
+++ b/tactics/dn.mli
@@ -38,6 +38,4 @@ sig
val lookup : t -> 'term lookup_fun -> 'term
-> Z.t list
- val app : (Z.t -> unit) -> t -> unit
-
end
diff --git a/tactics/equality.ml b/tactics/equality.ml
index 8478c1957a..60e2db4dce 100644
--- a/tactics/equality.ml
+++ b/tactics/equality.ml
@@ -659,8 +659,12 @@ let replace_using_leibniz clause c1 c2 l2r unsafe try_prove_eq_opt =
| None ->
tclFAIL 0 (str"Terms do not have convertible types")
| Some evd ->
- let e = lib_ref "core.eq.type" in
- let sym = lib_ref "core.eq.sym" in
+ let e,sym =
+ try lib_ref "core.eq.type", lib_ref "core.eq.sym"
+ with UserError _ ->
+ try lib_ref "core.identity.type", lib_ref "core.identity.sym"
+ with UserError _ ->
+ user_err (strbrk "Need a registration for either core.eq.type and core.eq.sym or core.identity.type and core.identity.sym.") in
Tacticals.New.pf_constr_of_global sym >>= fun sym ->
Tacticals.New.pf_constr_of_global e >>= fun e ->
let eq = applist (e, [t1;c1;c2]) in
diff --git a/tactics/hints.ml b/tactics/hints.ml
index 355cea8fa8..fe3efef7c5 100644
--- a/tactics/hints.ml
+++ b/tactics/hints.ml
@@ -129,22 +129,20 @@ type hints_path = GlobRef.t hints_path_gen
type hint_term =
| IsGlobRef of GlobRef.t
- | IsConstr of constr * Univ.ContextSet.t
+ | IsConstr of constr * Univ.ContextSet.t option (* None if monomorphic *)
type 'a with_uid = {
obj : 'a;
uid : KerName.t;
}
-type raw_hint = constr * types * Univ.ContextSet.t * bool (* poly *)
+type raw_hint = constr * types * Univ.ContextSet.t option
type hint = {
hint_term : constr;
hint_type : types;
- hint_uctx : Univ.ContextSet.t;
+ hint_uctx : Univ.ContextSet.t option; (* None if monomorphic *)
hint_clnv : clausenv;
- hint_poly : bool;
- (** Is the hint polymorpic and hence should be refreshed at each application *)
}
type 'a with_metadata =
@@ -334,15 +332,19 @@ let strip_params env sigma c =
| _ -> c)
| _ -> c
+let merge_context_set_opt sigma ctx = match ctx with
+| None -> sigma
+| Some ctx -> Evd.merge_context_set Evd.univ_flexible sigma ctx
+
let instantiate_hint env sigma p =
- let mk_clenv (c, cty, ctx, poly) =
- let sigma = Evd.merge_context_set univ_flexible sigma ctx in
+ let mk_clenv (c, cty, ctx) =
+ let sigma = merge_context_set_opt sigma ctx in
let cl = mk_clenv_from_env env sigma None (c,cty) in
let cl = {cl with templval =
{ cl.templval with rebus = strip_params env sigma cl.templval.rebus };
env = empty_env}
in
- { hint_term = c; hint_type = cty; hint_uctx = ctx; hint_clnv = cl; hint_poly = poly }
+ { hint_term = c; hint_type = cty; hint_uctx = ctx; hint_clnv = cl; }
in
let code = match p.code.obj with
| Res_pf c -> Res_pf (mk_clenv c)
@@ -816,7 +818,7 @@ let secvars_of_constr env sigma c =
let secvars_of_global env gr =
secvars_of_idset (vars_of_global env gr)
-let make_exact_entry env sigma info ~poly ?(name=PathAny) (c, cty, ctx) =
+let make_exact_entry env sigma info ?(name=PathAny) (c, cty, ctx) =
let secvars = secvars_of_constr env sigma c in
let cty = strip_outer_cast sigma cty in
match EConstr.kind sigma cty with
@@ -835,13 +837,13 @@ let make_exact_entry env sigma info ~poly ?(name=PathAny) (c, cty, ctx) =
(Some hd,
{ pri; pat = Some pat; name;
db = None; secvars;
- code = with_uid (Give_exact (c, cty, ctx, poly)); })
+ code = with_uid (Give_exact (c, cty, ctx)); })
-let make_apply_entry env sigma hnf info ~poly ?(name=PathAny) (c, cty, ctx) =
+let make_apply_entry env sigma hnf info ?(name=PathAny) (c, cty, ctx) =
let cty = if hnf then hnf_constr env sigma cty else cty in
match EConstr.kind sigma cty with
| Prod _ ->
- let sigma' = Evd.merge_context_set univ_flexible sigma ctx in
+ let sigma' = merge_context_set_opt sigma ctx in
let ce = mk_clenv_from_env env sigma' None (c,cty) in
let c' = clenv_type (* ~reduce:false *) ce in
let hd =
@@ -861,49 +863,27 @@ let make_apply_entry env sigma hnf info ~poly ?(name=PathAny) (c, cty, ctx) =
{ pri; pat = Some pat; name;
db = None;
secvars;
- code = with_uid (Res_pf(c,cty,ctx,poly)); })
+ code = with_uid (Res_pf(c,cty,ctx)); })
else
(Some hd,
{ pri; pat = Some pat; name;
db = None; secvars;
- code = with_uid (ERes_pf(c,cty,ctx,poly)); })
+ code = with_uid (ERes_pf(c,cty,ctx)); })
| _ -> failwith "make_apply_entry"
(* flags is (e,h,v) with e=true if eapply and h=true if hnf and v=true if verbose
c is a constr
cty is the type of constr *)
-let pr_hint_term env sigma ctx = function
- | IsGlobRef gr -> pr_global gr
- | IsConstr (c, ctx) ->
- let sigma = Evd.merge_context_set Evd.univ_flexible sigma ctx in
- pr_econstr_env env sigma c
-
-let warn_polymorphic_hint =
- CWarnings.create ~name:"polymorphic-hint" ~category:"automation"
- (fun hint -> strbrk"Using polymorphic hint " ++ hint ++
- str" monomorphically" ++
- strbrk" use Polymorphic Hint to use it polymorphically.")
-
-let fresh_global_or_constr env sigma poly cr =
- let isgr, (c, ctx) =
- match cr with
- | IsGlobRef gr ->
- let (c, ctx) = UnivGen.fresh_global_instance env gr in
- true, (EConstr.of_constr c, ctx)
- | IsConstr (c, ctx) -> false, (c, ctx)
- in
- if poly then (c, ctx)
- else if Univ.ContextSet.is_empty ctx then (c, ctx)
- else begin
- if isgr then
- warn_polymorphic_hint (pr_hint_term env sigma ctx cr);
- DeclareUctx.declare_universe_context ~poly:false ctx;
- (c, Univ.ContextSet.empty)
- end
-
-let make_resolves env sigma (eapply, hnf) info ~check ~poly ?name cr =
- let c, ctx = fresh_global_or_constr env sigma poly cr in
+let fresh_global_or_constr env sigma cr = match cr with
+| IsGlobRef gr ->
+ let (c, ctx) = UnivGen.fresh_global_instance env gr in
+ let ctx = if Environ.is_polymorphic env gr then Some ctx else None in
+ (EConstr.of_constr c, ctx)
+| IsConstr (c, ctx) -> (c, ctx)
+
+let make_resolves env sigma (eapply, hnf) info ~check ?name cr =
+ let c, ctx = fresh_global_or_constr env sigma cr in
let cty = Retyping.get_type_of env sigma c in
let try_apply f =
try
@@ -914,8 +894,8 @@ let make_resolves env sigma (eapply, hnf) info ~check ~poly ?name cr =
with Failure _ -> None
in
let ents = List.map_filter try_apply
- [make_exact_entry env sigma info ~poly ?name;
- make_apply_entry env sigma hnf info ~poly ?name]
+ [make_exact_entry env sigma info ?name;
+ make_apply_entry env sigma hnf info ?name]
in
if check && List.is_empty ents then
user_err ~hdr:"Hint"
@@ -929,9 +909,9 @@ let make_resolve_hyp env sigma decl =
let hname = NamedDecl.get_id decl in
let c = mkVar hname in
try
- [make_apply_entry env sigma true empty_hint_info ~poly:false
+ [make_apply_entry env sigma true empty_hint_info
~name:(PathHints [GlobRef.VarRef hname])
- (c, NamedDecl.get_type decl, Univ.ContextSet.empty)]
+ (c, NamedDecl.get_type decl, None)]
with
| Failure _ -> []
| e when noncritical e -> anomaly (Pp.str "make_resolve_hyp.")
@@ -977,9 +957,9 @@ let make_mode ref m =
str" arguments while the mode declares " ++ int (Array.length m'))
else m'
-let make_trivial env sigma poly ?(name=PathAny) r =
- let c,ctx = fresh_global_or_constr env sigma poly r in
- let sigma = Evd.merge_context_set univ_flexible sigma ctx in
+let make_trivial env sigma ?(name=PathAny) r =
+ let c,ctx = fresh_global_or_constr env sigma r in
+ let sigma = merge_context_set_opt sigma ctx in
let t = hnf_constr env sigma (Retyping.get_type_of env sigma c) in
let hd = head_constr sigma t in
let ce = mk_clenv_from_env env sigma None (c,t) in
@@ -989,7 +969,7 @@ let make_trivial env sigma poly ?(name=PathAny) r =
name = name;
db = None;
secvars = secvars_of_constr env sigma c;
- code= with_uid (Res_pf_THEN_trivial_fail(c,t,ctx,poly)) })
+ code= with_uid (Res_pf_THEN_trivial_fail(c,t,ctx)) })
@@ -1102,10 +1082,10 @@ let subst_autohint (subst, obj) =
with Bound -> gr')
in
let subst_mps subst c = EConstr.of_constr (subst_mps subst (EConstr.Unsafe.to_constr c)) in
- let subst_aux ((c, t, ctx, poly) as h) =
+ let subst_aux ((c, t, ctx) as h) =
let c' = subst_mps subst c in
let t' = subst_mps subst t in
- if c==c' && t'==t then h else (c', t', ctx, poly)
+ if c==c' && t'==t then h else (c', t', ctx)
in
let subst_hint (k,data as hint) =
let k' = Option.Smart.map subst_key k in
@@ -1214,13 +1194,13 @@ let add_resolves env sigma clist ~local ~superglobal dbnames =
List.iter
(fun dbname ->
let r =
- List.flatten (List.map (fun (pri, poly, hnf, path, gr) ->
+ List.flatten (List.map (fun (pri, hnf, path, gr) ->
make_resolves env sigma (true, hnf)
- pri ~check:true ~poly ~name:path gr) clist)
+ pri ~check:true ~name:path gr) clist)
in
let check (_, hint) = match hint.code.obj with
- | ERes_pf (c, cty, ctx, _) ->
- let sigma' = Evd.merge_context_set univ_flexible sigma ctx in
+ | ERes_pf (c, cty, ctx) ->
+ let sigma' = merge_context_set_opt sigma ctx in
let ce = mk_clenv_from_env env sigma' None (c,cty) in
let miss = clenv_missing ce in
let nmiss = List.length miss in
@@ -1288,7 +1268,7 @@ let add_externs info tacast ~local ~superglobal dbnames =
let add_trivials env sigma l ~local ~superglobal dbnames =
List.iter
(fun dbname ->
- let l = List.map (fun (name, poly, c) -> make_trivial env sigma poly ~name c) l in
+ let l = List.map (fun (name, c) -> make_trivial env sigma ~name c) l in
let hint = make_hint ~local dbname (AddHints { superglobal; hints = l }) in
Lib.add_anonymous_leaf (inAutoHint hint))
dbnames
@@ -1298,8 +1278,8 @@ type hnf = bool
type nonrec hint_info = hint_info
type hints_entry =
- | HintsResolveEntry of (hint_info * bool * hnf * hints_path_atom * hint_term) list
- | HintsImmediateEntry of (hints_path_atom * bool * hint_term) list
+ | HintsResolveEntry of (hint_info * hnf * hints_path_atom * hint_term) list
+ | HintsImmediateEntry of (hints_path_atom * hint_term) list
| HintsCutEntry of hints_path
| HintsUnfoldEntry of evaluable_global_reference list
| HintsTransparencyEntry of evaluable_global_reference hints_transparency_target * bool
@@ -1372,24 +1352,21 @@ let expand_constructor_hints env sigma lems =
match EConstr.kind sigma lem with
| Ind (ind,u) ->
List.init (nconstructors env ind)
- (fun i ->
- let ctx = Univ.ContextSet.diff (Evd.universe_context_set evd)
- (Evd.universe_context_set sigma) in
- not (Univ.ContextSet.is_empty ctx),
- IsConstr (mkConstructU ((ind,i+1),u),ctx))
+ (fun i -> IsGlobRef (GlobRef.ConstructRef ((ind,i+1))))
| _ ->
let (c, ctx) = prepare_hint false env sigma (evd,lem) in
- [not (Univ.ContextSet.is_empty ctx), IsConstr (c, ctx)]) lems
+ let ctx = if Univ.ContextSet.is_empty ctx then None else Some ctx in
+ [IsConstr (c, ctx)]) lems
(* builds a hint database from a constr signature *)
(* typically used with (lid, ltyp) = pf_hyps_types <some goal> *)
let constructor_hints env sigma eapply lems =
let lems = expand_constructor_hints env sigma lems in
- List.map_append (fun (poly, lem) ->
- make_resolves env sigma (eapply, true) empty_hint_info ~check:true ~poly lem) lems
+ List.map_append (fun lem ->
+ make_resolves env sigma (eapply, true) empty_hint_info ~check:true lem) lems
-let make_resolves env sigma info ~check ~poly ?name hint =
- make_resolves env sigma (true, false) info ~check ~poly ?name hint
+let make_resolves env sigma info ~check ?name hint =
+ make_resolves env sigma (true, false) info ~check ?name hint
let make_local_hint_db env sigma ts eapply lems =
let map c = c env sigma in
@@ -1650,7 +1627,8 @@ let connect_hint_clenv h gl =
let sigma = Tacmach.New.project gl in
let evd = Evd.evars_reset_evd ~with_conv_pbs:true ~with_univs:false sigma clenv.evd in
(* Still, we need to update the universes *)
- if h.hint_poly then
+ match h.hint_uctx with
+ | Some ctx ->
(* Refresh the instance of the hint *)
let (subst, ctx) = UnivGen.fresh_universe_context_set_instance ctx in
let emap c = Vars.subst_univs_level_constr subst c in
@@ -1662,21 +1640,19 @@ let connect_hint_clenv h gl =
evd = Evd.map_metas emap evd;
env = Proofview.Goal.env gl;
}
- else
- let evd = Evd.merge_context_set Evd.univ_flexible evd ctx in
+ | None ->
{ clenv with evd = evd ; env = Proofview.Goal.env gl }
let fresh_hint env sigma h =
let { hint_term = c; hint_uctx = ctx } = h in
- if h.hint_poly then
+ match h.hint_uctx with
+ | None -> sigma, c
+ | Some ctx ->
(* Refresh the instance of the hint *)
let (subst, ctx) = UnivGen.fresh_universe_context_set_instance ctx in
let c = Vars.subst_univs_level_constr subst c in
let sigma = Evd.merge_context_set Evd.univ_flexible sigma ctx in
sigma, c
- else
- let sigma = Evd.merge_context_set Evd.univ_flexible sigma ctx in
- sigma, c
let hint_res_pf ?with_evars ?with_classes ?flags h =
Proofview.Goal.enter begin fun gl ->
diff --git a/tactics/hints.mli b/tactics/hints.mli
index e061bd7648..dd22cff10b 100644
--- a/tactics/hints.mli
+++ b/tactics/hints.mli
@@ -42,9 +42,8 @@ type 'a hint_ast =
type hint = private {
hint_term : constr;
hint_type : types;
- hint_uctx : Univ.ContextSet.t;
+ hint_uctx : Univ.ContextSet.t option;
hint_clnv : clausenv;
- hint_poly : bool;
}
type 'a hints_path_atom_gen =
@@ -170,11 +169,11 @@ type hnf = bool
type hint_term =
| IsGlobRef of GlobRef.t
- | IsConstr of constr * Univ.ContextSet.t [@ocaml.deprecated "Declare a hint constant instead"]
+ | IsConstr of constr * Univ.ContextSet.t option [@ocaml.deprecated "Declare a hint constant instead"]
type hints_entry =
- | HintsResolveEntry of (hint_info * bool * hnf * hints_path_atom * hint_term) list
- | HintsImmediateEntry of (hints_path_atom * bool * hint_term) list
+ | HintsResolveEntry of (hint_info * hnf * hints_path_atom * hint_term) list
+ | HintsImmediateEntry of (hints_path_atom * hint_term) list
| HintsCutEntry of hints_path
| HintsUnfoldEntry of evaluable_global_reference list
| HintsTransparencyEntry of evaluable_global_reference hints_transparency_target * bool
@@ -211,7 +210,7 @@ val prepare_hint : bool (* Check no remaining evars *) ->
has missing arguments. *)
val make_resolves :
- env -> evar_map -> hint_info -> check:bool -> poly:bool -> ?name:hints_path_atom ->
+ env -> evar_map -> hint_info -> check:bool -> ?name:hints_path_atom ->
hint_term -> hint_entry list
(** [make_resolve_hyp hname htyp].
diff --git a/tactics/inv.ml b/tactics/inv.ml
index 41899132a6..498a4cfc26 100644
--- a/tactics/inv.ml
+++ b/tactics/inv.ml
@@ -116,7 +116,11 @@ let make_inv_predicate env evd indf realargs id status concl =
(* Now, we can recurse down this list, for each ai,(mkRel k) whether to
push <Ai>(mkRel k)=ai (when Ai is closed).
In any case, we carry along the rest of pairs *)
- let eqdata = Coqlib.build_coq_eq_data () in
+ let eqdata =
+ try Coqlib.build_coq_eq_data ()
+ with UserError _ ->
+ try Coqlib.build_coq_identity_data ()
+ with UserError _ -> user_err (str "No registered equality.") in
let rec build_concl eqns args n = function
| [] -> it_mkProd concl eqns, Array.rev_of_list args
| ai :: restlist ->
@@ -351,8 +355,12 @@ let remember_first_eq id x = if !x == Logic.MoveLast then x := Logic.MoveAfter i
let dest_nf_eq env sigma t = match EConstr.kind sigma t with
| App (r, [| t; x; y |]) ->
let open Reductionops in
- let eq = Coqlib.lib_ref "core.eq.type" in
- if isRefX sigma eq r then
+ let is_global_exists gr c =
+ Coqlib.has_ref gr && isRefX sigma (Coqlib.lib_ref gr) c
+ in
+ let is_eq = is_global_exists "core.eq.type" r in
+ let is_identity = is_global_exists "core.identity.type" r in
+ if is_eq || is_identity then
(t, whd_all env sigma x, whd_all env sigma y)
else user_err Pp.(str "Not an equality.")
| _ ->
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/run.sh b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/run.sh
new file mode 100755
index 0000000000..a5c48b3324
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/run.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+set -x
+set -e
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+"$COQLIB"/tools/make-one-time-file.py time-of-build.log.in time-of-build.log 2>time-of-build.err.log || exit $?
+
+diff -u time-of-build.log.expected time-of-build.log || exit $?
+diff -u time-of-build.err.log.expected time-of-build.err.log || exit $?
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.err.log.expected b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.err.log.expected
new file mode 100644
index 0000000000..f2184407e7
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.err.log.expected
@@ -0,0 +1 @@
+WARNING: Invalid time string: not the right number of dots (.); expected one: '0.240.05'
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.expected b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.expected
new file mode 100644
index 0000000000..0fb57a1406
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.expected
@@ -0,0 +1,398 @@
+ Time | Peak Mem | File Name
+-------------------------------------------------------------
+29m02.87s | 1136588 ko | Total Time / Peak Mem
+-------------------------------------------------------------
+ 2m19.40s | 1007764 ko | PCUICSafeConversion.vo
+ 1m59.92s | 1136588 ko | PCUICSafeReduce.vo
+ 1m34.58s | 849824 ko | PCUICParallelReductionConfluence.vo
+ 1m26.21s | 1038900 ko | erasure_live_test.vo
+ 1m20.36s | 975764 ko | PCUICSR.vo
+ 0m56.51s | 896928 ko | bugkncst.vo
+ 0m56.17s | 1113548 ko | ErasureCorrectness.vo
+ 0m56.09s | 958816 ko | PCUICSafeChecker.vo
+ 0m51.78s | 809012 ko | Typing.vo
+ 0m42.82s | 727688 ko | PCUICTyping.vo
+ 0m39.21s | 1012876 ko | ErasureFunction.vo
+ 0m39.04s | 790088 ko | PCUICEquality.vo
+ 0m38.12s | 657100 ko | PCUICSigmaCalculus.vo
+ 0m34.44s | 742788 ko | PCUICConfluence.vo
+ 0m29.65s | 750296 ko | PCUICConversion.vo
+ 0m28.26s | 779308 ko | PCUICParallelReduction.vo
+ 0m28.24s | 723216 ko | PCUICPosition.vo
+ 0m27.93s | 621392 ko | Substitution.vo
+ 0m26.28s | 597996 ko | PCUICLiftSubst.vo
+ 0m26.11s | 959132 ko | PCUICPrincipality.vo
+ 0m25.86s | 857128 ko | times_bool_fun.vo
+ 0m25.65s | 673140 ko | PCUICSubstitution.vo
+ 0m23.99s | 654592 ko | PCUICClosed.vo
+ 0m23.42s | 685852 ko | PCUICWeakening.vo
+ 0m23.34s | 854428 ko | SafeErasureFunction.vo
+ 0m22.85s | 706592 ko | PCUICSpine.vo
+ 0m21.55s | 603616 ko | Closed.vo
+ 0m19.93s | 581920 ko | tauto.vo
+ 0m19.08s | 683776 ko | PCUICInductives.vo
+ 0m17.91s | 741808 ko | param_original.vo
+ 0m15.64s | 579100 ko | Weakening.vo
+ 0m14.98s | 623196 ko | PCUICNameless.vo
+ 0m13.39s | 794032 ko | ESubstitution.vo
+ 0m13.16s | 641024 ko | TemplateToPCUICCorrectness.vo
+ 0m11.81s | 532016 ko | LiftSubst.vo
+ 0m11.54s | 589944 ko | PCUICWcbvEval.vo
+ 0m10.41s | 621644 ko | PCUICUnivSubstitution.vo
+ 0m10.39s | 661964 ko | PCUICInductiveInversion.vo
+ 0m10.08s | 521520 ko | ELiftSubst.vo
+ 0m09.58s | 684644 ko | PCUICAlpha.vo
+ 0m09.35s | 622488 ko | PCUICInversion.vo
+ 0m08.74s | 629108 ko | PCUICContextConversion.vo
+ 0m08.61s | 892080 ko | param_generous_packed.vo
+ 0m08.05s | 556676 ko | TypingWf.vo
+ 0m07.84s | 608576 ko | PCUICToTemplateCorrectness.vo
+ 0m07.75s | 625664 ko | PCUICArities.vo
+ 0m07.64s | 646256 ko | PCUICElimination.vo
+ 0m07.23s | 614752 ko | times_bool_fun2.vo
+ 0m06.54s | 667924 ko | PCUICSafeLemmata.vo
+ 0m06.33s | 615568 ko | PCUICContexts.vo
+ 0m06.30s | 733700 ko | PCUICSafeRetyping.vo
+ 0m06.16s | 583116 ko | PCUICReduction.vo
+ 0m06.04s | 529900 ko | utils/MCCompare.vo
+ 0m05.85s | 551516 ko | common/uGraph.vo
+ 0m05.66s | 643396 ko | EArities.vo
+ 0m04.94s | 533768 ko | WcbvEval.vo
+ 0m04.90s | 501352 ko | vs.vo
+ 0m04.72s | 498552 ko | utils/wGraph.vo
+ 0m04.53s | 552364 ko | Reflect.vo
+ 0m04.41s | 348856 ko | MiniHoTT.vo
+ 0m04.38s | 571076 ko | PCUICWeakeningEnv.vo
+ 0m04.23s | 531272 ko | Universes.vo
+ 0m04.11s | 543956 ko | PCUICReflect.vo
+ 0m04.00s | 555748 ko | Checker.vo
+ 0m03.99s | 624912 ko | PCUICValidity.vo
+ 0m03.99s | 806128 ko | SafeTemplateErasure.vo
+ 0m03.85s | 520080 ko | EWcbvEval.vo
+ 0m03.42s | 350716 ko | MiniHoTT_paths.vo
+ 0m03.39s | 741428 ko | Prelim.vo
+ 0m03.34s | 586388 ko | PCUICGeneration.vo
+ 0m03.33s | 533884 ko | PCUICUnivSubst.vo
+ 0m03.11s | 561316 ko | Extraction.vo
+ 0m03.11s | 490756 ko | UnivSubst.vo
+ 0m02.89s | 726228 ko | safechecker_test.vo
+ 0m02.80s | 512292 ko | WeakeningEnv.vo
+ 0m02.78s | 543424 ko | PCUICAstUtils.vo
+ 0m02.78s | 465984 ko | utils/All_Forall.vo
+ 0m02.67s | 729072 ko | EInversion.vo
+ 0m02.42s | 703592 ko | SafeTemplateChecker.vo
+ 0m02.27s | 558304 ko | TypingTests.vo
+ 0m02.12s | 630488 ko | PCUICSN.vo
+ 0m01.93s | 556444 ko | param_binary.vo
+ 0m01.85s | 561876 ko | PCUICCumulativity.vo
+ 0m01.82s | 554420 ko | translation_utils.vo
+ 0m01.77s | 491968 ko | EnvironmentTyping.vo
+ 0m01.75s | 598288 ko | PCUICCtxShape.vo
+ 0m01.69s | 514692 ko | Generation.vo
+ 0m01.62s | 512080 ko | bug5.vo
+ 0m01.58s | 589768 ko | PCUICRetyping.vo
+ 0m01.57s | 617808 ko | Extract.vo
+ 0m01.56s | 527740 ko | demo.vo
+ 0m01.55s | 562424 ko | PCUICCSubst.vo
+ 0m01.49s | 553352 ko | param_cheap_packed.vo
+ 0m01.47s | 527440 ko | PCUICUtils.vo
+ 0m01.47s | 452340 ko | utils/MCList.vo
+ 0m01.44s | 503484 ko | PCUICSize.vo
+ 0m01.42s | 619396 ko | EAll.vo
+ 0m01.37s | 551200 ko | PCUICNormal.vo
+ 0m01.35s | 526276 ko | modules_sections.vo
+ 0m01.34s | 549492 ko | standard_model.vo
+ 0m01.30s | 551364 ko | PCUICPretty.vo
+ 0m01.29s | 545736 ko | All.vo
+ 0m01.21s | 524028 ko | proj.vo
+ 0m01.21s | 513888 ko | test/test.vo
+ 0m01.18s | 486324 ko | Induction.vo
+ 0m01.13s | 524144 ko | add_constructor.vo
+ 0m01.11s | 549776 ko | PCUICChecker.vo
+ 0m01.10s | 487520 ko | EAstUtils.vo
+ 0m01.10s | 484172 ko | Environment.vo
+ 0m01.10s | 543584 ko | erasure_test.vo
+ 0m01.09s | 525128 ko | order_rec.vo
+ 0m01.05s | 512080 ko | ECSubst.vo
+ 0m01.05s | 489932 ko | WfInv.vo
+ 0m01.05s | 522968 ko | issue28.vo
+ 0m01.04s | 527408 ko | PCUICToTemplate.vo
+ 0m01.03s | 510284 ko | bug1.vo
+ 0m01.03s | 522996 ko | run_in_tactic.vo
+ 0m01.03s | 522248 ko | unfold.vo
+ 0m01.02s | 522688 ko | issue27.vo
+ 0m01.01s | 524932 ko | tmVariable.vo
+ 0m01.00s | 485664 ko | AstUtils.vo
+ 0m00.99s | 522992 ko | univ.vo
+ 0m00.98s | 522552 ko | tmInferInstance.vo
+ 0m00.96s | 546928 ko | PCUICMetaTheory.vo
+ 0m00.94s | 510368 ko | castprop.vo
+ 0m00.94s | 500016 ko | opaque.vo
+ 0m00.92s | 522724 ko | tmExistingInstance.vo
+ 0m00.91s | 513348 ko | MyPlugin.vo
+ 0m00.90s | 524140 ko | Retyping.vo
+ 0m00.90s | 500080 ko | letin.vo
+ 0m00.89s | 481312 ko | PCUICInduction.vo
+ 0m00.89s | 500252 ko | bug7.vo
+ 0m00.89s | 500068 ko | mutind.vo
+ 0m00.88s | 500120 ko | case.vo
+ 0m00.88s | 501748 ko | extractable.vo
+ 0m00.87s | 486460 ko | Pretty.vo
+ 0m00.86s | 500064 ko | sigma.vo
+ 0m00.85s | 500408 ko | bug6.vo
+ 0m00.84s | 497360 ko | Normal.vo
+ 0m00.84s | 500436 ko | bug8.vo
+ 0m00.82s | 498504 ko | Constants.vo
+ 0m00.81s | 500380 ko | bug2.vo
+ 0m00.81s | 500192 ko | cofix.vo
+ 0m00.80s | 502088 ko | hnf_ctor.vo
+ 0m00.79s | 479940 ko | Ast.vo
+ 0m00.79s | 500100 ko | evars.vo
+ 0m00.77s | 488076 ko | EPretty.vo
+ 0m00.75s | 450728 ko | BasicAst.vo
+ 0m00.75s | 477372 ko | PCUICAst.vo
+ 0m00.73s | 487644 ko | ETyping.vo
+ 0m00.73s | 481988 ko | TemplateMonad/Core.vo
+ 0m00.72s | 477800 ko | EAst.vo
+ 0m00.71s | 479012 ko | EInduction.vo
+ 0m00.70s | 485084 ko | EWndEval.vo
+ 0m00.70s | 481156 ko | TemplateMonad/Extractable.vo
+ 0m00.69s | 482472 ko | TemplateToPCUIC.vo
+ 0m00.60s | 433064 ko | PCUICCheckerCompleteness.vo
+ 0m00.60s | 437492 ko | TemplateMonad/Common.vo
+ 0m00.56s | 440168 ko | utils/MCOption.vo
+ 0m00.54s | 420452 ko | TemplateMonad.vo
+ 0m00.52s | 385340 ko | utils.vo
+ 0m00.48s | 404556 ko | utils/MCArith.vo
+ 0m00.42s | 339136 ko | utils/LibHypsNaming.vo
+ 0m00.41s | 39160 ko | gen-src/universes0.cmx
+ 0m00.33s | 45284 ko | pCUICSafeChecker.cmx
+ 0m00.30s | 270156 ko | utils/MCString.vo
+ 0m00.29s | 238116 ko | Loader.vo
+ 0m00.27s | 43056 ko | pCUICSafeConversion.cmx
+0m00.240s | N/A | denoter.cmx
+ 0m00.19s | 34468 ko | gen-src/quoter.cmx
+ 0m00.17s | 33044 ko | constr_quoter.cmx
+ 0m00.15s | 25208 ko | gen-src/binPos.cmx
+ 0m00.15s | 38520 ko | run_template_monad.cmx
+ 0m00.14s | 31740 ko | constr_denoter.cmx
+ 0m00.14s | 25372 ko | gen-src/all_Forall.cmx
+ 0m00.14s | 149456 ko | monad_utils.vo
+ 0m00.14s | 31636 ko | wGraph.cmx
+ 0m00.13s | 23892 ko | gen-src/binPosDef.cmx
+ 0m00.13s | 20232 ko | metacoq_erasure_plugin.cmxs
+ 0m00.12s | 22784 ko | gen-src/binInt.cmx
+ 0m00.11s | 31208 ko | erasureFunction.cmx
+ 0m00.11s | 31632 ko | gen-src/metacoq_template_plugin.cmx
+ 0m00.11s | 20224 ko | metacoq_safechecker_plugin.cmxs
+ 0m00.11s | 30984 ko | uGraph0.cmx
+ 0m00.10s | 28644 ko | eAst.cmx
+ 0m00.10s | 33140 ko | g_template_coq.cmx
+ 0m00.10s | 27364 ko | gen-src/ast_quoter.cmx
+ 0m00.10s | 20796 ko | gen-src/binNat.cmx
+ 0m00.10s | 18416 ko | gen-src/metacoq_template_plugin.cmxs
+ 0m00.10s | 27228 ko | gen-src/myPlugin.cmx
+ 0m00.10s | 26404 ko | gen-src/quoter.cmo
+ 0m00.09s | 26992 ko | ePretty.cmx
+ 0m00.09s | 35368 ko | g_metacoq_safechecker.cmx
+ 0m00.09s | 24572 ko | gen-src/ast0.cmx
+ 0m00.09s | 20020 ko | gen-src/hexadecimal.cmx
+ 0m00.09s | 30504 ko | gen-src/run_extractable.cmx
+ 0m00.09s | 29148 ko | pCUICPretty.cmx
+ 0m00.09s | 29852 ko | safeErasureFunction.cmx
+ 0m00.09s | 88348 ko | utils/MCProd.vo
+ 0m00.08s | 27288 ko | gen-src/ast_denoter.cmx
+ 0m00.08s | 24324 ko | gen-src/denoter.cmx
+ 0m00.08s | 21352 ko | gen-src/mSetList.cmx
+ 0m00.08s | 22020 ko | gen-src/pretty.cmx
+ 0m00.08s | 32668 ko | metacoq_erasure_plugin.cmx
+ 0m00.08s | 26392 ko | pCUICAstUtils.cmx
+ 0m00.08s | 27752 ko | pCUICTyping.cmx
+ 0m00.07s | 19912 ko | gen-src/peanoNat.cmx
+ 0m00.07s | 27504 ko | gen-src/plugin_core.cmx
+ 0m00.07s | 27792 ko | pCUICSafeReduce.cmx
+ 0m00.07s | 30244 ko | safeTemplateErasure.cmx
+ 0m00.06s | 24684 ko | eTyping.cmx
+ 0m00.06s | 22652 ko | erasureFunction.cmi
+ 0m00.06s | 27844 ko | g_demo_plugin.cmx
+ 0m00.06s | 30052 ko | g_metacoq_erasure.cmx
+ 0m00.06s | 25216 ko | mSetWeakList.cmx
+ 0m00.06s | 30436 ko | metacoq_safechecker_plugin.cmx
+ 0m00.06s | 26256 ko | pCUICEquality.cmx
+ 0m00.06s | 26244 ko | pCUICLiftSubst.cmx
+ 0m00.06s | 26048 ko | pCUICPosition.cmx
+ 0m00.06s | 23232 ko | pCUICSafeConversion.cmi
+ 0m00.06s | 27380 ko | pCUICSafeRetyping.cmx
+ 0m00.06s | 25408 ko | safeTemplateChecker.cmx
+ 0m00.06s | 26384 ko | templateToPCUIC.cmx
+ 0m00.06s | 24780 ko | uGraph0.cmi
+ 0m00.05s | 64048 ko | Lens.vo
+ 0m00.05s | 24800 ko | eAstUtils.cmx
+ 0m00.05s | 25192 ko | eLiftSubst.cmx
+ 0m00.05s | 22440 ko | gen-src/ast_quoter.cmo
+ 0m00.05s | 20324 ko | gen-src/mSetInterface.cmx
+ 0m00.05s | 26032 ko | pCUICAst.cmx
+ 0m00.05s | 25140 ko | pCUICChecker.cmx
+ 0m00.05s | 24336 ko | pCUICReflect.cmx
+ 0m00.05s | 24300 ko | pCUICSafeChecker.cmi
+ 0m00.05s | 21556 ko | pCUICSafeReduce.cmi
+ 0m00.05s | 25180 ko | pCUICUnivSubst.cmx
+ 0m00.05s | 21660 ko | safeErasureFunction.cmi
+ 0m00.05s | 23148 ko | safeTemplateErasure.cmi
+ 0m00.05s | 21328 ko | templateToPCUIC.cmi
+ 0m00.05s | 16040 ko | template_coq.cmxs
+ 0m00.05s | 24076 ko | typing0.cmx
+ 0m00.05s | 63096 ko | utils/MCPrelude.vo
+ 0m00.05s | 68156 ko | utils/MCRelations.vo
+ 0m00.05s | 22824 ko | wGraph.cmi
+ 0m00.04s | 62716 ko | ExtractableLoader.vo
+ 0m00.04s | 61716 ko | config.vo
+ 0m00.04s | 22020 ko | constr_reification.cmx
+ 0m00.04s | 21964 ko | demo_plugin.cmx
+ 0m00.04s | 20540 ko | ePretty.cmi
+ 0m00.04s | 23032 ko | extract.cmx
+ 0m00.04s | 19608 ko | gen-src/astUtils.cmx
+ 0m00.04s | 18780 ko | gen-src/extractable.cmx
+ 0m00.04s | 22124 ko | gen-src/lens.cmx
+ 0m00.04s | 19008 ko | gen-src/liftSubst.cmx
+ 0m00.04s | 19600 ko | gen-src/mSetProperties.cmx
+ 0m00.04s | 20208 ko | gen-src/myPlugin.cmi
+ 0m00.04s | 18464 ko | gen-src/nat0.cmx
+ 0m00.04s | 22136 ko | gen-src/tm_util.cmx
+ 0m00.04s | 18504 ko | gen-src/universes0.cmi
+ 0m00.04s | 20108 ko | mSetWeakList.cmi
+ 0m00.04s | 22452 ko | monad_utils.cmx
+ 0m00.04s | 21244 ko | pCUICAst.cmi
+ 0m00.04s | 20412 ko | pCUICAstUtils.cmi
+ 0m00.04s | 21236 ko | pCUICChecker.cmi
+ 0m00.04s | 20560 ko | pCUICPretty.cmi
+ 0m00.04s | 21400 ko | pCUICTyping.cmi
+ 0m00.04s | 20348 ko | safeTemplateChecker.cmi
+ 0m00.04s | 19228 ko | utils.cmi
+ 0m00.04s | 22212 ko | utils.cmx
+ 0m00.04s | 62924 ko | utils/MCEquality.vo
+ 0m00.04s | 61384 ko | utils/MCSquash.vo
+ 0m00.03s | 19340 ko | classes0.cmi
+ 0m00.03s | 20908 ko | eAst.cmi
+ 0m00.03s | 19496 ko | eAstUtils.cmi
+ 0m00.03s | 20252 ko | eTyping.cmi
+ 0m00.03s | 19268 ko | eqDecInstances.cmi
+ 0m00.03s | 22196 ko | eqDecInstances.cmx
+ 0m00.03s | 19396 ko | eqdepFacts.cmi
+ 0m00.03s | 22072 ko | eqdepFacts.cmx
+ 0m00.03s | 21060 ko | extract.cmi
+ 0m00.03s | 18744 ko | gen-src/basicAst.cmx
+ 0m00.03s | 17936 ko | gen-src/decimal.cmx
+ 0m00.03s | 19716 ko | gen-src/environment.cmx
+ 0m00.03s | 19172 ko | gen-src/lens.cmi
+ 0m00.03s | 17796 ko | gen-src/list0.cmx
+ 0m00.03s | 18548 ko | gen-src/univSubst0.cmx
+ 0m00.03s | 19324 ko | init.cmi
+ 0m00.03s | 22188 ko | init.cmx
+ 0m00.03s | 19272 ko | monad_utils.cmi
+ 0m00.03s | 20372 ko | pCUICEquality.cmi
+ 0m00.03s | 20444 ko | pCUICLiftSubst.cmi
+ 0m00.03s | 22044 ko | pCUICNormal.cmx
+ 0m00.03s | 20488 ko | pCUICPosition.cmi
+ 0m00.03s | 20240 ko | pCUICReflect.cmi
+ 0m00.03s | 19348 ko | pCUICSafeLemmata.cmi
+ 0m00.03s | 21604 ko | pCUICSafeRetyping.cmi
+ 0m00.03s | 20308 ko | pCUICUnivSubst.cmi
+ 0m00.03s | 21812 ko | tm_util.cmx
+ 0m00.03s | 20300 ko | typing0.cmi
+ 0m00.02s | 21960 ko | classes0.cmx
+ 0m00.02s | 19300 ko | eLiftSubst.cmi
+ 0m00.02s | 16900 ko | gen-src/ascii.cmx
+ 0m00.02s | 16836 ko | gen-src/cRelationClasses.cmx
+ 0m00.02s | 16420 ko | gen-src/common0.cmx
+ 0m00.02s | 16472 ko | gen-src/mCString.cmx
+ 0m00.02s | 15244 ko | gen-src/mSetInterface.cmi
+ 0m00.02s | 15212 ko | gen-src/mSetProperties.cmi
+ 0m00.02s | 17196 ko | gen-src/plugin_core.cmi
+ 0m00.02s | 16332 ko | gen-src/specif.cmx
+ 0m00.02s | 16504 ko | gen-src/string0.cmx
+ 0m00.02s | 18448 ko | gen-src/tm_util.cmo
+ 0m00.02s | 19224 ko | pCUICCumulativity.cmi
+ 0m00.02s | 21940 ko | pCUICCumulativity.cmx
+ 0m00.02s | 19304 ko | pCUICNormal.cmi
+ 0m00.02s | 22084 ko | pCUICSafeLemmata.cmx
+ 0m00.02s | 19220 ko | ssrbool.cmi
+ 0m00.02s | 21912 ko | ssrbool.cmx
+ 0m00.02s | 19956 ko | template_coq.cmx
+ 0m00.01s | 14256 ko | demo_plugin.cmxs
+ 0m00.01s | 14992 ko | gen-src/all_Forall.cmi
+ 0m00.01s | 15204 ko | gen-src/ast0.cmi
+ 0m00.01s | 14404 ko | gen-src/basicAst.cmi
+ 0m00.01s | 13564 ko | gen-src/binInt.cmi
+ 0m00.01s | 14264 ko | gen-src/binPos.cmi
+ 0m00.01s | 15772 ko | gen-src/bool.cmx
+ 0m00.01s | 13388 ko | gen-src/cRelationClasses.cmi
+ 0m00.01s | 15536 ko | gen-src/compare_dec.cmx
+ 0m00.01s | 16200 ko | gen-src/datatypes.cmx
+ 0m00.01s | 14988 ko | gen-src/environment.cmi
+ 0m00.01s | 15840 ko | gen-src/equalities.cmx
+ 0m00.01s | 13404 ko | gen-src/list0.cmi
+ 0m00.01s | 15672 ko | gen-src/mCCompare.cmx
+ 0m00.01s | 16712 ko | gen-src/mCList.cmx
+ 0m00.01s | 15708 ko | gen-src/mCProd.cmx
+ 0m00.01s | 13748 ko | gen-src/mSetFacts.cmi
+ 0m00.01s | 17012 ko | gen-src/mSetFacts.cmx
+ 0m00.01s | 15760 ko | gen-src/mSetList.cmi
+ 0m00.01s | 14056 ko | gen-src/metacoq_template_plugin.cmxa
+ 0m00.01s | 15860 ko | gen-src/orderedType0.cmx
+ 0m00.01s | 13748 ko | gen-src/orders.cmi
+ 0m00.01s | 16768 ko | gen-src/orders.cmx
+ 0m00.01s | 16032 ko | gen-src/ordersFacts.cmx
+ 0m00.01s | 15844 ko | gen-src/ordersTac.cmx
+ 0m00.01s | 11760 ko | gen-src/reification.cmo
+ 0m00.01s | 14740 ko | gen-src/reification.cmx
+ 0m00.01s | 13824 ko | gen-src/run_extractable.cmi
+ 0m00.01s | 13460 ko | i
+ 0m00.01s | 17068 ko | plugin_core.cmi
+ 0m00.01s | 14796 ko | reification.cmx
+ 0m00.00s | 13200 ko | demo_plugin.cmxa
+ 0m00.00s | 12228 ko | gen-src/ascii.cmi
+ 0m00.00s | 14040 ko | gen-src/astUtils.cmi
+ 0m00.00s | 11244 ko | gen-src/basics.cmi
+ 0m00.00s | 13444 ko | gen-src/binNat.cmi
+ 0m00.00s | 11340 ko | gen-src/binNums.cmi
+ 0m00.00s | 13536 ko | gen-src/binPosDef.cmi
+ 0m00.00s | 11744 ko | gen-src/bool.cmi
+ 0m00.00s | 13492 ko | gen-src/common0.cmi
+ 0m00.00s | 11720 ko | gen-src/compare_dec.cmi
+ 0m00.00s | 11112 ko | gen-src/config0.cmi
+ 0m00.00s | 14648 ko | gen-src/config0.cmx
+ 0m00.00s | 12948 ko | gen-src/datatypes.cmi
+ 0m00.00s | 12404 ko | gen-src/decimal.cmi
+ 0m00.00s | 13240 ko | gen-src/equalities.cmi
+ 0m00.00s | 13580 ko | gen-src/extractable.cmi
+ 0m00.00s | 13064 ko | gen-src/hexadecimal.cmi
+ 0m00.00s | 13680 ko | gen-src/liftSubst.cmi
+ 0m00.00s | 11524 ko | gen-src/logic0.cmi
+ 0m00.00s | 15516 ko | gen-src/logic0.cmx
+ 0m00.00s | 11644 ko | gen-src/mCCompare.cmi
+ 0m00.00s | 13612 ko | gen-src/mCList.cmi
+ 0m00.00s | 12200 ko | gen-src/mCOption.cmi
+ 0m00.00s | 11228 ko | gen-src/mCPrelude.cmi
+ 0m00.00s | 14368 ko | gen-src/mCPrelude.cmx
+ 0m00.00s | 11620 ko | gen-src/mCProd.cmi
+ 0m00.00s | 11080 ko | gen-src/mCRelations.cmi
+ 0m00.00s | 14184 ko | gen-src/mCRelations.cmx
+ 0m00.00s | 11712 ko | gen-src/mCString.cmi
+ 0m00.00s | 13776 ko | gen-src/mSetDecide.cmi
+ 0m00.00s | 11900 ko | gen-src/numeral.cmi
+ 0m00.00s | 15820 ko | gen-src/numeral.cmx
+ 0m00.00s | 12108 ko | gen-src/orderedType0.cmi
+ 0m00.00s | 13444 ko | gen-src/ordersFacts.cmi
+ 0m00.00s | 11760 ko | gen-src/ordersLists.cmi
+ 0m00.00s | 15096 ko | gen-src/ordersLists.cmx
+ 0m00.00s | 12464 ko | gen-src/ordersTac.cmi
+ 0m00.00s | 15060 ko | gen-src/pretty.cmi
+ 0m00.00s | 13160 ko | gen-src/specif.cmi
+ 0m00.00s | 12236 ko | gen-src/string0.cmi
+ 0m00.00s | 14128 ko | gen-src/univSubst0.cmi
+ 0m00.00s | 13520 ko | metacoq_erasure_plugin.cmxa
+ 0m00.00s | 13624 ko | metacoq_safechecker_plugin.cmxa
+ 0m00.00s | 13148 ko | run_template_monad.cmi
+ 0m00.00s | 13520 ko | template_coq.cmxa
+ 0m00.00s | 15004 ko | template_monad.cmi
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.in b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.in
new file mode 100644
index 0000000000..47d0e09e1a
--- /dev/null
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/007-no-output-sync/time-of-build.log.in
@@ -0,0 +1,5629 @@
+Running with gitlab-runner 11.9.2 (fa86510e)
+ on roquableu curNbQZR
+Using Docker executor with image registry.gitlab.com/coq/coq:bionic_coq-V2020-08-28-V92 ...
+Pulling docker image registry.gitlab.com/coq/coq:bionic_coq-V2020-08-28-V92 ...
+Using docker image sha256:f232f9802a06400390b5d6afa5fd280d73c89890309a27e840013ef2e9809c91 for registry.gitlab.com/coq/coq:bionic_coq-V2020-08-28-V92 ...
+section_start:1598963621:prepare_script Running on runner-curNbQZR-project-6138686-concurrent-1 via roquableu...
+section_end:1598963624:prepare_script section_start:1598963624:get_sources Reinitialized existing Git repository in /builds/coq/coq/.git/
+Removing _build_ci/
+Removing _install_ci/
+Removing config/Makefile
+Removing config/coq_config.ml
+Removing config/coq_config.py
+Removing test-suite/misc/universes/all_stdlib.v
+Removing time-of-build.log
+Removing tools/TimeFileMaker.pyc
+Clean repository
+Fetching changes with git depth set to 10...
+fatal: remote origin already exists.
+Auto packing the repository in background for optimum performance.
+See "git help gc" for manual housekeeping.
+Checking out fdbbc0cb as pr-12653...
+
+Skipping Git submodules setup
+section_end:1598963638:get_sources section_start:1598963638:restore_cache section_end:1598963641:restore_cache section_start:1598963641:download_artifacts Downloading artifacts for build:base (713526714)...
+Downloading artifacts from coordinator... ok  id=713526714 responseStatus=200 OK token=CwEA_cmf
+Downloading artifacts for plugin:ci-equations (713526793)...
+Downloading artifacts from coordinator... ok  id=713526793 responseStatus=200 OK token=hxEjzCme
+section_end:1598963691:download_artifacts section_start:1598963691:build_script $ cat /proc/{cpu,mem}info || true
+processor : 0
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.059
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 0
+cpu cores : 6
+apicid : 0
+initial apicid : 0
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 1
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.128
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 1
+cpu cores : 6
+apicid : 2
+initial apicid : 2
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 2
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.132
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 2
+cpu cores : 6
+apicid : 4
+initial apicid : 4
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 3
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.131
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 3
+cpu cores : 6
+apicid : 6
+initial apicid : 6
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 4
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.127
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 4
+cpu cores : 6
+apicid : 8
+initial apicid : 8
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 5
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.186
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 5
+cpu cores : 6
+apicid : 10
+initial apicid : 10
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 6
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.248
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 0
+cpu cores : 6
+apicid : 32
+initial apicid : 32
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 7
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.131
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 1
+cpu cores : 6
+apicid : 34
+initial apicid : 34
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 8
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.137
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 2
+cpu cores : 6
+apicid : 36
+initial apicid : 36
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 9
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.147
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 3
+cpu cores : 6
+apicid : 38
+initial apicid : 38
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 10
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.129
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 4
+cpu cores : 6
+apicid : 40
+initial apicid : 40
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 11
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.131
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 5
+cpu cores : 6
+apicid : 42
+initial apicid : 42
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 12
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.062
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 0
+cpu cores : 6
+apicid : 1
+initial apicid : 1
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 13
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.084
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 1
+cpu cores : 6
+apicid : 3
+initial apicid : 3
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 14
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3194.423
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 2
+cpu cores : 6
+apicid : 5
+initial apicid : 5
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 15
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.132
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 3
+cpu cores : 6
+apicid : 7
+initial apicid : 7
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 16
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.170
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 4
+cpu cores : 6
+apicid : 9
+initial apicid : 9
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 17
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3191.946
+cache size : 15360 KB
+physical id : 0
+siblings : 12
+core id : 5
+cpu cores : 6
+apicid : 11
+initial apicid : 11
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5785.73
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 18
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.131
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 0
+cpu cores : 6
+apicid : 33
+initial apicid : 33
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 19
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.134
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 1
+cpu cores : 6
+apicid : 35
+initial apicid : 35
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 20
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.123
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 2
+cpu cores : 6
+apicid : 37
+initial apicid : 37
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 21
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.131
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 3
+cpu cores : 6
+apicid : 39
+initial apicid : 39
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 22
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3192.149
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 4
+cpu cores : 6
+apicid : 41
+initial apicid : 41
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 23
+vendor_id : GenuineIntel
+cpu family : 6
+model : 45
+model name : Intel(R) Xeon(R) CPU E5-2667 0 @ 2.90GHz
+stepping : 7
+microcode : 0x718
+cpu MHz : 3195.640
+cache size : 15360 KB
+physical id : 1
+siblings : 12
+core id : 5
+cpu cores : 6
+apicid : 43
+initial apicid : 43
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts md_clear flush_l1d
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
+bogomips : 5792.29
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+MemTotal: 65879492 kB
+MemFree: 10395980 kB
+MemAvailable: 59790724 kB
+Buffers: 12390688 kB
+Cached: 18542568 kB
+SwapCached: 37680 kB
+Active: 20395936 kB
+Inactive: 14205172 kB
+Active(anon): 3459064 kB
+Inactive(anon): 165896 kB
+Active(file): 16936872 kB
+Inactive(file): 14039276 kB
+Unevictable: 48 kB
+Mlocked: 48 kB
+SwapTotal: 4194300 kB
+SwapFree: 3334988 kB
+Dirty: 13300 kB
+Writeback: 0 kB
+AnonPages: 3648112 kB
+Mapped: 555304 kB
+Shmem: 784 kB
+KReclaimable: 19083648 kB
+Slab: 20438420 kB
+SReclaimable: 19083648 kB
+SUnreclaim: 1354772 kB
+KernelStack: 16012 kB
+PageTables: 33208 kB
+NFS_Unstable: 0 kB
+Bounce: 0 kB
+WritebackTmp: 0 kB
+CommitLimit: 37134044 kB
+Committed_AS: 10963564 kB
+VmallocTotal: 34359738367 kB
+VmallocUsed: 161980 kB
+VmallocChunk: 0 kB
+Percpu: 137728 kB
+HardwareCorrupted: 0 kB
+AnonHugePages: 0 kB
+ShmemHugePages: 0 kB
+ShmemPmdMapped: 0 kB
+FileHugePages: 0 kB
+FilePmdMapped: 0 kB
+CmaTotal: 0 kB
+CmaFree: 0 kB
+HugePages_Total: 0
+HugePages_Free: 0
+HugePages_Rsvd: 0
+HugePages_Surp: 0
+Hugepagesize: 2048 kB
+Hugetlb: 0 kB
+DirectMap4k: 10120980 kB
+DirectMap2M: 56909824 kB
+DirectMap1G: 0 kB
+$ ls -a
+.
+..
+.git
+.gitattributes
+.github
+.gitignore
+.gitlab-ci.yml
+.mailmap
+.merlin.in
+.ocamlformat
+.ocamlinit
+CODE_OF_CONDUCT.md
+CONTRIBUTING.md
+CREDITS
+INSTALL.md
+LICENSE
+META.coq.in
+Makefile
+Makefile.build
+Makefile.checker
+Makefile.ci
+Makefile.common
+Makefile.dev
+Makefile.doc
+Makefile.dune
+Makefile.ide
+Makefile.install
+Makefile.make
+Makefile.vofiles
+README.md
+_build_ci
+_install_ci
+azure-pipelines.yml
+checker
+clib
+config
+configure
+configure.ml
+coq-doc.opam
+coq.opam
+coq.opam.docker
+coqide-server.opam
+coqide.opam
+coqpp
+default.nix
+dev
+doc
+dune
+dune-project
+engine
+gramlib
+ide
+install.sh
+interp
+kernel
+lib
+library
+man
+parsing
+plugins
+pretyping
+printing
+proofs
+shell.nix
+stm
+tactics
+test-suite
+theories
+tools
+topbin
+toplevel
+user-contrib
+vernac
+$ printenv -0 | sort -z | tr '\0' '\n'
+BASE_ONLY_OPAM=elpi.1.11.0
+BASE_OPAM=num zarith.1.9.1 ocamlfind.1.8.1 ounit2.2.2.3 odoc.1.5.0
+BASE_OPAM_EDGE=dune.2.5.1 dune-release.1.3.3 ocamlformat.0.14.2
+CACHEKEY=bionic_coq-V2020-08-28-V92
+CI=true
+CI_API_V4_URL=https://gitlab.com/api/v4
+CI_BUILD_BEFORE_SHA=727d9e5de2b64fd98bc085089b92891bcbad095f
+CI_BUILD_ID=713656562
+CI_BUILD_NAME=plugin:ci-metacoq
+CI_BUILD_REF=fdbbc0cbc3906704e6e4e92d5bf2f6ffe8476357
+CI_BUILD_REF_NAME=pr-12653
+CI_BUILD_REF_SLUG=pr-12653
+CI_BUILD_STAGE=stage-3
+CI_BUILD_TOKEN=[MASKED]
+CI_COMMIT_BEFORE_SHA=727d9e5de2b64fd98bc085089b92891bcbad095f
+CI_COMMIT_BRANCH=pr-12653
+CI_COMMIT_DESCRIPTION=
+Bot merge 0d30f79268fea18ef99c040a859956f61c3d978a and 7c1779e124fe4bf2733af12488b18bee92840127
+CI_COMMIT_MESSAGE=[CI merge] PR #12653: Syntax for specifying cumulative inductives
+
+Bot merge 0d30f79268fea18ef99c040a859956f61c3d978a and 7c1779e124fe4bf2733af12488b18bee92840127
+
+CI_COMMIT_REF_NAME=pr-12653
+CI_COMMIT_REF_PROTECTED=false
+CI_COMMIT_REF_SLUG=pr-12653
+CI_COMMIT_SHA=fdbbc0cbc3906704e6e4e92d5bf2f6ffe8476357
+CI_COMMIT_SHORT_SHA=fdbbc0cb
+CI_COMMIT_TITLE=[CI merge] PR #12653: Syntax for specifying cumulative inductives
+CI_CONFIG_PATH=.gitlab-ci.yml
+CI_DEFAULT_BRANCH=master
+CI_DISPOSABLE_ENVIRONMENT=true
+CI_JOB_ID=713656562
+CI_JOB_JWT=[MASKED]
+CI_JOB_NAME=plugin:ci-metacoq
+CI_JOB_STAGE=stage-3
+CI_JOB_TOKEN=[MASKED]
+CI_JOB_URL=https://gitlab.com/coq/coq/-/jobs/713656562
+CI_NODE_TOTAL=1
+CI_OPAM=menhir.20190626 ocamlgraph.1.8.8
+CI_PAGES_DOMAIN=gitlab.io
+CI_PAGES_URL=https://coq.gitlab.io/coq
+CI_PIPELINE_ID=184301476
+CI_PIPELINE_IID=17942
+CI_PIPELINE_SOURCE=push
+CI_PIPELINE_URL=https://gitlab.com/coq/coq/-/pipelines/184301476
+CI_PROJECT_DIR=/builds/coq/coq
+CI_PROJECT_ID=6138686
+CI_PROJECT_NAME=coq
+CI_PROJECT_NAMESPACE=coq
+CI_PROJECT_PATH=coq/coq
+CI_PROJECT_PATH_SLUG=coq-coq
+CI_PROJECT_REPOSITORY_LANGUAGES=ocaml,coq,shell,tex,c
+CI_PROJECT_ROOT_NAMESPACE=coq
+CI_PROJECT_TITLE=coq
+CI_PROJECT_URL=https://gitlab.com/coq/coq
+CI_PROJECT_VISIBILITY=public
+CI_REGISTRY=registry.gitlab.com
+CI_REGISTRY_IMAGE=registry.gitlab.com/coq/coq
+CI_REGISTRY_PASSWORD=[MASKED]
+CI_REGISTRY_USER=gitlab-ci-token
+CI_REPOSITORY_URL=https://gitlab-ci-token:[MASKED]@gitlab.com/coq/coq.git
+CI_RUNNER_DESCRIPTION=roquableu
+CI_RUNNER_EXECUTABLE_ARCH=linux/amd64
+CI_RUNNER_ID=816543
+CI_RUNNER_REVISION=fa86510e
+CI_RUNNER_TAGS=
+CI_RUNNER_VERSION=11.9.2
+CI_SERVER=yes
+CI_SERVER_HOST=gitlab.com
+CI_SERVER_NAME=GitLab
+CI_SERVER_PORT=443
+CI_SERVER_PROTOCOL=https
+CI_SERVER_REVISION=e937f778b66
+CI_SERVER_TLS_CA_FILE=/builds/coq/coq.tmp/CI_SERVER_TLS_CA_FILE
+CI_SERVER_URL=https://gitlab.com
+CI_SERVER_VERSION=13.4.0-pre
+CI_SERVER_VERSION_MAJOR=13
+CI_SERVER_VERSION_MINOR=4
+CI_SERVER_VERSION_PATCH=0
+COMPILER=4.05.0
+COMPILER_EDGE=4.10.0
+COQIDE_OPAM=cairo2.0.6.1 lablgtk3-sourceview3.3.1.0
+DEBIAN_FRONTEND=noninteractive
+FF_K8S_USE_ENTRYPOINT_OVER_COMMAND=true
+FULL_CI=true
+GITLAB_CI=true
+GITLAB_FEATURES=audit_events,blocked_issues,burndown_charts,code_owners,code_review_analytics,contribution_analytics,description_diffs,elastic_search,group_activity_analytics,group_bulk_edit,group_burndown_charts,group_webhooks,issuable_default_templates,issue_weights,iterations,jenkins_integration,ldap_group_sync,member_lock,merge_request_approvers,milestone_charts,multiple_issue_assignees,multiple_ldap_servers,multiple_merge_request_assignees,project_merge_request_analytics,protected_refs_for_users,push_rules,repository_mirrors,repository_size_limit,seat_link,send_emails_from_admin_area,scoped_issue_board,usage_quotas,visual_review_app,wip_limits,adjourned_deletion_for_projects_and_groups,admin_audit_log,auditor_user,blocking_merge_requests,board_assignee_lists,board_milestone_lists,ci_cd_projects,ci_secrets_management,cluster_agents,cluster_deployments,code_owner_approval_required,commit_committer_check,compliance_framework,cross_project_pipelines,custom_file_templates,custom_file_templates_for_namespace,custom_project_templates,cycle_analytics_for_groups,db_load_balancing,default_branch_protection_restriction_in_groups,default_project_deletion_protection,dependency_proxy,deploy_board,disable_name_update_for_users,email_additional_text,epics,extended_audit_events,external_authorization_service_api_management,feature_flags,file_locks,geo,generic_alert_fingerprinting,github_project_service_integration,group_allowed_email_domains,group_coverage_reports,group_forking_protection,group_ip_restriction,group_merge_request_analytics,group_project_templates,group_saml,issues_analytics,jira_dev_panel_integration,jira_issues_integration,ldap_group_sync_filter,merge_pipelines,merge_request_performance_metrics,admin_merge_request_approvers_rules,merge_trains,metrics_reports,multiple_approval_rules,multiple_group_issue_boards,object_storage,operations_dashboard,opsgenie_integration,package_forwarding,pages_size_limit,productivity_analytics,project_aliases,protected_environments,reject_unsigned_commits,required_ci_templates,scoped_labels,smartcard_auth,group_timelogs,type_of_work_analytics,unprotection_restrictions,ci_project_subscriptions,container_scanning,coverage_fuzzing,credentials_inventory,dast,dependency_scanning,enterprise_templates,api_fuzzing,group_level_compliance_dashboard,incident_management,insights,issuable_health_status,license_scanning,personal_access_token_api_management,personal_access_token_expiration_policy,enforce_pat_expiration,prometheus_alerts,pseudonymizer,release_evidence_test_artifacts,report_approver_rules,requirements,sast,secret_detection,security_dashboard,security_on_demand_scans,status_page,subepics,threat_monitoring,tracing,quality_management
+GITLAB_USER_EMAIL=gaetan.gilbert@skyskimmer.net
+GITLAB_USER_ID=1343245
+GITLAB_USER_LOGIN=SkySkimmer
+GITLAB_USER_NAME=Gaëtan Gilbert
+GIT_DEPTH=10
+HOME=/root
+HOSTNAME=runner-curNbQZR-project-6138686-concurrent-1
+IMAGE=registry.gitlab.com/coq/coq:bionic_coq-V2020-08-28-V92
+NJOBS=2
+OLDPWD=/
+OPAMJOBS=2
+OPAMROOT=/root/.opamcache
+OPAMROOTISOK=true
+OPAMYES=true
+OPAM_SWITCH=base
+OPAM_VARIANT=
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+PWD=/builds/coq/coq
+SHLVL=1
+SKIP_DOCKER=true
+UNRELIABLE=enabled
+WINDOWS=enabled
+WINDOWS_ALL_ADDONS=disabled
+_=/usr/bin/printenv
+$ declare -A switch_table
+$ switch_table=( ["base"]="$COMPILER" ["edge"]="$COMPILER_EDGE" )
+$ opam switch set -y "${switch_table[$OPAM_SWITCH]}$OPAM_VARIANT"
+# Run eval $(opam env) to update the current shell environment
+$ eval $(opam env)
+$ opam list
+# Packages matching: installed
+# Name # Installed # Synopsis
+astring 0.8.5 Alternative String module for OCaml
+base-bigarray base
+base-bytes base Bytes library distributed with the OCaml compiler
+base-num base Num library distributed with the OCaml compiler
+base-threads base
+base-unix base
+cairo2 0.6.1 Binding to Cairo, a 2D Vector Graphics Library
+camlp5 7.12 Preprocessor-pretty-printer of OCaml
+cmdliner 1.0.4 Declarative definition of command line interfaces for OCaml
+conf-cairo 1 Virtual package relying on a Cairo system installation
+conf-gmp 1 Virtual package relying on a GMP lib system installation
+conf-gtk3 18 Virtual package relying on GTK+ 3
+conf-gtksourceview3 0+2 Virtual package relying on a GtkSourceView-3 system installation
+conf-m4 1 Virtual package relying on m4
+conf-perl 1 Virtual package relying on perl
+conf-pkg-config 1.3 Virtual package relying on pkg-config installation
+cppo 1.6.6 Code preprocessor like cpp for OCaml
+dune 2.7.0 Fast, portable, and opinionated build system
+dune-configurator 2.7.0 Helper library for gathering system configuration
+elpi 1.11.0 ELPI - Embeddable λProlog Interpreter
+fpath 0.7.2 File system paths for OCaml
+lablgtk3 3.1.0 OCaml interface to GTK+3
+lablgtk3-sourceview3 3.1.0 OCaml interface to GTK+ gtksourceview library
+menhir 20190626 An LR(1) parser generator
+num 0 The Num library for arbitrary-precision integer and rational arithmetic
+ocaml 4.05.0 The OCaml compiler (virtual package)
+ocaml-base-compiler 4.05.0 Official 4.05.0 release
+ocaml-compiler-libs v0.12.1 OCaml compiler libraries repackaged
+ocaml-config 1 OCaml Switch Configuration
+ocaml-migrate-parsetree 1.7.3 Convert OCaml parsetrees between different versions
+ocaml-secondary-compiler 4.08.1-1 OCaml 4.08.1 Secondary Switch Compiler
+ocamlbuild 0.14.0 OCamlbuild is a build system with builtin rules to easily build most OCaml projects.
+ocamlfind 1.8.1 A library manager for OCaml
+ocamlfind-secondary 1.8.1 ocamlfind support for ocaml-secondary-compiler
+ocamlgraph 1.8.8 A generic graph library for OCaml
+odoc 1.5.0 OCaml documentation generator
+ounit2 2.2.3 OUnit testing framework
+ppx_derivers 1.2.1 Shared [@@deriving] plugin registry
+ppx_deriving 4.5 Type-driven code generation for OCaml >=4.02.2
+ppx_tools 5.0+4.05.0 Tools for authors of ppx rewriters and other syntactic tools
+ppxfind 1.4 Tool combining ocamlfind and ppx
+ppxlib 0.15.0 Standard library for ppx rewriters
+re 1.9.0 RE is a regular expression library for OCaml
+result 1.5 Compatibility Result module
+seq 0.2.2 Compatibility package for OCaml's standard iterator type starting from 4.07
+sexplib0 v0.14.0 Library containing the definition of S-expressions and some base converters
+stdlib-shims 0.1.0 Backport some of the new stdlib features to older compiler
+topkg 1.0.2 The transitory OCaml software packager
+tyxml 4.4.0 TyXML is a library for building correct HTML and SVG documents
+uchar 0.0.2 Compatibility library for OCaml's Uchar module
+uutf 1.0.2 Non-blocking streaming Unicode codec for OCaml
+zarith 1.9.1 Implements arithmetic and logical operations over arbitrary-precision integers
+$ opam config list
+
+<><> Global opam variables ><><><><><><><><><><><><><><><><><><><><><><><><><><>
+arch x86_64 # Inferred from system
+jobs 2 # The number of parallel jobs set up in opam configuration
+make make # The 'make' command to use
+opam-version 2.0.6 # The currently running opam version
+os linux # Inferred from system
+os-distribution ubuntu # Inferred from system
+os-family debian # Inferred from system
+os-version 18.04 # Inferred from system
+root /root/.opamcache # The current opam root directory
+switch 4.05.0 # The identifier of the current switch
+sys-ocaml-version # OCaml version present on your system independently of opam, if any
+
+<><> Configuration variables from the current switch ><><><><><><><><><><><><><>
+prefix /root/.opamcache/4.05.0
+lib /root/.opamcache/4.05.0/lib
+bin /root/.opamcache/4.05.0/bin
+sbin /root/.opamcache/4.05.0/sbin
+share /root/.opamcache/4.05.0/share
+doc /root/.opamcache/4.05.0/doc
+etc /root/.opamcache/4.05.0/etc
+man /root/.opamcache/4.05.0/man
+toplevel /root/.opamcache/4.05.0/lib/toplevel
+stublibs /root/.opamcache/4.05.0/lib/stublibs
+user root
+group root
+
+<><> Package variables ('opam config list PKG' to show) <><><><><><><><><><><><>
+PKG:name # Name of the package
+PKG:version # Version of the package
+PKG:depends # Resolved direct dependencies of the package
+PKG:installed # Whether the package is installed
+PKG:enable # Takes the value "enable" or "disable" depending on whether the package is installed
+PKG:pinned # Whether the package is pinned
+PKG:bin # Binary directory for this package
+PKG:sbin # System binary directory for this package
+PKG:lib # Library directory for this package
+PKG:man # Man directory for this package
+PKG:doc # Doc directory for this package
+PKG:share # Share directory for this package
+PKG:etc # Etc directory for this package
+PKG:build # Directory where the package was built
+PKG:hash # Hash of the package archive
+PKG:dev # True if this is a development package
+PKG:build-id # A hash identifying the precise package version with all its dependencies
+$ set -e
+$ echo 'start:coq.test'
+start:coq.test
+$ make -f Makefile.ci -j "$NJOBS" "${CI_JOB_NAME#*:}"
+./dev/ci/ci-wrapper.sh equations
+++ : 2
+++ export NJOBS
+++ '[' -n true ']'
+++ export OCAMLPATH=/builds/coq/coq/_install_ci/lib:
+++ OCAMLPATH=/builds/coq/coq/_install_ci/lib:
+++ export COQBIN=/builds/coq/coq/_install_ci/bin
+++ COQBIN=/builds/coq/coq/_install_ci/bin
+++ export CI_BRANCH=pr-12653
+++ CI_BRANCH=pr-12653
+++ [[ 12653 =~ ^[0-9]*$ ]]
+++ export CI_PULL_REQUEST=12653
+++ CI_PULL_REQUEST=12653
+++ export PATH=/builds/coq/coq/_install_ci/bin:/root/.opamcache/4.05.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++ PATH=/builds/coq/coq/_install_ci/bin:/root/.opamcache/4.05.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++ export COQBIN=/builds/coq/coq/_install_ci/bin/
+++ COQBIN=/builds/coq/coq/_install_ci/bin/
+++ ls -l /builds/coq/coq/_install_ci/bin/
+total 377964
+-rwxr-xr-x 1 root root 1885376 Sep 1 11:46 coq-tex
+-rwxr-xr-x 1 root root 2500248 Sep 1 11:46 coq_makefile
+-rwxr-xr-x 1 root root 24673120 Sep 1 11:46 coqc
+-rwxr-xr-x 1 root root 9648760 Sep 1 11:46 coqchk
+-rwxr-xr-x 1 root root 5855160 Sep 1 11:46 coqdep
+-rwxr-xr-x 1 root root 4413792 Sep 1 11:46 coqdoc
+-rwxr-xr-x 1 root root 11526312 Sep 1 11:47 coqide
+-rwxr-xr-x 1 root root 25110448 Sep 1 11:47 coqidetop
+-rwxr-xr-x 1 root root 25110448 Sep 1 11:47 coqidetop.opt
+-rwxr-xr-x 1 root root 449295 Sep 1 11:46 coqpp
+-rwxr-xr-x 1 root root 32153472 Sep 1 11:47 coqproofworker.byte
+-rwxr-xr-x 1 root root 24673424 Sep 1 11:46 coqproofworker.opt
+-rwxr-xr-x 1 root root 32153472 Sep 1 11:47 coqqueryworker.byte
+-rwxr-xr-x 1 root root 24673424 Sep 1 11:46 coqqueryworker.opt
+-rwxr-xr-x 1 root root 32153477 Sep 1 11:47 coqtacticworker.byte
+-rwxr-xr-x 1 root root 24673448 Sep 1 11:46 coqtacticworker.opt
+-rwxr-xr-x 1 root root 24673288 Sep 1 11:46 coqtop
+-rwxr-xr-x 1 root root 41805680 Sep 1 11:47 coqtop.byte
+-rwxr-xr-x 1 root root 24673288 Sep 1 11:46 coqtop.opt
+-rwxr-xr-x 1 root root 1821312 Sep 1 11:46 coqwc
+-rwxr-xr-x 1 root root 2827416 Sep 1 11:46 coqworkmgr
+-rwxr-xr-x 1 root root 5905992 Sep 1 11:47 fake_ide
+-rwxr-xr-x 1 root root 1757920 Sep 1 11:46 ocamllibdep
+-rwxr-xr-x 1 root root 1877056 Sep 1 11:46 votour
+++ CI_BUILD_DIR=/builds/coq/coq/_build_ci
+++ ls -l /builds/coq/coq/_build_ci
+total 4
+drwxr-xr-x 8 root root 4096 Sep 1 11:51 equations
+++ set +x
++ git_download equations
++ local PROJECT=equations
++ local DEST=/builds/coq/coq/_build_ci/equations
++ local GITURL_VAR=equations_CI_GITURL
++ local GITURL=https://github.com/SkySkimmer/Coq-Equations
++ local REF_VAR=equations_CI_REF
++ local REF=cumul-syntax
++ '[' -d /builds/coq/coq/_build_ci/equations ']'
++ echo 'Warning: download and unpacking of equations skipped because /builds/coq/coq/_build_ci/equations already exists.'
+Warning: download and unpacking of equations skipped because /builds/coq/coq/_build_ci/equations already exists.
++ cd /builds/coq/coq/_build_ci/equations
++ ./configure.sh coq
+Building Coq version (default)
++ make ci
++ '[' -z x ']'
++ command make ci
++ make ci
+make[1]: Entering directory '/builds/coq/coq/_build_ci/equations'
+make[2]: Nothing to be done for 'real-all'.
+cd test-suite && make
+cd examples && make
+make[2]: Entering directory '/builds/coq/coq/_build_ci/equations/test-suite'
+make[2]: Entering directory '/builds/coq/coq/_build_ci/equations/examples'
+make[3]: Nothing to be done for 'real-all'.
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/equations/examples'
+make[3]: Nothing to be done for 'real-all'.
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/equations/test-suite'
+make[1]: Leaving directory '/builds/coq/coq/_build_ci/equations'
++ make install
++ '[' -z x ']'
++ command make install
++ make install
+make[1]: Entering directory '/builds/coq/coq/_build_ci/equations'
+INSTALL theories/Init.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Signature.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/CoreTactics.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Prop/Logic.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Classes.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/EqDec.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/EqDecInstances.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Subterm.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/DepElim.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Tactics.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Constants.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/NoConfusion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/FunctionalInduction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Loader.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Telescopes.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/TransparentEquations.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/OpaqueEquations.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Equations.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Type/Logic.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/FunctionalExtensionality.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Relation.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Relation_Properties.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/WellFounded.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Classes.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/EqDec.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/DepElim.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Tactics.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Subterm.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Constants.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/EqDecInstances.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/NoConfusion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/FunctionalInduction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Loader.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Telescopes.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/WellFoundedInstances.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/All.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Init.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Signature.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/CoreTactics.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Prop/Logic.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Classes.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/EqDec.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/EqDecInstances.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Subterm.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/DepElim.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Tactics.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Constants.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/NoConfusion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/FunctionalInduction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Loader.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Telescopes.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/TransparentEquations.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/OpaqueEquations.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Equations.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Type/Logic.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/FunctionalExtensionality.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Relation.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Relation_Properties.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/WellFounded.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Classes.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/EqDec.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/DepElim.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Tactics.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Subterm.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Constants.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/EqDecInstances.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/NoConfusion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/FunctionalInduction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Loader.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Telescopes.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/WellFoundedInstances.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/All.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Init.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Signature.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/CoreTactics.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Prop/Logic.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Classes.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/EqDec.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/EqDecInstances.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Subterm.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/DepElim.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Tactics.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Constants.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/NoConfusion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/FunctionalInduction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Loader.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/Telescopes.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/TransparentEquations.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Prop/OpaqueEquations.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Prop
+INSTALL theories/Equations.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL theories/Type/Logic.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/FunctionalExtensionality.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Relation.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Relation_Properties.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/WellFounded.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Classes.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/EqDec.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/DepElim.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Tactics.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Subterm.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Constants.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/EqDecInstances.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/NoConfusion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/FunctionalInduction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Loader.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/Telescopes.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/WellFoundedInstances.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL theories/Type/All.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations//Type
+INSTALL src/g_equations.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_common.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/ederive.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/sigma_types.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/subterm.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/eqdec.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/depelim.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/syntax.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/context_map.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/simplify.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/splitting.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/covering.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/principles_proofs.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/principles.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/noconf_hom.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/noconf.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/extra_tactics.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_plugin_mod.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_common.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/ederive.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/sigma_types.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/subterm.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/eqdec.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/depelim.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/syntax.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/context_map.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/simplify.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/splitting.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/covering.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/principles_proofs.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/principles.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/noconf_hom.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/noconf.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/extra_tactics.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_plugin.cmxa /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/g_equations.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_common.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/ederive.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/sigma_types.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/subterm.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/eqdec.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/depelim.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/syntax.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/context_map.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/simplify.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/splitting.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/covering.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/principles_proofs.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/principles.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/noconf_hom.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/noconf.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/extra_tactics.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+INSTALL src/equations_plugin_mod.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/Equations/
+make[2]: Entering directory '/builds/coq/coq/_build_ci/equations'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/equations'
+make[1]: Leaving directory '/builds/coq/coq/_build_ci/equations'
+Aggregating timing log...
+No timing data
+./dev/ci/ci-wrapper.sh metacoq
+++ : 2
+++ export NJOBS
+++ '[' -n true ']'
+++ export OCAMLPATH=/builds/coq/coq/_install_ci/lib:
+++ OCAMLPATH=/builds/coq/coq/_install_ci/lib:
+++ export COQBIN=/builds/coq/coq/_install_ci/bin
+++ COQBIN=/builds/coq/coq/_install_ci/bin
+++ export CI_BRANCH=pr-12653
+++ CI_BRANCH=pr-12653
+++ [[ 12653 =~ ^[0-9]*$ ]]
+++ export CI_PULL_REQUEST=12653
+++ CI_PULL_REQUEST=12653
+++ export PATH=/builds/coq/coq/_install_ci/bin:/root/.opamcache/4.05.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++ PATH=/builds/coq/coq/_install_ci/bin:/root/.opamcache/4.05.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++ export COQBIN=/builds/coq/coq/_install_ci/bin/
+++ COQBIN=/builds/coq/coq/_install_ci/bin/
+++ ls -l /builds/coq/coq/_install_ci/bin/
+total 377964
+-rwxr-xr-x 1 root root 1885376 Sep 1 11:46 coq-tex
+-rwxr-xr-x 1 root root 2500248 Sep 1 11:46 coq_makefile
+-rwxr-xr-x 1 root root 24673120 Sep 1 11:46 coqc
+-rwxr-xr-x 1 root root 9648760 Sep 1 11:46 coqchk
+-rwxr-xr-x 1 root root 5855160 Sep 1 11:46 coqdep
+-rwxr-xr-x 1 root root 4413792 Sep 1 11:46 coqdoc
+-rwxr-xr-x 1 root root 11526312 Sep 1 11:47 coqide
+-rwxr-xr-x 1 root root 25110448 Sep 1 11:47 coqidetop
+-rwxr-xr-x 1 root root 25110448 Sep 1 11:47 coqidetop.opt
+-rwxr-xr-x 1 root root 449295 Sep 1 11:46 coqpp
+-rwxr-xr-x 1 root root 32153472 Sep 1 11:47 coqproofworker.byte
+-rwxr-xr-x 1 root root 24673424 Sep 1 11:46 coqproofworker.opt
+-rwxr-xr-x 1 root root 32153472 Sep 1 11:47 coqqueryworker.byte
+-rwxr-xr-x 1 root root 24673424 Sep 1 11:46 coqqueryworker.opt
+-rwxr-xr-x 1 root root 32153477 Sep 1 11:47 coqtacticworker.byte
+-rwxr-xr-x 1 root root 24673448 Sep 1 11:46 coqtacticworker.opt
+-rwxr-xr-x 1 root root 24673288 Sep 1 11:46 coqtop
+-rwxr-xr-x 1 root root 41805680 Sep 1 11:47 coqtop.byte
+-rwxr-xr-x 1 root root 24673288 Sep 1 11:46 coqtop.opt
+-rwxr-xr-x 1 root root 1821312 Sep 1 11:46 coqwc
+-rwxr-xr-x 1 root root 2827416 Sep 1 11:46 coqworkmgr
+-rwxr-xr-x 1 root root 5905992 Sep 1 11:47 fake_ide
+-rwxr-xr-x 1 root root 1757920 Sep 1 11:46 ocamllibdep
+-rwxr-xr-x 1 root root 1877056 Sep 1 11:46 votour
+++ CI_BUILD_DIR=/builds/coq/coq/_build_ci
+++ ls -l /builds/coq/coq/_build_ci
+total 4
+drwxr-xr-x 8 root root 4096 Sep 1 12:34 equations
+++ set +x
++ git_download metacoq
++ local PROJECT=metacoq
++ local DEST=/builds/coq/coq/_build_ci/metacoq
++ local GITURL_VAR=metacoq_CI_GITURL
++ local GITURL=https://github.com/SkySkimmer/metacoq
++ local REF_VAR=metacoq_CI_REF
++ local REF=cumul-syntax
++ '[' -d /builds/coq/coq/_build_ci/metacoq ']'
++ '[' '' = 1 ']'
++ '[' true = '' ']'
++ local ARCHIVEURL_VAR=metacoq_CI_ARCHIVEURL
++ local ARCHIVEURL=https://github.com/SkySkimmer/metacoq/archive
++ mkdir -p /builds/coq/coq/_build_ci/metacoq
++ cd /builds/coq/coq/_build_ci/metacoq
+++ git ls-remote https://github.com/SkySkimmer/metacoq refs/heads/cumul-syntax
+++ cut -f 1
++ local COMMIT=130dee007744c0e743d13613a398cfbe15ad95ff
++ [[ 130dee007744c0e743d13613a398cfbe15ad95ff == '' ]]
++ wget https://github.com/SkySkimmer/metacoq/archive/130dee007744c0e743d13613a398cfbe15ad95ff.tar.gz
+--2020-09-01 12:34:56-- https://github.com/SkySkimmer/metacoq/archive/130dee007744c0e743d13613a398cfbe15ad95ff.tar.gz
+Resolving github.com (github.com)... 140.82.121.3
+Connecting to github.com (github.com)|140.82.121.3|:443... connected.
+HTTP request sent, awaiting response... 302 Found
+Location: https://codeload.github.com/SkySkimmer/metacoq/tar.gz/130dee007744c0e743d13613a398cfbe15ad95ff [following]
+--2020-09-01 12:34:56-- https://codeload.github.com/SkySkimmer/metacoq/tar.gz/130dee007744c0e743d13613a398cfbe15ad95ff
+Resolving codeload.github.com (codeload.github.com)... 140.82.121.9
+Connecting to codeload.github.com (codeload.github.com)|140.82.121.9|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: unspecified [application/x-gzip]
+Saving to: '130dee007744c0e743d13613a398cfbe15ad95ff.tar.gz'
+
+ 0K .......... .......... .......... .......... .......... 1.14M
+ 50K .......... .......... .......... .......... .......... 2.37M
+ 100K .......... .......... .......... .......... .......... 10.9M
+ 150K .......... .......... .......... .......... .......... 10.9M
+ 200K .......... .......... .......... .......... .......... 3.08M
+ 250K .......... .......... .......... .......... .......... 10.9M
+ 300K .......... .......... .......... .......... .......... 11.4M
+ 350K .......... .......... .......... .......... .......... 10.9M
+ 400K .......... .......... .......... .......... .......... 7.25M
+ 450K .......... .......... .......... .......... .......... 9.97M
+ 500K .......... .......... .......... .......... .......... 10.9M
+ 550K .......... .......... .......... .......... .......... 3.39M
+ 600K .......... .......... .......... .......... .......... 10.8M
+ 650K .......... .......... .......... .......... .......... 2.57M
+ 700K .......... .......... .......... .......... .......... 11.4M
+ 750K .......... .......... .......... .......... .......... 10.8M
+ 800K .......... .......... .......... .......... ......... 11.3M=0.2s
+
+2020-09-01 12:34:57 (4.92 MB/s) - '130dee007744c0e743d13613a398cfbe15ad95ff.tar.gz' saved [869537]
+
++ tar xfz 130dee007744c0e743d13613a398cfbe15ad95ff.tar.gz --strip-components=1
++ rm -f 130dee007744c0e743d13613a398cfbe15ad95ff.tar.gz
++ cd /builds/coq/coq/_build_ci/metacoq
++ ./configure.sh local
+make[1]: Entering directory '/builds/coq/coq/_build_ci/metacoq'
+make -C template-coq mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+rm -f Makefile.coq
+rm -f Makefile.plugin
+rm -f Makefile.template
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -C pcuic mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+rm -f metacoq-config
+rm -f Makefile.plugin _PluginProject
+rm -f Makefile.pcuic _CoqProject
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -C safechecker mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+rm -f metacoq-config
+rm -f Makefile.plugin _PluginProject
+rm -f Makefile.safechecker _CoqProject
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -C erasure mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+rm -f Makefile.plugin
+rm -f Makefile.erasure
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -C checker mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+rm -f Makefile.coq Makefile.plugin _CoqProject _PluginProject
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -C examples mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/examples'
+rm -f Makefile.coq
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/examples'
+make -C test-suite mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/test-suite'
+rm -f Makefile.coq
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/test-suite'
+make -C translations mrproper
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/translations'
+rm -f Makefile.coq
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/translations'
+make[1]: Leaving directory '/builds/coq/coq/_build_ci/metacoq'
+Building MetaCoq locally
++ make .merlin
++ '[' -z x ']'
++ command make .merlin
++ make .merlin
+make[1]: Entering directory '/builds/coq/coq/_build_ci/metacoq'
+make -C template-coq .merlin
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+coq_makefile -f _PluginProject -o Makefile.plugin
+`which gsed || which sed` -i -e s/coqdeps/coqdeps.plugin/g Makefile.plugin
+make -f Makefile.plugin .merlin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+COQDEP VFILES
+OCAMLLIBDEP gen-src/metacoq_template_plugin.mlpack
+FILL .merlin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -C pcuic .merlin
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+cat metacoq-config > _PluginProject
+cat _PluginProject.in >> _PluginProject
+coq_makefile -f _PluginProject -o Makefile.plugin
+`which gsed || which sed` -i -e s/coqdeps/coqdeps.plugin/g Makefile.plugin
+make -f Makefile.plugin .merlin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+OCAMLLIBDEP src/metacoq_pcuic_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+FILL .merlin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+OCAMLLIBDEP src/metacoq_pcuic_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -C safechecker .merlin
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+cat metacoq-config > _PluginProject
+cat _PluginProject.in >> _PluginProject
+coq_makefile -f _PluginProject -o Makefile.plugin
+`which gsed || which sed` -i -e s/coqdeps/coqdeps.plugin/g Makefile.plugin
+make -f Makefile.plugin .merlin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+COQPP src/g_metacoq_safechecker.mlg
+OCAMLLIBDEP src/metacoq_safechecker_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+CAMLDEP src/g_metacoq_safechecker.ml
+Bad -I option: ../template-coq/build: No such file or directory
+FILL .merlin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+OCAMLLIBDEP src/metacoq_safechecker_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+CAMLDEP src/g_metacoq_safechecker.ml
+Bad -I option: ../template-coq/build: No such file or directory
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -C erasure .merlin
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+cat metacoq-config > _PluginProject
+cat _PluginProject.in >> _PluginProject
+coq_makefile -f _PluginProject -o Makefile.plugin
+`which gsed || which sed` -i -e s/coqdeps/coqdeps.plugin/g Makefile.plugin
+make -f Makefile.plugin .merlin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+COQPP src/g_metacoq_erasure.mlg
+OCAMLLIBDEP src/metacoq_erasure_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+CAMLDEP src/g_metacoq_erasure.ml
+Bad -I option: ../template-coq/build: No such file or directory
+FILL .merlin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+OCAMLLIBDEP src/metacoq_erasure_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+CAMLDEP src/g_metacoq_erasure.ml
+Bad -I option: ../template-coq/build: No such file or directory
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -C checker .merlin
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+cat metacoq-config > _PluginProject
+cat _PluginProject.in >> _PluginProject
+coq_makefile -f _PluginProject -o Makefile.plugin
+make -f Makefile.plugin .merlin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+COQPP src/g_metacoq_checker.mlg
+OCAMLLIBDEP src/metacoq_checker_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+CAMLDEP src/g_metacoq_checker.ml
+Bad -I option: ../template-coq/build: No such file or directory
+FILL .merlin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+COQDEP VFILES
+Fatal error: exception Sys_error("../template-coq/build: No such file or directory")
+OCAMLLIBDEP src/metacoq_checker_plugin.mlpack
+Uncaught exception: Sys_error("../template-coq/build: No such file or directory")
+CAMLDEP src/g_metacoq_checker.ml
+Bad -I option: ../template-coq/build: No such file or directory
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[1]: Leaving directory '/builds/coq/coq/_build_ci/metacoq'
++ make ci-local
++ '[' -z x ']'
++ command make ci-local
++ make ci-local
+make[1]: Entering directory '/builds/coq/coq/_build_ci/metacoq'
+make all test-suite
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq'
+make -C template-coq
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+coq_makefile -f _CoqProject -o Makefile.coq
+coq_makefile -f _TemplateCoqProject -o Makefile.template
+`which gsed || which sed` -i -e s/coqdeps/coqdeps.template/g Makefile.template
+make -f Makefile.coq
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+COQDEP VFILES
+COQC theories/utils/MCPrelude.v
+COQC theories/utils/MCRelations.v
+theories/utils/MCPrelude.vo (real: 0.09, user: 0.05, sys: 0.04, mem: 63096 ko)
+COQC theories/utils/MCProd.v
+theories/utils/MCRelations.vo (real: 0.09, user: 0.05, sys: 0.04, mem: 68156 ko)
+COQC theories/utils/MCSquash.v
+theories/utils/MCSquash.vo (real: 0.09, user: 0.04, sys: 0.04, mem: 61384 ko)
+COQC theories/utils/MCArith.v
+theories/utils/MCProd.vo (real: 0.14, user: 0.09, sys: 0.04, mem: 88348 ko)
+COQC theories/utils/MCCompare.v
+theories/utils/MCArith.vo (real: 0.70, user: 0.48, sys: 0.22, mem: 404556 ko)
+COQC theories/utils/MCEquality.v
+theories/utils/MCEquality.vo (real: 0.08, user: 0.04, sys: 0.03, mem: 62924 ko)
+COQC theories/utils/LibHypsNaming.v
+theories/utils/LibHypsNaming.vo (real: 0.60, user: 0.42, sys: 0.18, mem: 339136 ko)
+COQC theories/config.v
+theories/config.vo (real: 0.08, user: 0.04, sys: 0.03, mem: 61716 ko)
+COQC theories/monad_utils.v
+theories/monad_utils.vo (real: 0.22, user: 0.14, sys: 0.08, mem: 149456 ko)
+COQC theories/utils/MCList.v
+theories/utils/MCList.vo (real: 1.71, user: 1.47, sys: 0.22, mem: 452340 ko)
+COQC theories/utils/MCOption.v
+theories/utils/MCOption.vo (real: 0.79, user: 0.56, sys: 0.22, mem: 440168 ko)
+COQC theories/utils/All_Forall.v
+theories/utils/MCCompare.vo (real: 6.40, user: 6.04, sys: 0.32, mem: 529900 ko)
+COQC theories/utils/MCString.v
+theories/utils/MCString.vo (real: 0.44, user: 0.30, sys: 0.13, mem: 270156 ko)
+theories/utils/All_Forall.vo (real: 3.03, user: 2.78, sys: 0.23, mem: 465984 ko)
+COQC theories/utils.v
+theories/utils.vo (real: 0.71, user: 0.52, sys: 0.18, mem: 385340 ko)
+COQC theories/utils/wGraph.v
+COQC theories/BasicAst.v
+theories/BasicAst.vo (real: 0.98, user: 0.75, sys: 0.22, mem: 450728 ko)
+COQC theories/Universes.v
+theories/utils/wGraph.vo (real: 5.22, user: 4.72, sys: 0.47, mem: 498552 ko)
+theories/Universes.vo (real: 4.54, user: 4.23, sys: 0.28, mem: 531272 ko)
+COQC theories/common/uGraph.v
+COQC theories/Environment.v
+theories/Environment.vo (real: 1.35, user: 1.10, sys: 0.24, mem: 484172 ko)
+COQC theories/Ast.v
+theories/Ast.vo (real: 1.04, user: 0.79, sys: 0.24, mem: 479940 ko)
+COQC theories/AstUtils.v
+theories/AstUtils.vo (real: 1.24, user: 1.00, sys: 0.23, mem: 485664 ko)
+COQC theories/TemplateMonad/Common.v
+theories/TemplateMonad/Common.vo (real: 0.82, user: 0.60, sys: 0.22, mem: 437492 ko)
+COQC theories/Induction.v
+theories/Induction.vo (real: 1.45, user: 1.18, sys: 0.26, mem: 486324 ko)
+COQC theories/EnvironmentTyping.v
+theories/common/uGraph.vo (real: 6.23, user: 5.85, sys: 0.35, mem: 551516 ko)
+COQC theories/WfInv.v
+theories/WfInv.vo (real: 1.31, user: 1.05, sys: 0.25, mem: 489932 ko)
+COQC theories/TemplateMonad/Core.v
+theories/EnvironmentTyping.vo (real: 2.05, user: 1.77, sys: 0.27, mem: 491968 ko)
+COQC theories/TemplateMonad/Extractable.v
+theories/TemplateMonad/Core.vo (real: 0.97, user: 0.73, sys: 0.24, mem: 481988 ko)
+COQC theories/LiftSubst.v
+theories/TemplateMonad/Extractable.vo (real: 0.95, user: 0.70, sys: 0.23, mem: 481156 ko)
+COQC theories/TemplateMonad.v
+theories/TemplateMonad.vo (real: 0.79, user: 0.54, sys: 0.24, mem: 420452 ko)
+COQC theories/Constants.v
+theories/Constants.vo (real: 1.08, user: 0.82, sys: 0.25, mem: 498504 ko)
+theories/LiftSubst.vo (real: 12.60, user: 11.81, sys: 0.72, mem: 532016 ko)
+COQC theories/UnivSubst.v
+COQC theories/Pretty.v
+theories/Pretty.vo (real: 1.11, user: 0.87, sys: 0.24, mem: 486460 ko)
+theories/UnivSubst.vo (real: 3.38, user: 3.11, sys: 0.24, mem: 490756 ko)
+COQC theories/Typing.v
+COQC theories/Extraction.v
+theories/Extraction.vo (real: 9.78, user: 9.33, sys: 0.41, mem: 571876 ko)
+theories/Typing.vo (real: 53.00, user: 51.78, sys: 0.98, mem: 809012 ko)
+COQC theories/TypingWf.v
+theories/TypingWf.vo (real: 8.46, user: 8.05, sys: 0.36, mem: 556676 ko)
+./update_plugin.sh
+Updating gen-src from src
+Copying from src to gen-src
+Renaming files to camelCase
+Moving All_Forall.ml to all_Forall.ml
+Moving All_Forall.mli to all_Forall.mli
+Moving Ascii.ml to ascii.ml
+Moving Ascii.mli to ascii.mli
+Moving Ast0.ml to ast0.ml
+Moving Ast0.mli to ast0.mli
+Moving AstUtils.ml to astUtils.ml
+Moving AstUtils.mli to astUtils.mli
+Moving BasicAst.ml to basicAst.ml
+Moving BasicAst.mli to basicAst.mli
+Moving Basics.ml to basics.ml
+Moving Basics.mli to basics.mli
+Moving BinInt.ml to binInt.ml
+Moving BinInt.mli to binInt.mli
+Moving BinNat.ml to binNat.ml
+Moving BinNat.mli to binNat.mli
+Moving BinNums.ml to binNums.ml
+Moving BinNums.mli to binNums.mli
+Moving BinPos.ml to binPos.ml
+Moving BinPos.mli to binPos.mli
+Moving BinPosDef.ml to binPosDef.ml
+Moving BinPosDef.mli to binPosDef.mli
+Moving Bool.ml to bool.ml
+Moving Bool.mli to bool.mli
+Moving Byte.ml to byte.ml
+Moving Byte.mli to byte.mli
+Moving CRelationClasses.ml to cRelationClasses.ml
+Moving CRelationClasses.mli to cRelationClasses.mli
+Moving Common0.ml to common0.ml
+Moving Common0.mli to common0.mli
+Moving Compare_dec.ml to compare_dec.ml
+Moving Compare_dec.mli to compare_dec.mli
+Moving Datatypes.ml to datatypes.ml
+Moving Datatypes.mli to datatypes.mli
+Moving Decimal.ml to decimal.ml
+Moving Decimal.mli to decimal.mli
+Moving Environment.ml to environment.ml
+Moving Environment.mli to environment.mli
+Moving Equalities.ml to equalities.ml
+Moving Equalities.mli to equalities.mli
+Moving Extractable.ml to extractable.ml
+Moving Extractable.mli to extractable.mli
+Moving Hexadecimal.ml to hexadecimal.ml
+Moving Hexadecimal.mli to hexadecimal.mli
+Moving Induction.ml to induction.ml
+Moving Induction.mli to induction.mli
+Moving LiftSubst.ml to liftSubst.ml
+Moving LiftSubst.mli to liftSubst.mli
+Moving List0.ml to list0.ml
+Moving List0.mli to list0.mli
+Moving Logic0.ml to logic0.ml
+Moving Logic0.mli to logic0.mli
+Moving MCCompare.ml to mCCompare.ml
+Moving MCCompare.mli to mCCompare.mli
+Moving MCList.ml to mCList.ml
+Moving MCList.mli to mCList.mli
+Moving MCOption.ml to mCOption.ml
+Moving MCOption.mli to mCOption.mli
+Moving MCPrelude.ml to mCPrelude.ml
+Moving MCPrelude.mli to mCPrelude.mli
+Moving MCProd.ml to mCProd.ml
+Moving MCProd.mli to mCProd.mli
+Moving MCRelations.ml to mCRelations.ml
+Moving MCRelations.mli to mCRelations.mli
+Moving MCString.ml to mCString.ml
+Moving MCString.mli to mCString.mli
+Moving MSetDecide.ml to mSetDecide.ml
+Moving MSetDecide.mli to mSetDecide.mli
+Moving MSetFacts.ml to mSetFacts.ml
+Moving MSetFacts.mli to mSetFacts.mli
+Moving MSetInterface.ml to mSetInterface.ml
+Moving MSetInterface.mli to mSetInterface.mli
+Moving MSetList.ml to mSetList.ml
+Moving MSetList.mli to mSetList.mli
+Moving MSetProperties.ml to mSetProperties.ml
+Moving MSetProperties.mli to mSetProperties.mli
+Moving Nat0.ml to nat0.ml
+Moving Nat0.mli to nat0.mli
+Moving Numeral.ml to numeral.ml
+Moving Numeral.mli to numeral.mli
+Moving OrderedType0.ml to orderedType0.ml
+Moving OrderedType0.mli to orderedType0.mli
+Moving Orders.ml to orders.ml
+Moving Orders.mli to orders.mli
+Moving OrdersFacts.ml to ordersFacts.ml
+Moving OrdersFacts.mli to ordersFacts.mli
+Moving OrdersLists.ml to ordersLists.ml
+Moving OrdersLists.mli to ordersLists.mli
+Moving OrdersTac.ml to ordersTac.ml
+Moving OrdersTac.mli to ordersTac.mli
+Moving PeanoNat.ml to peanoNat.ml
+Moving PeanoNat.mli to peanoNat.mli
+Moving Pretty.ml to pretty.ml
+Moving Pretty.mli to pretty.mli
+Moving Specif.ml to specif.ml
+Moving Specif.mli to specif.mli
+Moving String0.ml to string0.ml
+Moving String0.mli to string0.mli
+Moving UnivSubst0.ml to univSubst0.ml
+Moving UnivSubst0.mli to univSubst0.mli
+Moving Universes0.ml to universes0.ml
+Moving Universes0.mli to universes0.mli
+patching file gen-src/cRelationClasses.mli
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.template optfiles
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+COQDEP VFILES
+COQPP src/g_template_coq.mlg
+CAMLDEP src/plugin_core.mli
+CAMLDEP src/run_template_monad.mli
+CAMLDEP src/template_monad.mli
+OCAMLLIBDEP src/template_coq.mlpack
+CAMLDEP src/plugin_core.ml
+CAMLDEP src/run_template_monad.ml
+CAMLDEP src/template_monad.ml
+CAMLDEP src/constr_denoter.ml
+CAMLDEP src/constr_quoter.ml
+CAMLDEP src/constr_reification.ml
+CAMLDEP src/denoter.ml
+CAMLDEP src/quoter.ml
+CAMLDEP src/reification.ml
+CAMLDEP src/tm_util.ml
+CAMLDEP src/g_template_coq.ml
+CAMLOPT -c -for-pack Template_coq src/tm_util.ml
+CAMLOPT -c -for-pack Template_coq src/reification.ml
+src/reification.cmx (real: 0.04, user: 0.01, sys: 0.01, mem: 14796 ko)
+CAMLOPT -c -for-pack Template_coq src/constr_reification.ml
+src/tm_util.cmx (real: 0.07, user: 0.03, sys: 0.02, mem: 21812 ko)
+CAMLC -c src/template_monad.mli
+src/template_monad.cmi (real: 0.02, user: 0.00, sys: 0.01, mem: 15004 ko)
+CAMLC -c src/plugin_core.mli
+src/constr_reification.cmx (real: 0.07, user: 0.04, sys: 0.02, mem: 22020 ko)
+CAMLOPT -c -for-pack Template_coq src/quoter.ml
+src/plugin_core.cmi (real: 0.03, user: 0.01, sys: 0.01, mem: 17068 ko)
+CAMLOPT -c -for-pack Template_coq src/denoter.ml
+src/denoter.cmx (real: src/quoter.cmx (real: 0.22, user: 0.240.05, ,u sesry:s :0.16 , 0.02sy,s :m em: 0.0224280, mkeom:)
+34576 ko)
+CAMLOPT -c -for-pack Template_coq src/template_monad.ml
+CAMLOPT -c -for-pack Template_coq src/plugin_core.ml
+src/templaster_cm/opnaludg.inc_cmoxr e(.rcemaxl :( real: 0.10, user: 0.06, sys: 0.02, mem: 27236 ko)
+0.10, user: 0.08, sys: 0.01, mem: 26216 ko)
+CAMLC -c src/run_template_monad.mli
+CAMLOPT -c -for-pack Template_coq src/constr_quoter.ml
+src/run_template_monad.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 13148 ko)
+CAMLOPT -c -for-pack Template_coq src/constr_denoter.ml
+src/constr_denoter.cmx (real: 0.18, user: 0.14, sys: 0.01, mem: 31740 ko)
+src/constr_quoter.cmx (real: 0.24, user: 0.17, sys: 0.03, mem: 33044 ko)
+CAMLOPT -c -for-pack Template_coq src/run_template_monad.ml
+src/run_template_monad.cmx (real: 0.28, user: 0.15, sys: 0.03, mem: 38520 ko)
+CAMLOPT -c -for-pack Template_coq src/g_template_coq.ml
+src/g_template_coq.cmx (real: 0.25, user: 0.10, sys: 0.02, mem: 33140 ko)
+CAMLOPT -pack -o src/template_coq.cmx
+src/template_coq.cmx (real: 0.13, user: 0.02, sys: 0.02, mem: 19956 ko)
+CAMLOPT -a -o src/template_coq.cmxa
+src/template_coq.cmxa (real: 0.03, user: 0.00, sys: 0.01, mem: 13520 ko)
+CAMLOPT -shared -o src/template_coq.cmxs
+src/template_coq.cmxs (real: 0.08, user: 0.05, sys: 0.03, mem: 16040 ko)
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+cp src/template_coq.cm* build/
+make -f Makefile.template
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+COQC theories/Loader.v
+theories/Loader.vo (real: 1.04, user: 0.77, sys: 0.26, mem: 500040 ko)
+COQC theories/All.v
+theories/All.vo (real: 1.25, user: 0.95, sys: 0.28, mem: 521596 ko)
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.plugin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+CAMLDEP gen-src/univSubst0.mli
+CAMLDEP gen-src/universes0.mli
+CAMLDEP gen-src/string0.mli
+CAMLDEP gen-src/specif.mli
+CAMLDEP gen-src/run_extractable.mli
+CAMLDEP gen-src/pretty.mli
+CAMLDEP gen-src/plugin_core.mli
+CAMLDEP gen-src/peanoNat.mli
+CAMLDEP gen-src/ordersTac.mli
+CAMLDEP gen-src/ordersLists.mli
+CAMLDEP gen-src/orders.mli
+CAMLDEP gen-src/ordersFacts.mli
+CAMLDEP gen-src/orderedType0.mli
+CAMLDEP gen-src/numeral.mli
+CAMLDEP gen-src/nat0.mli
+CAMLDEP gen-src/mSetProperties.mli
+CAMLDEP gen-src/mSetList.mli
+CAMLDEP gen-src/mSetInterface.mli
+CAMLDEP gen-src/mSetFacts.mli
+CAMLDEP gen-src/mSetDecide.mli
+CAMLDEP gen-src/mCString.mli
+CAMLDEP gen-src/mCRelations.mli
+CAMLDEP gen-src/mCProd.mli
+CAMLDEP gen-src/mCOption.mli
+CAMLDEP gen-src/mCList.mli
+CAMLDEP gen-src/mCCompare.mli
+CAMLDEP gen-src/mCPrelude.mli
+CAMLDEP gen-src/logic0.mli
+CAMLDEP gen-src/list0.mli
+CAMLDEP gen-src/liftSubst.mli
+CAMLDEP gen-src/hexadecimal.mli
+CAMLDEP gen-src/extractable.mli
+CAMLDEP gen-src/equalities.mli
+CAMLDEP gen-src/environment.mli
+CAMLDEP gen-src/decimal.mli
+CAMLDEP gen-src/datatypes.mli
+CAMLDEP gen-src/cRelationClasses.mli
+CAMLDEP gen-src/config0.mli
+CAMLDEP gen-src/compare_dec.mli
+CAMLDEP gen-src/common0.mli
+CAMLDEP gen-src/bool.mli
+CAMLDEP gen-src/binPos.mli
+CAMLDEP gen-src/binPosDef.mli
+CAMLDEP gen-src/binNums.mli
+CAMLDEP gen-src/binNat.mli
+CAMLDEP gen-src/binInt.mli
+CAMLDEP gen-src/basics.mli
+CAMLDEP gen-src/basicAst.mli
+CAMLDEP gen-src/astUtils.mli
+CAMLDEP gen-src/ast0.mli
+CAMLDEP gen-src/ascii.mli
+CAMLDEP gen-src/all_Forall.mli
+OCAMLLIBDEP gen-src/metacoq_template_plugin.mlpack
+CAMLDEP gen-src/univSubst0.ml
+CAMLDEP gen-src/universes0.ml
+CAMLDEP gen-src/tm_util.ml
+CAMLDEP gen-src/string0.ml
+CAMLDEP gen-src/specif.ml
+CAMLDEP gen-src/run_extractable.ml
+CAMLDEP gen-src/quoter.ml
+CAMLDEP gen-src/reification.ml
+CAMLDEP gen-src/pretty.ml
+CAMLDEP gen-src/plugin_core.ml
+CAMLDEP gen-src/peanoNat.ml
+CAMLDEP gen-src/ordersTac.ml
+CAMLDEP gen-src/orders.ml
+CAMLDEP gen-src/ordersLists.ml
+CAMLDEP gen-src/ordersFacts.ml
+CAMLDEP gen-src/orderedType0.ml
+CAMLDEP gen-src/numeral.ml
+CAMLDEP gen-src/nat0.ml
+CAMLDEP gen-src/mSetProperties.ml
+CAMLDEP gen-src/mSetList.ml
+CAMLDEP gen-src/mSetInterface.ml
+CAMLDEP gen-src/mSetFacts.ml
+CAMLDEP gen-src/mSetDecide.ml
+CAMLDEP gen-src/mCString.ml
+CAMLDEP gen-src/mCRelations.ml
+CAMLDEP gen-src/mCProd.ml
+CAMLDEP gen-src/mCOption.ml
+CAMLDEP gen-src/mCList.ml
+CAMLDEP gen-src/mCCompare.ml
+CAMLDEP gen-src/mCPrelude.ml
+CAMLDEP gen-src/logic0.ml
+CAMLDEP gen-src/list0.ml
+CAMLDEP gen-src/liftSubst.ml
+CAMLDEP gen-src/hexadecimal.ml
+CAMLDEP gen-src/extractable.ml
+CAMLDEP gen-src/equalities.ml
+CAMLDEP gen-src/environment.ml
+CAMLDEP gen-src/denoter.ml
+CAMLDEP gen-src/decimal.ml
+CAMLDEP gen-src/datatypes.ml
+CAMLDEP gen-src/cRelationClasses.ml
+CAMLDEP gen-src/config0.ml
+CAMLDEP gen-src/compare_dec.ml
+CAMLDEP gen-src/common0.ml
+CAMLDEP gen-src/bool.ml
+CAMLDEP gen-src/binPos.ml
+CAMLDEP gen-src/binPosDef.ml
+CAMLDEP gen-src/binNums.ml
+CAMLDEP gen-src/binNat.ml
+CAMLDEP gen-src/binInt.ml
+CAMLDEP gen-src/basics.ml
+CAMLDEP gen-src/basicAst.ml
+CAMLDEP gen-src/astUtils.ml
+CAMLDEP gen-src/ast_quoter.ml
+CAMLDEP gen-src/ast_denoter.ml
+CAMLDEP gen-src/ast0.ml
+CAMLDEP gen-src/ascii.ml
+CAMLDEP gen-src/all_Forall.ml
+CAMLC -c gen-src/datatypes.mli
+CAMLC -c gen-src/basics.mli
+gen-src/basics.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11244 ko)
+CAMLC -c gen-src/binNums.mli
+gen-src/datatypes.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 12948 ko)
+CAMLC -c gen-src/mCPrelude.mli
+gen-src/binNums.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11340 ko)
+CAMLC -c gen-src/mCRelations.mli
+gen-src/mCPrelude.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11228 ko)
+CAMLC -c gen-src/mCProd.mli
+gen-src/mCRelations.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11080 ko)
+CAMLC -c gen-src/config0.mli
+gen-src/mCProd.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11620 ko)
+CAMLC -c gen-src/logic0.mli
+gen-src/config0.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11112 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/tm_util.ml
+gen-src/logic0.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11524 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/reification.ml
+gen-src/reification.cmx (real: 0.02, user: 0.01, sys: 0.00, mem: 14848 ko)
+CAMLC -c gen-src/plugin_core.mli
+gen-src/plugin_core.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 17156 ko)
+CAMLC -c gen-src/tm_util.ml
+gen-src/tm_util.cmo (real: 0.03, user: 0.02, sys: 0.01, mem: 18388 ko)
+CAMLC -c gen-src/reification.ml
+gen-src/reification.cmo (real: 0.01, user: 0.00, sys: 0.00, mem: 11740 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/datatypes.ml
+gen-src/datatypes.cmx (real: 0.15, user: 0.01, sys: 0.01, mem: 16200 ko)
+gen-src/tm_util.cmx (real: 0.26, user: 0.03, sys: 0.02, mem: 22128 ko)
+CAMLC -c gen-src/bool.mli
+CAMLC -c gen-src/decimal.mli
+gen-src/decimal.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 12404 ko)
+gen-src/bool.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11744 ko)
+CAMLC -c gen-src/specif.mli
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/basics.ml
+gen-src/specif.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13160 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/binNums.ml
+ggeenn--ssrrcc//bbaisniNcusm.sc.mcxm x( r(eraela:l : 0.040.05,, uusseerr:: 0.010.00,, ssyyss:: 0.010.01,, mmeemm:: 1566414584 kkoo))
+
+CAMLC -c gen-src/cRelationClasses.mli
+CAMLC -c gen-src/compare_dec.mli
+gen-src/compare_dec.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11720 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCPrelude.ml
+gen-src/cRelationClasses.cmi (real: 0.01, user: 0.01, sys: 0.00, mem: 13388 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCRelations.ml
+gen-src/mCPrelude.cmx (real: 0.04, user: 0.00, sys: 0.01, mem: 14368 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCProd.ml
+gen-src/mCRelations.cmx (real: 0.09, user: 0.00, sys: 0.01, mem: 14184 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/config0.ml
+gen-src/mCProd.cmx (real: 0.07, user: 0.01, sys: 0.01, mem: 15708 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/logic0.ml
+gen-src/logic0.cmx (real: 0.02, user: 0.00, sys: 0.01, mem: 15516 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/quoter.ml
+gen-src/config0.cmx (real: 0.09, user: 0.00, sys: 0.01, mem: 14648 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/denoter.ml
+gen-src/denoter.cmx (real: 0.07, user: 0.05, sys: 0.01, mem: 24396 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/plugin_core.ml
+gen-src/quoter.cmx (real: 0.17, user: 0.14, sys: 0.02, mem: 34476 ko)
+CAMLC -c gen-src/quoter.ml
+gen-src/plugin_core.cmx (real: 0.09, user: 0.06, sys: 0.02, mem: 27344 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/bool.ml
+gen-src/bool.cmx (real: 0.02, user: 0.01, sys: 0.01, mem: 15772 ko)
+CAMLC -c gen-src/equalities.mli
+gen-src/equalities.cmi (real: 0.04, user: 0.00, sys: 0.00, mem: 13240 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/decimal.ml
+gen-src/quoter.cmo (real: 0.16, user: 0.08, sys: 0.01, mem: 26408 ko)
+CAMLC -c gen-src/hexadecimal.mli
+gen-src/hexadecimal.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13064 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/specif.ml
+gen-src/decimal.cmx (real: 0.24, user: 0.03, sys: 0.01, mem: 17936 ko)
+gen-src/specif.cmx (real: 0.17, user: 0.02, sys: 0.01, mem: 16332 ko)
+CAMLC -c gen-src/orders.mli
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/cRelationClasses.ml
+gen-src/orders.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 13748 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/compare_dec.ml
+gen-src/cRelationClasses.cmx (real: 0.04, user: 0.02, sys: 0.01, mem: 16836 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/equalities.ml
+gen-src/compare_dec.cmx (real: 0.03, user: 0.01, sys: 0.01, mem: 15536 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/hexadecimal.ml
+gen-src/equalities.cmx (real: 0.03, user: 0.01, sys: 0.01, mem: 15840 ko)
+CAMLC -c gen-src/numeral.mli
+gen-src/numeral.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11900 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/orders.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/orders.cmx (real: 0.04, user: 0.01, sys: 0.01, mem: 16768 ko)
+CAMLC -c gen-src/ordersTac.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ordersTac.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 12464 ko)
+CAMLC -c gen-src/ordersLists.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ordersLists.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11760 ko)
+CAMLC -c gen-src/orderedType0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/orderedType0.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 12108 ko)
+gen-src/hexadecimal.cmx (real: 0.13, user: 0.09, sys: 0.02, mem: 20020 ko)
+CAMLC -c gen-src/nat0.mli
+CAMLC -c gen-src/peanoNat.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/peanoNat.cmi (real: 0.01, user: 0.01, sys:g e0.00n,- smrecm/:n at133640 .kco)m
+i (real: 0.02, user: 0.01, sys: 0.00, mem: 13460 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ordersTac.ml
+CAMLC -c gen-src/ordersFacts.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ordersFacts.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 13444 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ordersLists.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ordersLists.cmx (real: 0.20, user: 0.00, sys: 0.01, mem: 15096 ko)
+CAMLC -c gen-src/mSetInterface.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetInterface.cmi (real: 0.02, user: 0.02, sys: 0.00, mem: 15244 ko)
+CAMLC -c gen-src/mCCompare.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mCCompare.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11644 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/numeral.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ordersTac.cmx (real: 0.27, user: 0.01, sys: 0.01, mem: 15844 ko)
+CAMLC -c gen-src/list0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/list0.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 13404 ko)
+CAMLC -c gen-src/binPosDef.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/numeral.cmx (real: 0.04, user: 0.00, sys: 0.01, mem: 15820 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ordersFacts.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binPosDef.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 13536 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/orderedType0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ordersFacts.cmx (real: 0.02, user: 0.01, sys: 0.01, mem: 16032 ko)
+CAMLC -c gen-src/mSetFacts.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetFacts.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 13748 ko)
+CAMLC -c gen-src/mSetList.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetList.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 15760 ko)
+CAMLC -c gen-src/mCList.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/orderedType0.cmx (real: 0.07, user: 0.01, sys: 0.01, mem: 15860 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/nat0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mCList.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 13612 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/peanoNat.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/nat0.cmx (real: 0.21, user: 0.04, sys: 0.01, mem: 18464 ko)
+CAMLC -c gen-src/binPos.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binPos.cmi (real: 0.01, user: 0.01, sys: 0.00, mem: 14264 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mSetInterface.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/peanoNat.cmx (real: 0.26, user: 0.07, sys: 0.02, mem: 19912 ko)
+CAMLC -c gen-src/mSetDecide.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetDecide.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13776 ko)
+CAMLC -c gen-src/mCOption.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mCOption.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 12200 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCCompare.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetInterface.cmx (real: 0.11, user: 0.05, sys: 0.02, mem: 20324 ko)
+CAMLC -c gen-src/all_Forall.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/all_Forall.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 14992 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/list0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mCCompare.cmx (real: 0.08, user: 0.01, sys: 0.01, mem: 15672 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/binPosDef.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/list0.cmx (real: 0.04, user: 0.03, sys: 0.01, mem: 17796 ko)
+CAMLC -c gen-src/binNat.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binNat.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13444 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mSetFacts.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetFacts.cmx (real: 0.12, user: 0.01, sys: 0.01, mem: 17012 ko)
+gen-src/binPosDef.cmx (real: 0.18, user: 0.13, sys: 0.03, mem: 23892 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mSetList.ml
+CAMLC -c gen-src/mSetProperties.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetProperties.cmi (real: 0.07, user: 0.02, sys: 0.00, mem: 15212 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCList.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetList.cmx (real: 0.28, user: 0.08, sys: 0.02, mem: 21352 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/binPos.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mCList.cmx (real: 0.25, user: 0.01, sys: 0.01, mem: 16712 ko)
+CAMLC -c gen-src/binInt.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binInt.cmi (real: 0.02, user: 0.01, sys: 0.01, mem: 13564 ko)
+CAMLC -c gen-src/ascii.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ascii.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 12228 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mSetDecide.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binPos.cmx (real: 0.19, user: 0.15, sys: 0.03, mem: 25208 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCOption.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetDecide.cmx (real: 0.18g, euns-esrr:c /mC0.01O,p tsiyosn:. cm0.01x, (mreema:l : 17180 ko)
+0.08, user: 0.01, sys: 0.01, mem: 16020 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/binNat.ml
+CAMLC -c gen-src/string0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/string0.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 12236 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mSetProperties.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mSetProperties.cmx (real: 0.10, user: 0.04, sys: 0.01, mem: 19600 ko)
+CAMLC -c gen-src/mCString.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binNat.cmx (real: 0.13, user: 0.10, sys: 0.02, mem: 20796 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/all_Forall.ml
+gen-src/mCString.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 11712 ko)
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/binInt.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/binInt.cmx (real: 0.32, user: 0.12, sys: 0.02, mem: 22784 ko)
+gen-src/all_Forall.cmx (real: 0.33, user: 0.14, sys: 0.02, mem: 25372 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ascii.ml
+CAMLC -c gen-src/basicAst.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/basicAst.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 14404 ko)
+CAMLC -c gen-src/universes0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ascii.cmx (real: 0.06, user: 0.02, sys: 0.01, mem: 16900 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/string0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/universes0.cmi (real: 0.06, user: 0.04, sys: 0.01, mem: 18504 ko)
+CAMLC -c gen-src/environment.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/string0.cmx (real: 0.04, user: 0.02, sys: 0.01, mem: 16504 ko)
+CAMLC -c gen-src/ast0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/environment.cmi (real: 0.02, user: 0.01, sys: 0.01, mem: 14988 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/mCString.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast0.cmi (real: 0.03, user: 0.01, sys: 0.01, mem: 15204 ko)
+CAMLC -c gen-src/astUtils.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/astUtils.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 14040 ko)
+CAMLC -c gen-src/liftSubst.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/liftSubst.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13680 ko)
+CAMLC -c gen-src/univSubst0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/univSubst0.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 14128 ko)
+CAMLC -c gen-src/pretty.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/pretty.cmi (real: 0.01, user: 0.00, sys: 0.01, mem: 15060 ko)
+CAMLC -c gen-src/common0.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/common0.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13492 ko)
+CAMLC -c gen-src/ast_quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast_quoter.cmo (real: 0.06, user: 0.04, sys: 0.01, mem: 22660 ko)
+CAMLC -c gen-src/extractable.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/mCString.cmx (real: 0.24, user: 0.02, sys: 0.01, mem: 16472 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/basicAst.ml
+gen-src/extractable.cmi (real: 0.07, user: 0.00, sys: 0.00, mem: 13580 ko)
+CAMLC -c gen-src/run_extractable.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/run_extractable.cmi (real: 0.01, user: 0.00, sys: 0.00, mem: 13668 ko)
+gen-src/basicAst.cmx (real: 0.05, user: 0.03, sys: 0.01, mem: 18744 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/universes0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/universes0.cmx (real: 0.59, user: 0.41, sys: 0.03, mem: 39160 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/environment.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/environment.cmx (real: 0.16, user: 0.03, sys: 0.01, mem: 19716 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast0.cmx (real: 0.25, user: 0.09, sys: 0.02, mem: 24572 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/astUtils.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/liftSubst.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/astUtils.cmx (real: 0.05, user: 0.04, sys: 0.01, mem: 19608 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/univSubst0.ml
+gen-src/liftSubst.cmx (real: 0.06, user: 0.04, sys: 0.01, mem: 19008 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/common0.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/common0.cmx (real: 0.05, user: 0.02, sys: 0.01, mem: 16420 ko)
+gen-src/univSubst0.cmx (real: 0.05, user: 0.03, sys: 0.01, mem: 18548 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast_quoter.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/pretty.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/pretty.cmx (real: 0.11, user: 0.08, sys: 0.01, mem: 22020 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/extractable.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/extractable.cmx (real: 0.08, user: 0.04, sys: 0.01, mem: 18780 ko)
+gen-src/ast_quoter.cmx (real: 0.20, user: 0.10, sys: 0.02, mem: 27252 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast_denoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast_denoter.cmx (real: 0.12, user: 0.07, sys: 0.02, mem: 27180 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/run_extractable.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/run_extractable.cmx (real: 0.13, user: 0.10, sys: 0.02, mem: 30484 ko)
+CAMLOPT -pack -o gen-src/metacoq_template_plugin.cmx
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmx (real: 0.15, user: 0.09, sys: 0.04, mem: 31648 ko)
+CAMLOPT -a -o gen-src/metacoq_template_plugin.cmxa
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmxa (real: 0.03, user: 0.01, sys: 0.02, mem: 13896 ko)
+CAMLOPT -shared -o gen-src/metacoq_template_plugin.cmxs
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmxs (real: 0.13, user: 0.09, sys: 0.03, mem: 18540 ko)
+COQC theories/ExtractableLoader.v
+theories/ExtractableLoader.vo (real: 0.09, user: 0.05, sys: 0.03, mem: 62540 ko)
+cp gen-src/metacoq_template_plugin.cm* build/
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -C checker
+make -C pcuic
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+cat metacoq-config > _CoqProject
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+cat metacoq-config > _CoqProject
+cat _CoqProject.in >> _CoqProject
+cat _CoqProject.in >> _CoqProject
+coq_makefile -f _CoqProject -o Makefile.pcuic
+coq_makefile -f _CoqProject -o Makefile.coq
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.coq
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.pcuic
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+COQDEP VFILES
+COQDEP VFILES
+COQC theories/Reflect.v
+COQC theories/PCUICAst.v
+theories/PCUICAst.vo (real: 0.99, user: 0.75, sys: 0.23, mem: 477372 ko)
+COQC theories/PCUICSize.v
+theories/PCUICSize.vo (real: 1.73, user: 1.44, sys: 0.28, mem: 503484 ko)
+COQC theories/PCUICInduction.v
+theories/PCUICInduction.vo (real: 1.19, user: 0.89, sys: 0.29, mem: 481312 ko)
+COQC theories/PCUICCheckerCompleteness.v
+theories/PCUICCheckerCompleteness.vo (real: 0.85, user: 0.60, sys: 0.24, mem: 433064 ko)
+COQC theories/TemplateToPCUIC.v
+theories/Reflect.vo (real: 5.26, user: 4.53, sys: 0.70, mem: 552364 ko)
+COQC theories/WeakeningEnv.v
+theories/TemplateToPCUIC.vo (real: 0.98, user: 0.69, sys: 0.27, mem: 482472 ko)
+COQC theories/PCUICAstUtils.v
+theories/WeakeningEnv.vo (real: 3.33, user: 2.80, sys: 0.50, mem: 512292 ko)
+COQC theories/Checker.v
+theories/PCUICAstUtils.vo (real: 3.13, user: 2.78, sys: 0.32, mem: 543424 ko)
+COQC theories/PCUICReflect.v
+theories/Checker.vo (real: 4.71, user: 4.00, sys: 0.69, mem: 555748 ko)
+COQC theories/WcbvEval.v
+theories/PCUICReflect.vo (real: 4.46, user: 4.11, sys: 0.32, mem: 543956 ko)
+COQC theories/PCUICLiftSubst.v
+theories/WcbvEval.vo (real: 5.56, user: 4.94, sys: 0.59, mem: 533768 ko)
+COQC theories/Retyping.v
+theories/Retyping.vo (real: 1.16, user: 0.90, sys: 0.26, mem: 524140 ko)
+COQC theories/Normal.v
+theories/Normal.vo (real: 1.10, user: 0.84, sys: 0.25, mem: 497360 ko)
+COQC theories/Generation.v
+theories/Generation.vo (real: 1.95, user: 1.69, sys: 0.25, mem: 514692 ko)
+COQC theories/Closed.v
+File "./theories/Closed.v", line 299, characters 2-42:
+Warning:
+Automatically inlined signature for type All_local_env. Use [Derive Signature for All_local_env.] to avoid this.
+theories/PCUICLiftSubst.vo (real: 27.51, user: 26.28, sys: 0.94, mem: 597996 ko)
+COQC theories/PCUICToTemplate.v
+theories/PCUICToTemplate.vo (real: 1.33, user: 1.04, sys: 0.28, mem: 527408 ko)
+COQC theories/PCUICUtils.v
+theories/PCUICUtils.vo (real: 1.81, user: 1.47, sys: 0.33, mem: 527440 ko)
+COQC theories/PCUICUnivSubst.v
+theories/Closed.vo (real: 22.03, user: 21.55, sys: 0.36, mem: 603616 ko)
+COQC theories/Weakening.v
+theories/PCUICUnivSubst.vo (real: 3.67, user: 3.33, sys: 0.32, mem: 533884 ko)
+COQC theories/PCUICEquality.v
+theories/Weakening.vo (real: 16.17, user: 15.64, sys: 0.43, mem: 579100 ko)
+COQC theories/Substitution.v
+theories/PCUICEquality.vo (real: 40.79, user: 39.04, sys: 1.52, mem: 790088 ko)
+COQC theories/PCUICPosition.v
+theories/Substitution.vo (real: 29.09, user: 27.93, sys: 0.98, mem: 621392 ko)
+COQC theories/All.v
+theories/All.vo (real: 1.65, user: 1.29, sys: 0.34, mem: 545736 ko)
+./update_plugin.sh
+Renaming extracted files
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -C examples
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/examples'
+coq_makefile -f _CoqProject -o Makefile.coq
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.coq pretty-timed
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/examples'
+COQDEP VFILES
+COQC demo.v
+demo.vo (real: 1.94, user: 1.56, sys: 0.36, mem: 527740 ko)
+COQC add_constructor.v
+add_constructor.vo (real: 1.44, user: 1.13, sys: 0.30, mem: 524144 ko)
+COQC tauto.v
+tauto.vo (real: 20.77, user: 19.93, sys: 0.72, mem: 581920 ko)
+ Time | Peak Mem | File Name
+--------------------------------------------
+0m22.62s | 581920 ko | Total Time / Peak Mem
+--------------------------------------------
+0m19.93s | 581920 ko | tauto.vo
+0m01.56s | 527740 ko | demo.vo
+0m01.13s | 524144 ko | add_constructor.vo
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/examples'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/examples'
+theories/PCUICPosition.vo (real: 29.43, user: 28.24, sys: 1.03, mem: 723216 ko)
+COQC theories/PCUICTyping.v
+Axioms:
+ind_guard : mutual_inductive_body -> bool
+fix_guard : mfixpoint term -> bool
+cofix_guard : mfixpoint term -> bool
+theories/PCUICTyping.vo (real: 44.26, user: 42.82, sys: 1.17, mem: 727688 ko)
+COQC theories/PCUICReduction.v
+COQC theories/PCUICWeakeningEnv.v
+theories/PCUICWeakeningEnv.vo (real: 5.17, user: 4.38, sys: 0.74, mem: 571076 ko)
+COQC theories/PCUICGeneration.v
+theories/PCUICReduction.vo (real: 6.98, user: 6.16, sys: 0.78, mem: 583116 ko)
+COQC theories/PCUICNormal.v
+theories/PCUICNormal.vo (real: 1.72, user: 1.37, sys: 0.33, mem: 551200 ko)
+COQC theories/PCUICNameless.v
+theories/PCUICGeneration.vo (real: 3.72, user: 3.34, sys: 0.36, mem: 586388 ko)
+COQC theories/PCUICMetaTheory.v
+theories/PCUICMetaTheory.vo (real: 1.26, user: 0.96, sys: 0.29, mem: 546928 ko)
+COQC theories/PCUICChecker.v
+theories/PCUICChecker.vo (real: 1.41, user: 1.11, sys: 0.29, mem: 549776 ko)
+COQC theories/PCUICToTemplateCorrectness.v
+theories/PCUICToTemplateCorrectness.vo (real: 8.69, user: 7.84, sys: 0.79, mem: 608576 ko)
+COQC theories/PCUICCumulativity.v
+theories/PCUICCumulativity.vo (real: 2.17, user: 1.85, sys: 0.30, mem: 561876 ko)
+COQC theories/PCUICClosed.v
+theories/PCUICNameless.vo (real: 15.98, user: 14.98, sys: 0.89, mem: 623196 ko)
+COQC theories/PCUICPretty.v
+theories/PCUICPretty.vo (real: 1.64, user: 1.30, sys: 0.33, mem: 551364 ko)
+theories/PCUICClosed.vo (real: 24.65, user: 23.99, sys: 0.51, mem: 654592 ko)
+COQC theories/PCUICWeakening.v
+COQC theories/PCUICCSubst.v
+theories/PCUICCSubst.vo (real: 1.93, user: 1.55, sys: 0.36, mem: 562424 ko)
+COQC theories/PCUICWcbvEval.v
+theories/PCUICWcbvEval.vo (real: 12.05, user: 11.54, sys: 0.43, mem: 589944 ko)
+theories/PCUICWeakening.vo (real: 24.20, user: 23.42, sys: 0.64, mem: 685852 ko)
+COQC theories/PCUICSigmaCalculus.v
+COQC theories/PCUICUnivSubstitution.v
+theories/PCUICUnivSubstitution.vo (real: 10.93, user: 10.41, sys: 0.45, mem: 621644 ko)
+theories/PCUICSigmaCalculus.vo (real: 39.32, user: 38.12, sys: 0.96, mem: 657100 ko)
+COQC theories/PCUICSubstitution.v
+theories/PCUICSubstitution.vo (real: 26.54, user: 25.65, sys: 0.68, mem: 673140 ko)
+COQC theories/PCUICParallelReduction.v
+COQC theories/TemplateToPCUICCorrectness.v
+theories/TemplateToPCUICCorrectness.vo (real: 13.77, user: 13.16, sys: 0.52, mem: 641024 ko)
+theories/PCUICParallelReduction.vo (real: 29.43, user: 28.26, sys: 0.87, mem: 779308 ko)
+COQC theories/PCUICParallelReductionConfluence.v
+Axioms:
+ind_guard : mutual_inductive_body → bool
+FunctionalExtensionality.functional_extensionality_dep
+ : ∀ (A : Type) (B : A → Type) (f g : ∀ x : A, B x),
+ (∀ x : A, f x = g x) → f = g
+fix_guard : mfixpoint term → bool
+cofix_guard : mfixpoint term → bool
+theories/PCUICParallelReductionConfluence.vo (real: 96.83, user: 94.58, sys: 1.69, mem: 849824 ko)
+COQC theories/PCUICConfluence.v
+theories/PCUICConfluence.vo (real: 35.96, user: 34.44, sys: 1.27, mem: 742788 ko)
+COQC theories/PCUICContextConversion.v
+theories/PCUICContextConversion.vo (real: 9.28, user: 8.74, sys: 0.48, mem: 629108 ko)
+COQC theories/PCUICConversion.v
+File "./theories/PCUICConversion.v", line 2097, characters 4-13:
+Warning:
+Automatically inlined signature for type clos_refl_trans_1n. Use [Derive Signature for clos_refl_trans_1n.] to avoid this.
+File "./theories/PCUICConversion.v", line 2234, characters 4-37:
+Warning: Cannot remove s'. [cannot-remove-as-expected,tactics]
+theories/PCUICConversion.vo (real: 30.61, user: 29.65, sys: 0.79, mem: 750296 ko)
+COQC theories/PCUICInversion.v
+COQC theories/PCUICRetyping.v
+theories/PCUICRetyping.vo (real: 1.94, user: 1.58, sys: 0.34, mem: 589768 ko)
+theories/PCUICInversion.vo (real: 10.19, user: 9.35, sys: 0.77, mem: 622488 ko)
+COQC theories/PCUICCtxShape.v
+theories/PCUICCtxShape.vo (real: 2.23, user: 1.75, sys: 0.38, mem: 598288 ko)
+COQC theories/PCUICContexts.v
+theories/PCUICContexts.vo (real: 6.83, user: 6.33, sys: 0.45, mem: 615568 ko)
+COQC theories/PCUICArities.v
+theories/PCUICArities.vo (real: 8.61, user: 7.75, sys: 0.80, mem: 625664 ko)
+COQC theories/PCUICSpine.v
+theories/PCUICSpine.vo (real: 23.61, user: 22.85, sys: 0.63, mem: 706592 ko)
+COQC theories/PCUICInductives.v
+theories/PCUICInductives.vo (real: 19.89, user: 19.08, sys: 0.66, mem: 683776 ko)
+COQC theories/PCUICValidity.v
+theories/PCUICValidity.vo (real: 4.40, user: 3.99, sys: 0.36, mem: 624912 ko)
+COQC theories/PCUICAlpha.v
+COQC theories/PCUICInductiveInversion.v
+theories/PCUICAlpha.vo (real: 10.12, user: 9.58, sys: 0.47, mem: 684644 ko)
+theories/PCUICInductiveInversion.vo (real: 10.95, user: 10.39, sys: 0.48, mem: 661964 ko)
+COQC theories/PCUICSR.v
+Axioms:
+todounivs : forall A : Type, A
+todoeta : forall A : Type, A
+ind_guard : mutual_inductive_body -> bool
+FunctionalExtensionality.functional_extensionality_dep
+ : forall (A : Type) (B : A -> Type) (f g : forall x : A, B x),
+ (forall x : A, f x = g x) -> f = g
+fix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ fix_guard mfix ->
+ fix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+fix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ fix_guard mfix ->
+ red1 Σ Γ (tFix mfix idx) (tFix mfix' idx) -> fix_guard mfix'
+fix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard : mfixpoint term -> bool
+cofix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ cofix_guard mfix ->
+ cofix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+cofix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ cofix_guard mfix ->
+ red1 Σ Γ (tCoFix mfix idx) (tCoFix mfix' idx) -> cofix_guard mfix'
+cofix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard : mfixpoint term -> bool
+theories/PCUICSR.vo (real: 82.63, user: 80.36, sys: 1.84, mem: 975764 ko)
+COQC theories/PCUICPrincipality.v
+Axioms:
+todounivs : forall A : Type@{todounivs.u0}, A
+todoeta : forall A : Type@{todoeta.u0}, A
+ind_guard : mutual_inductive_body -> bool
+FunctionalExtensionality.functional_extensionality_dep
+ : forall
+ (A : Type@{FunctionalExtensionality.functional_extensionality_dep.u0})
+ (B : A ->
+ Type@{FunctionalExtensionality.functional_extensionality_dep.u1})
+ (f g : forall x : A, B x), (forall x : A, f x = g x) -> f = g
+PCUICUnivSubstitution.fix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ fix_guard mfix ->
+ fix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+fix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ fix_guard mfix ->
+ red1 Σ Γ (tFix mfix idx) (tFix mfix' idx) -> fix_guard mfix'
+fix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ fix_guard mfix -> tFix mfix idx ≡ tFix mfix' idx -> fix_guard mfix'
+fix_guard : mfixpoint term -> bool
+PCUICUnivSubstitution.cofix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ cofix_guard mfix ->
+ cofix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+cofix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ cofix_guard mfix ->
+ red1 Σ Γ (tCoFix mfix idx) (tCoFix mfix' idx) -> cofix_guard mfix'
+cofix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := #|mfix| + k in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ cofix_guard mfix ->
+ tCoFix mfix idx ≡ tCoFix mfix' idx -> cofix_guard mfix'
+cofix_guard : mfixpoint term -> bool
+theories/PCUICPrincipality.vo (real: 27.66, user: 26.11, sys: 1.08, mem: 959132 ko)
+COQC theories/PCUICSafeLemmata.v
+theories/PCUICSafeLemmata.vo (real: 7.45, user: 6.54, sys: 0.85, mem: 667924 ko)
+COQC theories/PCUICSN.v
+COQC theories/PCUICElimination.v
+theories/PCUICSN.vo (real: 2.47, user: 2.12, sys: 0.33, mem: 630488 ko)
+theories/PCUICElimination.vo (real: 8.12, user: 7.64, sys: 0.44, mem: 646256 ko)
+# echo "All done, moving extraction files!"
+# ./clean_extraction.sh
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -C safechecker
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+cat metacoq-config > _CoqProject
+cat _CoqProject.in >> _CoqProject
+coq_makefile -f _CoqProject -o Makefile.safechecker
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.safechecker
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+COQDEP VFILES
+COQC theories/PCUICSafeReduce.v
+theories/PCUICSafeReduce.vo (real: 121.19, user: 119.92, sys: 0.74, mem: 1136588 ko)
+COQC theories/PCUICSafeConversion.v
+theories/PCUICSafeConversion.vo (real: 140.66, user: 139.40, sys: 0.64, mem: 1007764 ko)
+COQC theories/PCUICSafeChecker.v
+File "./theories/PCUICSafeChecker.v", line 1035, characters 4-15:
+Warning:
+Automatically inlined signature for type Forall. Use [Derive Signature for Forall.] to avoid this.
+File "./theories/PCUICSafeChecker.v", line 1039, characters 4-19:
+Warning:
+Automatically inlined signature for type Forall. Use [Derive Signature for Forall.] to avoid this.
+Axioms:
+todounivs : forall A : Type, A
+todoeta : forall A : Type, A
+todo : string -> forall A : Type, A
+proof_irrelevance : forall (P : Prop) (p1 p2 : P), p1 = p2
+normalisation'
+ : forall (cf : checker_flags) (Σ : global_env_ext) (Γ : context) (t : term),
+ wf Σ -> wellformed Σ Γ t -> Acc (cored Σ.1 Γ) t
+ind_guard : mutual_inductive_body -> bool
+functional_extensionality_dep
+ : forall (A : Type) (B : A -> Type) (f g : forall x : A, B x),
+ (forall x : A, f x = g x) -> f = g
+PCUICUnivSubstitution.fix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ fix_guard mfix ->
+ fix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+fix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ fix_guard mfix ->
+ red1 Σ Γ (tFix mfix idx) (tFix mfix' idx) -> fix_guard mfix'
+fix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ fix_guard mfix -> tFix mfix idx ≡ tFix mfix' idx -> fix_guard mfix'
+fix_guard : mfixpoint term -> bool
+PCUICUnivSubstitution.cofix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ cofix_guard mfix ->
+ cofix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+cofix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ cofix_guard mfix ->
+ red1 Σ Γ (tCoFix mfix idx) (tCoFix mfix' idx) -> cofix_guard mfix'
+cofix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ cofix_guard mfix ->
+ tCoFix mfix idx ≡ tCoFix mfix' idx -> cofix_guard mfix'
+cofix_guard : mfixpoint term -> bool
+theories/PCUICSafeChecker.vo (real: 56.94, user: 56.09, sys: 0.61, mem: 958816 ko)
+COQC theories/SafeTemplateChecker.v
+COQC theories/PCUICSafeRetyping.v
+theories/SafeTemplateChecker.vo (real: 2.78, user: 2.42, sys: 0.35, mem: 703592 ko)
+COQC theories/Extraction.v
+theories/PCUICSafeRetyping.vo (real: 6.81, user: 6.30, sys: 0.48, mem: 733700 ko)
+theories/Extraction.vo (real: 4.93, user: 4.47, sys: 0.43, mem: 749140 ko)
+echo "Done extracting the safe checker, moving extraction files!"
+Done extracting the safe checker, moving extraction files!
+./clean_extraction.sh
+Cleaning result of extraction
+Moving All_Forall.ml to all_Forall.ml
+Moving All_Forall.mli to all_Forall.mli
+Moving Ascii.ml to ascii.ml
+Moving Ascii.mli to ascii.mli
+Moving Ast0.ml to ast0.ml
+Moving Ast0.mli to ast0.mli
+Moving BasicAst.ml to basicAst.ml
+Moving BasicAst.mli to basicAst.mli
+Moving Basics.ml to basics.ml
+Moving Basics.mli to basics.mli
+Moving BinInt.ml to binInt.ml
+Moving BinInt.mli to binInt.mli
+Moving BinNat.ml to binNat.ml
+Moving BinNat.mli to binNat.mli
+Moving BinNums.ml to binNums.ml
+Moving BinNums.mli to binNums.mli
+Moving BinPos.ml to binPos.ml
+Moving BinPos.mli to binPos.mli
+Moving Bool.ml to bool.ml
+Moving Bool.mli to bool.mli
+Moving Byte.ml to byte.ml
+Moving Byte.mli to byte.mli
+Moving Classes0.ml to classes0.ml
+Moving Classes0.mli to classes0.mli
+Moving Compare_dec.ml to compare_dec.ml
+Moving Compare_dec.mli to compare_dec.mli
+Moving Datatypes.ml to datatypes.ml
+Moving Datatypes.mli to datatypes.mli
+Moving Environment.ml to environment.ml
+Moving Environment.mli to environment.mli
+Moving EqDecInstances.ml to eqDecInstances.ml
+Moving EqDecInstances.mli to eqDecInstances.mli
+Moving EqdepFacts.ml to eqdepFacts.ml
+Moving EqdepFacts.mli to eqdepFacts.mli
+Moving Equalities.ml to equalities.ml
+Moving Equalities.mli to equalities.mli
+Moving List0.ml to list0.ml
+Moving List0.mli to list0.mli
+Moving MCCompare.ml to mCCompare.ml
+Moving MCCompare.mli to mCCompare.mli
+Moving MCList.ml to mCList.ml
+Moving MCList.mli to mCList.mli
+Moving MCOption.ml to mCOption.ml
+Moving MCOption.mli to mCOption.mli
+Moving MCProd.ml to mCProd.ml
+Moving MCProd.mli to mCProd.mli
+Moving MCString.ml to mCString.ml
+Moving MCString.mli to mCString.mli
+Moving MSetDecide.ml to mSetDecide.ml
+Moving MSetDecide.mli to mSetDecide.mli
+Moving MSetFacts.ml to mSetFacts.ml
+Moving MSetFacts.mli to mSetFacts.mli
+Moving MSetInterface.ml to mSetInterface.ml
+Moving MSetInterface.mli to mSetInterface.mli
+Moving MSetList.ml to mSetList.ml
+Moving MSetList.mli to mSetList.mli
+Moving MSetProperties.ml to mSetProperties.ml
+Moving MSetProperties.mli to mSetProperties.mli
+Moving MSetWeakList.ml to mSetWeakList.ml
+Moving MSetWeakList.mli to mSetWeakList.mli
+Moving Nat0.ml to nat0.ml
+Moving Nat0.mli to nat0.mli
+Moving Orders.ml to orders.ml
+Moving Orders.mli to orders.mli
+Moving OrdersFacts.ml to ordersFacts.ml
+Moving OrdersFacts.mli to ordersFacts.mli
+Moving OrdersLists.ml to ordersLists.ml
+Moving OrdersLists.mli to ordersLists.mli
+Moving OrdersTac.ml to ordersTac.ml
+Moving OrdersTac.mli to ordersTac.mli
+Moving PCUICAst.ml to pCUICAst.ml
+Moving PCUICAst.mli to pCUICAst.mli
+Moving PCUICAstUtils.ml to pCUICAstUtils.ml
+Moving PCUICAstUtils.mli to pCUICAstUtils.mli
+Moving PCUICChecker.ml to pCUICChecker.ml
+Moving PCUICChecker.mli to pCUICChecker.mli
+Moving PCUICCumulativity.ml to pCUICCumulativity.ml
+Moving PCUICCumulativity.mli to pCUICCumulativity.mli
+Moving PCUICEquality.ml to pCUICEquality.ml
+Moving PCUICEquality.mli to pCUICEquality.mli
+Moving PCUICLiftSubst.ml to pCUICLiftSubst.ml
+Moving PCUICLiftSubst.mli to pCUICLiftSubst.mli
+Moving PCUICNormal.ml to pCUICNormal.ml
+Moving PCUICNormal.mli to pCUICNormal.mli
+Moving PCUICPosition.ml to pCUICPosition.ml
+Moving PCUICPosition.mli to pCUICPosition.mli
+Moving PCUICPretty.ml to pCUICPretty.ml
+Moving PCUICPretty.mli to pCUICPretty.mli
+Moving PCUICReflect.ml to pCUICReflect.ml
+Moving PCUICReflect.mli to pCUICReflect.mli
+Moving PCUICSafeChecker.ml to pCUICSafeChecker.ml
+Moving PCUICSafeChecker.mli to pCUICSafeChecker.mli
+Moving PCUICSafeConversion.ml to pCUICSafeConversion.ml
+Moving PCUICSafeConversion.mli to pCUICSafeConversion.mli
+Moving PCUICSafeLemmata.ml to pCUICSafeLemmata.ml
+Moving PCUICSafeLemmata.mli to pCUICSafeLemmata.mli
+Moving PCUICSafeReduce.ml to pCUICSafeReduce.ml
+Moving PCUICSafeReduce.mli to pCUICSafeReduce.mli
+Moving PCUICTyping.ml to pCUICTyping.ml
+Moving PCUICTyping.mli to pCUICTyping.mli
+Moving PCUICUnivSubst.ml to pCUICUnivSubst.ml
+Moving PCUICUnivSubst.mli to pCUICUnivSubst.mli
+Moving PeanoNat.ml to peanoNat.ml
+Moving PeanoNat.mli to peanoNat.mli
+Moving SafeTemplateChecker.ml to safeTemplateChecker.ml
+Moving SafeTemplateChecker.mli to safeTemplateChecker.mli
+Moving Specif.ml to specif.ml
+Moving Specif.mli to specif.mli
+Moving String0.ml to string0.ml
+Moving String0.mli to string0.mli
+Moving TemplateToPCUIC.ml to templateToPCUIC.ml
+Moving TemplateToPCUIC.mli to templateToPCUIC.mli
+Moving Typing0.ml to typing0.ml
+Moving Typing0.mli to typing0.mli
+Moving UnivSubst0.ml to univSubst0.ml
+Moving UnivSubst0.mli to univSubst0.mli
+Moving Universes0.ml to universes0.ml
+Moving Universes0.mli to universes0.mli
+Moving config0.ml to config0.ml
+mv: 'config0.ml' and 'config0.ml' are the same file
+Moving config0.mli to config0.mli
+mv: 'config0.mli' and 'config0.mli' are the same file
+Moving g_metacoq_safechecker.ml to g_metacoq_safechecker.ml
+mv: 'g_metacoq_safechecker.ml' and 'g_metacoq_safechecker.ml' are the same file
+Moving g_metacoq_safechecker.mlg to g_metacoq_safechecker.mlg
+mv: 'g_metacoq_safechecker.mlg' and 'g_metacoq_safechecker.mlg' are the same file
+Moving metacoq_safechecker_plugin.mlpack to metacoq_safechecker_plugin.mlpack
+mv: 'metacoq_safechecker_plugin.mlpack' and 'metacoq_safechecker_plugin.mlpack' are the same file
+Moving monad_utils.ml to monad_utils.ml
+mv: 'monad_utils.ml' and 'monad_utils.ml' are the same file
+Moving monad_utils.mli to monad_utils.mli
+mv: 'monad_utils.mli' and 'monad_utils.mli' are the same file
+Moving ssrbool.ml to ssrbool.ml
+mv: 'ssrbool.ml' and 'ssrbool.ml' are the same file
+Moving ssrbool.mli to ssrbool.mli
+mv: 'ssrbool.mli' and 'ssrbool.mli' are the same file
+Moving uGraph0.ml to uGraph0.ml
+mv: 'uGraph0.ml' and 'uGraph0.ml' are the same file
+Moving uGraph0.mli to uGraph0.mli
+mv: 'uGraph0.mli' and 'uGraph0.mli' are the same file
+Moving utils.ml to utils.ml
+mv: 'utils.ml' and 'utils.ml' are the same file
+Moving utils.mli to utils.mli
+mv: 'utils.mli' and 'utils.mli' are the same file
+Moving wGraph.ml to wGraph.ml
+mv: 'wGraph.ml' and 'wGraph.ml' are the same file
+Moving wGraph.mli to wGraph.mli
+mv: 'wGraph.mli' and 'wGraph.mli' are the same file
+Removing: src/all_Forall.ml src/all_Forall.mli src/ascii.ml src/ascii.mli src/ast0.ml src/ast0.mli src/ast_denoter.ml src/ast_quoter.ml src/astUtils.ml src/astUtils.mli src/basicAst.ml src/basicAst.mli src/basics.ml src/basics.mli src/binInt.ml src/binInt.mli src/binNat.ml src/binNat.mli src/binNums.ml src/binNums.mli src/binPosDef.ml src/binPosDef.mli src/binPos.ml src/binPos.mli src/bool.ml src/bool.mli src/common0.ml src/common0.mli src/compare_dec.ml src/compare_dec.mli src/config0.ml src/config0.mli src/cRelationClasses.ml src/cRelationClasses.mli src/datatypes.ml src/datatypes.mli src/decimal.ml src/decimal.mli src/denoter.ml src/environment.ml src/environment.mli src/equalities.ml src/equalities.mli src/extractable.ml src/extractable.mli src/hexadecimal.ml src/hexadecimal.mli src/liftSubst.ml src/liftSubst.mli src/list0.ml src/list0.mli src/logic0.ml src/logic0.mli src/mCPrelude.mli src/mCPrelude.ml src/mCCompare.ml src/mCCompare.mli src/mCList.ml src/mCList.mli src/mCOption.ml src/mCOption.mli src/mCProd.ml src/mCProd.mli src/mCRelations.ml src/mCRelations.mli src/mCString.ml src/mCString.mli src/mSetDecide.ml src/mSetDecide.mli src/mSetFacts.ml src/mSetFacts.mli src/mSetInterface.ml src/mSetInterface.mli src/mSetList.ml src/mSetList.mli src/mSetProperties.ml src/mSetProperties.mli src/nat0.ml src/nat0.mli src/numeral.ml src/numeral.mli src/orderedType0.ml src/orderedType0.mli src/ordersFacts.ml src/ordersFacts.mli src/ordersLists.ml src/ordersLists.mli src/orders.ml src/orders.mli src/ordersTac.ml src/ordersTac.mli src/peanoNat.ml src/peanoNat.mli src/plugin_core.ml src/plugin_core.mli src/pretty.ml src/pretty.mli src/reification.ml src/quoter.ml src/run_extractable.ml src/run_extractable.mli src/specif.ml src/specif.mli src/string0.ml src/string0.mli src/tm_util.ml src/universes0.ml src/universes0.mli src/univSubst0.ml src/univSubst0.mli
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.plugin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+COQDEP VFILES
+CAMLDEP src/safeTemplateChecker.mli
+CAMLDEP src/pCUICSafeChecker.mli
+CAMLDEP src/pCUICSafeConversion.mli
+CAMLDEP src/pCUICSafeReduce.mli
+CAMLDEP src/pCUICPretty.mli
+CAMLDEP src/pCUICChecker.mli
+CAMLDEP src/templateToPCUIC.mli
+CAMLDEP src/pCUICSafeLemmata.mli
+CAMLDEP src/pCUICNormal.mli
+CAMLDEP src/pCUICCumulativity.mli
+CAMLDEP src/pCUICPosition.mli
+CAMLDEP src/pCUICUnivSubst.mli
+CAMLDEP src/pCUICTyping.mli
+CAMLDEP src/pCUICEquality.mli
+CAMLDEP src/pCUICReflect.mli
+CAMLDEP src/eqDecInstances.mli
+CAMLDEP src/pCUICLiftSubst.mli
+CAMLDEP src/pCUICAstUtils.mli
+CAMLDEP src/pCUICAst.mli
+CAMLDEP src/typing0.mli
+CAMLDEP src/wGraph.mli
+CAMLDEP src/uGraph0.mli
+CAMLDEP src/utils.mli
+CAMLDEP src/monad_utils.mli
+CAMLDEP src/ssrbool.mli
+CAMLDEP src/eqdepFacts.mli
+CAMLDEP src/mSetWeakList.mli
+CAMLDEP src/classes0.mli
+OCAMLLIBDEP src/metacoq_safechecker_plugin.mlpack
+CAMLDEP src/safeTemplateChecker.ml
+CAMLDEP src/pCUICSafeChecker.ml
+CAMLDEP src/pCUICSafeConversion.ml
+CAMLDEP src/pCUICSafeReduce.ml
+CAMLDEP src/pCUICPretty.ml
+CAMLDEP src/pCUICChecker.ml
+CAMLDEP src/templateToPCUIC.ml
+CAMLDEP src/pCUICSafeLemmata.ml
+CAMLDEP src/pCUICNormal.ml
+CAMLDEP src/pCUICPosition.ml
+CAMLDEP src/pCUICCumulativity.ml
+CAMLDEP src/pCUICUnivSubst.ml
+CAMLDEP src/pCUICTyping.ml
+CAMLDEP src/pCUICEquality.ml
+CAMLDEP src/pCUICReflect.ml
+CAMLDEP src/eqDecInstances.ml
+CAMLDEP src/pCUICLiftSubst.ml
+CAMLDEP src/pCUICAstUtils.ml
+CAMLDEP src/pCUICAst.ml
+CAMLDEP src/typing0.ml
+CAMLDEP src/wGraph.ml
+CAMLDEP src/uGraph0.ml
+CAMLDEP src/utils.ml
+CAMLDEP src/monad_utils.ml
+CAMLDEP src/ssrbool.ml
+CAMLDEP src/eqdepFacts.ml
+CAMLDEP src/classes0.ml
+CAMLDEP src/mSetWeakList.ml
+CAMLDEP src/g_metacoq_safechecker.ml
+CAMLC -c src/monad_utils.mli
+CAMLC -c src/mSetWeakList.mli
+src/monad_utils.cmi (real: 0.10, user: 0.03, sys: 0.01, mem: 19196 ko)
+CAMLC -c src/eqdepFacts.mli
+src/mSetWeakList.cmi (real: 0.10, user: 0.03, sys: 0.01, mem: 20008 ko)
+CAMLC -c src/utils.mli
+src/utils.cmi (real: src/eqdep0.04Fac,t s.ucsmie r(:re al:0.03 , sys: 0.01, mem: 19340 ko)
+0.04, user: 0.03, sys: 0.01, mem: 19268 ko)
+CAMLC -c src/ssrbool.mli
+CAMLC -c src/typing0.mli
+src/typing0.cmi (real: 0.04, user: 0.02, sys: 0.01, mem: 20364 ko)
+CAMLC -c src/classes0.mli
+src/ssrbool.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 19332 ko)
+CAMLC -c src/pCUICAst.mli
+src/classes0.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 19328 ko)
+CAMLC -c src/pCUICNormal.mli
+src/pCUICAst.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 21440 ko)
+CAMLC -c src/pCUICCumulativity.mli
+src/pCUICNormal.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19372 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/monad_utils.ml
+src/pCUICCumulativity.cmi (real: 0.03, user: 0.02, sys: 0.01, mem: 19220 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/mSetWeakList.ml
+src/monad_utils.cmx (real: 0.05, user: 0.03, sys: 0.01, mem: 21960 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/eqdepFacts.ml
+src/mSetWeakList.cmx (real: 0.07, user: 0.05, sys: 0.01, mem: 25168 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/utils.ml
+src/eqdepFacts.cmx (real: 0.04, user: 0.02, sys: 0.02, mem: 22016 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/ssrbool.ml
+src/utils.cmx (real: 0.05, user: 0.03, sys: 0.01, mem: 22096 ko)
+CAMLC -c src/wGraph.mli
+src/ssrbool.cmx (real: 0.04, user: 0.02, sys: 0.01, mem: 22104 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/typing0.ml
+src/wGraph.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 22812 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/classes0.ml
+src/typing0.cmx (real: 0.07, user: 0.04, sys: 0.02, mem: 24164 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICAst.ml
+src/classes0.cmx (real: 0.04, user: 0.03, sys: 0.01, mem: 22056 ko)
+CAMLC -c src/pCUICAstUtils.mli
+src/pCUICAstUtils.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20292 ko)
+CAMLC -c src/pCUICUnivSubst.mli
+src/pCUICAst.cmx (real: 0.08, user: 0.05, sys: 0.02, mem: 26084 ko)
+CAMLC -c src/pCUICLiftSubst.mli
+src/pCUICUnivSubst.cmi (real: 0.04, user: 0.04, sys: 0.00, mem: 20452 ko)
+CAMLC -c src/eqDecInstances.mli
+src/pCUICLiftSubst.cmi (real: 0.04, user: 0.02, sys: 0.01, mem: 20432 ko)
+CAMLC -c src/pCUICReflect.mli
+src/eqDecInstances.cmi (real: 0.03, user: 0.02, sys: 0.01, mem: 19260 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICNormal.ml
+src/pCUICReflect.cmi (real: 0.04, user: 0.02, sys: 0.01, mem: 20232 ko)
+CAMLC -c src/pCUICPosition.mli
+src/pCUICNormal.cmx (real: 0.04, user: 0.03, sys: 0.01, mem: 22004 ko)
+CAMLC -c src/templateToPCUIC.mli
+src/pCUICPosition.cmi (real: 0.04, user: 0.02, sys: 0.01, mem: 20460 ko)
+CAMLC -c src/pCUICSafeLemmata.mli
+src/pCUICSafeLemmata.cmi (real: 0.03, user: 0.02, sys: 0.01, mem: 19172 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICCumulativity.ml
+src/templateToPCUIC.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 20348 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/wGraph.ml
+src/pCUICCumulativity.cmx (real: 0.04, user: 0.03, sys: 0.01, mem: 22036 ko)
+CAMLC -c src/uGraph0.mli
+src/uGraph0.cmi (real: 0.07, user: 0.05, sys: 0.01, mem: 24772 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICAstUtils.ml
+src/wGraph.cmx (real: 0.14, user: 0.12, sys: 0.02, mem: 31828 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICUnivSubst.ml
+src/pCUICAstUtils.cmx (real: 0.08, user: 0.06, sys: 0.02, mem: 25948 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICLiftSubst.ml
+src/pCUICUnivSubst.cmx (real: 0.06, user: 0.04, sys: 0.01, mem: 25096 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/eqDecInstances.ml
+src/eqDecInstances.cmx (real: 0.05, user: 0.03, sys: 0.02, mem: 22024 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICReflect.ml
+src/pCUICLiftSubst.cmx (real: 0.08, user: 0.06, sys: 0.02, mem: 26296 ko)
+CAMLC -c src/pCUICEquality.mli
+src/pCUICReflect.cmx (real: 0.06, user: 0.05, sys: 0.01, mem: 24360 ko)
+CAMLC -c src/pCUICTyping.mli
+src/pCUICEquality.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20432 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICPosition.ml
+src/pCUICTyping.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 21428 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/templateToPCUIC.ml
+src/pCUICPosition.cmx (real: 0.09, user: 0.07, sys: 0.01, mem: 26028 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICSafeLemmata.ml
+src/templateToPCUIC.cmx (real: 0.07, user: 0.06, sys: 0.01, mem: 25572 ko)
+CAMLC -c src/pCUICSafeReduce.mli
+src/pCUICSafeLemmata.cmx (real: 0.05, user: 0.03, sys: 0.01, mem: 22056 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/uGraph0.ml
+src/pCUICSafeReduce.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 21588 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICEquality.ml
+src/pCUICEquality.cmx (real: 0.07, user: 0.05, sys: 0.02, mem: 26416 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICTyping.ml
+src/uGraph0.cmx (real: 0.13, user: 0.11, sys: 0.02, mem: 30828 ko)
+CAMLC -c src/pCUICChecker.mli
+src/pCUICChecker.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 21248 ko)
+CAMLC -c src/pCUICSafeConversion.mli
+src/pCUICTyping.cmx (real: 0.10, user: 0.08, sys: 0.02, mem: 27292 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICChecker.ml
+src/pCUICSafeConversion.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 23348 ko)
+CAMLC -c src/pCUICPretty.mli
+src/pCUICChecker.cmx (real: 0.06, user: 0.04, sys: 0.02, mem: 25104 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICSafeReduce.ml
+src/pCUICPretty.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20340 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICPretty.ml
+src/pCUICSafeReduce.cmx (real: 0.10, user: 0.07, sys: 0.02, mem: 27680 ko)
+CAMLC -c src/pCUICSafeChecker.mli
+src/pCUICPretty.cmx (real: 0.11, user: 0.09, sys: 0.02, mem: 28948 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICSafeConversion.ml
+src/pCUICSafeChecker.cmi (real: 0.06, user: 0.06, sys: 0.00, mem: 24128 ko)
+CAMLC -c src/safeTemplateChecker.mli
+src/safeTemplateChecker.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 21632 ko)
+src/pCUICSafeConversion.cmx (real: 0.27, user: 0.24, sys: 0.03, mem: 43304 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/pCUICSafeChecker.ml
+src/pCUICSafeChecker.cmx (real: 0.34, user: 0.29, sys: 0.04, mem: 43492 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/safeTemplateChecker.ml
+src/safeTemplateChecker.cmx (real: 0.07, user: 0.05, sys: 0.01, mem: 27148 ko)
+CAMLOPT -c -for-pack Metacoq_safechecker_plugin src/g_metacoq_safechecker.ml
+src/g_metacoq_safechecker.cmx (real: 0.11, user: 0.09, sys: 0.02, mem: 35368 ko)
+CAMLOPT -pack -o src/metacoq_safechecker_plugin.cmx
+src/metacoq_safechecker_plugin.cmx (real: 0.10, user: 0.06, sys: 0.03, mem: 30436 ko)
+CAMLOPT -a -o src/metacoq_safechecker_plugin.cmxa
+src/metacoq_safechecker_plugin.cmxa (real: 0.05, user: 0.00, sys: 0.01, mem: 13624 ko)
+CAMLOPT -shared -o src/metacoq_safechecker_plugin.cmxs
+src/metacoq_safechecker_plugin.cmxs (real: 0.14, user: 0.11, sys: 0.03, mem: 20224 ko)
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.09, user: 0.05, sys: 0.03, mem: 63536 ko)
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -C erasure
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+cat metacoq-config > _CoqProject
+cat _CoqProject.in >> _CoqProject
+coq_makefile -f _CoqProject -o Makefile.erasure
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.erasure
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+COQDEP VFILES
+COQC theories/EAst.v
+theories/EAst.vo (real: 0.97, user: 0.72, sys: 0.24, mem: 477800 ko)
+COQC theories/EAstUtils.v
+COQC theories/EInduction.v
+theories/EInduction.vo (real: 0.97, user: 0.71, sys: 0.25, mem: 479012 ko)
+COQC theories/Extract.v
+theories/EAstUtils.vo (real: 1.36, user: 1.10, sys: 0.26, mem: 487520 ko)
+COQC theories/ELiftSubst.v
+theories/Extract.vo (real: 1.89, user: 1.57, sys: 0.32, mem: 617808 ko)
+COQC theories/EArities.v
+theories/EArities.vo (real: 6.12, user: 5.66, sys: 0.42, mem: 643396 ko)
+theories/ELiftSubst.vo (real: 10.89, user: 10.08, sys: 0.75, mem: 521520 ko)
+COQC theories/ETyping.v
+COQC theories/ECSubst.v
+theories/ETyping.vo (real: 1.01, user: 0.73, sys: 0.27, mem: 487644 ko)
+COQC theories/EPretty.v
+theories/ECSubst.vo (real: 1.31, user: 1.05, sys: 0.25, mem: 512080 ko)
+COQC theories/EWndEval.v
+theories/EPretty.vo (real: 1.02, user: 0.77, sys: 0.24, mem: 488076 ko)
+COQC theories/EWcbvEval.v
+theories/EWndEval.vo (real: 0.97, user: 0.70, sys: 0.26, mem: 485084 ko)
+theories/EWcbvEval.vo (real: 4.15, user: 3.85, sys: 0.28, mem: 520080 ko)
+COQC theories/EAll.v
+COQC theories/Prelim.v
+theories/EAll.vo (real: 1.76, user: 1.42, sys: 0.32, mem: 619396 ko)
+theories/Prelim.vo (real: 3.82, user: 3.39, sys: 0.40, mem: 741428 ko)
+COQC theories/ESubstitution.v
+COQC theories/EInversion.v
+theories/EInversion.vo (real: 3.19, user: 2.67, sys: 0.50, mem: 729072 ko)
+theories/ESubstitution.vo (real: 14.12, user: 13.39, sys: 0.67, mem: 794032 ko)
+COQC theories/ErasureCorrectness.v
+Axioms:
+todounivs : forall A : Type, A
+todoeta : forall A : Type, A
+todo : string -> forall A : Type, A
+ind_guard : mutual_inductive_body -> bool
+functional_extensionality_dep
+ : forall (A : Type) (B : A -> Type) (f g : forall x : A, B x),
+ (forall x : A, f x = g x) -> f = g
+fix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ fix_guard mfix ->
+ fix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+fix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := #|mfix| + k in
+ let mfix' :=
+ map (map_def (PCUICLiftSubst.subst s k) (PCUICLiftSubst.subst s k'))
+ mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ fix_guard mfix ->
+ red1 Σ Γ (tFix mfix idx) (tFix mfix' idx) -> fix_guard mfix'
+fix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := #|mfix| + k in
+ let mfix' :=
+ map (map_def (PCUICLiftSubst.lift n k) (PCUICLiftSubst.lift n k')) mfix
+ in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ fix_guard mfix ->
+ PCUICEquality.upto_names (tFix mfix idx) (tFix mfix' idx) ->
+ fix_guard mfix'
+fix_guard : mfixpoint term -> bool
+erases_closed
+ : forall (Σ : global_env_ext) (Γ : list context_decl)
+ (a : term) (e : E.term),
+ PCUICLiftSubst.closedn #|Γ| a -> Σ;;; Γ |- a ⇝ℇ e -> closedn #|Γ| e
+cofix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ cofix_guard mfix ->
+ cofix_guard
+ (map (map_def (subst_instance_constr u) (subst_instance_constr u)) mfix)
+cofix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := #|mfix| + k in
+ let mfix' :=
+ map (map_def (PCUICLiftSubst.subst s k) (PCUICLiftSubst.subst s k'))
+ mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ cofix_guard mfix ->
+ red1 Σ Γ (tCoFix mfix idx) (tCoFix mfix' idx) -> cofix_guard mfix'
+cofix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := #|mfix| + k in
+ let mfix' :=
+ map (map_def (PCUICLiftSubst.lift n k) (PCUICLiftSubst.lift n k')) mfix
+ in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ cofix_guard mfix ->
+ PCUICEquality.upto_names (tCoFix mfix idx) (tCoFix mfix' idx) ->
+ cofix_guard mfix'
+cofix_guard : mfixpoint term -> bool
+theories/ErasureCorrectness.vo (real: 58.09, user: 56.17, sys: 1.60, mem: 1113548 ko)
+COQC theories/ErasureFunction.v
+COQC theories/SafeErasureFunction.v
+theories/SafeErasureFunction.vo (real: 24.59, user: 23.34, sys: 1.11, mem: 854428 ko)
+Axioms:
+todounivs : forall A : Type, A
+todoeta : forall A : Type, A
+todo : string -> forall A : Type, A
+proof_irrelevance : forall (P : Prop) (p1 p2 : P), p1 = p2
+normalisation'
+ : forall (cf : checker_flags) (Σ : global_env_ext) (Γ : context) (t : term),
+ wf Σ -> wellformed Σ Γ t -> Acc (cored Σ.1 Γ) t
+ind_guard : mutual_inductive_body -> bool
+functional_extensionality_dep
+ : forall (A : Type) (B : A -> Type) (f g : forall x : A, B x),
+ (forall x : A, f x = g x) -> f = g
+PCUICUnivSubstitution.fix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ fix_guard mfix ->
+ fix_guard
+ (map
+ (map_def (PCUICUnivSubst.subst_instance_constr u)
+ (PCUICUnivSubst.subst_instance_constr u)) mfix)
+fix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ fix_guard mfix ->
+ red1 Σ Γ (tFix mfix idx) (tFix mfix' idx) -> fix_guard mfix'
+fix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ fix_guard mfix -> fix_guard mfix'
+fix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ fix_guard mfix ->
+ PCUICEquality.upto_names (tFix mfix idx) (tFix mfix' idx) ->
+ fix_guard mfix'
+fix_guard : mfixpoint term -> bool
+PCUICUnivSubstitution.cofix_guard_subst_instance
+ : forall (mfix : mfixpoint term) (u : Instance.t),
+ cofix_guard mfix ->
+ cofix_guard
+ (map
+ (map_def (PCUICUnivSubst.subst_instance_constr u)
+ (PCUICUnivSubst.subst_instance_constr u)) mfix)
+cofix_guard_subst
+ : forall (mfix : list (def term)) (s : list term) (k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (subst s k) (subst s k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_red1
+ : forall (Σ : global_env) (Γ : context) (mfix mfix' : mfixpoint term)
+ (idx : nat),
+ cofix_guard mfix ->
+ red1 Σ Γ (tCoFix mfix idx) (tCoFix mfix' idx) -> cofix_guard mfix'
+cofix_guard_lift
+ : forall (mfix : list (def term)) (n k : nat),
+ let k' := (#|mfix| + k)%nat in
+ let mfix' := map (map_def (lift n k) (lift n k')) mfix in
+ cofix_guard mfix -> cofix_guard mfix'
+cofix_guard_eq_term
+ : forall (mfix mfix' : mfixpoint term) (idx : nat),
+ cofix_guard mfix ->
+ PCUICEquality.upto_names (tCoFix mfix idx) (tCoFix mfix' idx) ->
+ cofix_guard mfix'
+cofix_guard : mfixpoint term -> bool
+theories/ErasureFunction.vo (real: 40.61, user: 39.21, sys: 1.22, mem: 1012876 ko)
+COQC theories/SafeTemplateErasure.v
+theories/SafeTemplateErasure.vo (real: 4.47, user: 3.99, sys: 0.45, mem: 806128 ko)
+COQC theories/Extraction.v
+theories/Extraction.vo (real: 6.38, user: 5.74, sys: 0.59, mem: 872556 ko)
+echo "Done extracting the erasure, moving extraction files!"
+Done extracting the erasure, moving extraction files!
+./clean_extraction.sh
+Cleaning result of extraction
+Moving All_Forall.ml to all_Forall.ml
+Moving All_Forall.mli to all_Forall.mli
+Moving Ascii.ml to ascii.ml
+Moving Ascii.mli to ascii.mli
+Moving Ast0.ml to ast0.ml
+Moving Ast0.mli to ast0.mli
+Moving AstUtils.ml to astUtils.ml
+Moving AstUtils.mli to astUtils.mli
+Moving BasicAst.ml to basicAst.ml
+Moving BasicAst.mli to basicAst.mli
+Moving Basics.ml to basics.ml
+Moving Basics.mli to basics.mli
+Moving BinInt.ml to binInt.ml
+Moving BinInt.mli to binInt.mli
+Moving BinNat.ml to binNat.ml
+Moving BinNat.mli to binNat.mli
+Moving BinNums.ml to binNums.ml
+Moving BinNums.mli to binNums.mli
+Moving BinPos.ml to binPos.ml
+Moving BinPos.mli to binPos.mli
+Moving Bool.ml to bool.ml
+Moving Bool.mli to bool.mli
+Moving Byte.ml to byte.ml
+Moving Byte.mli to byte.mli
+Moving Classes0.ml to classes0.ml
+Moving Classes0.mli to classes0.mli
+Moving Compare_dec.ml to compare_dec.ml
+Moving Compare_dec.mli to compare_dec.mli
+Moving Datatypes.ml to datatypes.ml
+Moving Datatypes.mli to datatypes.mli
+Moving EAst.ml to eAst.ml
+Moving EAst.mli to eAst.mli
+Moving EAstUtils.ml to eAstUtils.ml
+Moving EAstUtils.mli to eAstUtils.mli
+Moving ELiftSubst.ml to eLiftSubst.ml
+Moving ELiftSubst.mli to eLiftSubst.mli
+Moving EPretty.ml to ePretty.ml
+Moving EPretty.mli to ePretty.mli
+Moving ETyping.ml to eTyping.ml
+Moving ETyping.mli to eTyping.mli
+Moving Environment.ml to environment.ml
+Moving Environment.mli to environment.mli
+Moving EqDecInstances.ml to eqDecInstances.ml
+Moving EqDecInstances.mli to eqDecInstances.mli
+Moving EqdepFacts.ml to eqdepFacts.ml
+Moving EqdepFacts.mli to eqdepFacts.mli
+Moving Equalities.ml to equalities.ml
+Moving Equalities.mli to equalities.mli
+Moving ErasureFunction.ml to erasureFunction.ml
+Moving ErasureFunction.mli to erasureFunction.mli
+Moving Extract.ml to extract.ml
+Moving Extract.mli to extract.mli
+Moving Init.ml to init.ml
+Moving Init.mli to init.mli
+Moving LiftSubst.ml to liftSubst.ml
+Moving LiftSubst.mli to liftSubst.mli
+Moving List0.ml to list0.ml
+Moving List0.mli to list0.mli
+Moving MCCompare.ml to mCCompare.ml
+Moving MCCompare.mli to mCCompare.mli
+Moving MCList.ml to mCList.ml
+Moving MCList.mli to mCList.mli
+Moving MCOption.ml to mCOption.ml
+Moving MCOption.mli to mCOption.mli
+Moving MCProd.ml to mCProd.ml
+Moving MCProd.mli to mCProd.mli
+Moving MCString.ml to mCString.ml
+Moving MCString.mli to mCString.mli
+Moving MSetDecide.ml to mSetDecide.ml
+Moving MSetDecide.mli to mSetDecide.mli
+Moving MSetFacts.ml to mSetFacts.ml
+Moving MSetFacts.mli to mSetFacts.mli
+Moving MSetInterface.ml to mSetInterface.ml
+Moving MSetInterface.mli to mSetInterface.mli
+Moving MSetList.ml to mSetList.ml
+Moving MSetList.mli to mSetList.mli
+Moving MSetProperties.ml to mSetProperties.ml
+Moving MSetProperties.mli to mSetProperties.mli
+Moving MSetWeakList.ml to mSetWeakList.ml
+Moving MSetWeakList.mli to mSetWeakList.mli
+Moving Nat0.ml to nat0.ml
+Moving Nat0.mli to nat0.mli
+Moving Orders.ml to orders.ml
+Moving Orders.mli to orders.mli
+Moving OrdersFacts.ml to ordersFacts.ml
+Moving OrdersFacts.mli to ordersFacts.mli
+Moving OrdersLists.ml to ordersLists.ml
+Moving OrdersLists.mli to ordersLists.mli
+Moving OrdersTac.ml to ordersTac.ml
+Moving OrdersTac.mli to ordersTac.mli
+Moving PCUICAst.ml to pCUICAst.ml
+Moving PCUICAst.mli to pCUICAst.mli
+Moving PCUICAstUtils.ml to pCUICAstUtils.ml
+Moving PCUICAstUtils.mli to pCUICAstUtils.mli
+Moving PCUICChecker.ml to pCUICChecker.ml
+Moving PCUICChecker.mli to pCUICChecker.mli
+Moving PCUICCumulativity.ml to pCUICCumulativity.ml
+Moving PCUICCumulativity.mli to pCUICCumulativity.mli
+Moving PCUICEquality.ml to pCUICEquality.ml
+Moving PCUICEquality.mli to pCUICEquality.mli
+Moving PCUICLiftSubst.ml to pCUICLiftSubst.ml
+Moving PCUICLiftSubst.mli to pCUICLiftSubst.mli
+Moving PCUICNormal.ml to pCUICNormal.ml
+Moving PCUICNormal.mli to pCUICNormal.mli
+Moving PCUICPosition.ml to pCUICPosition.ml
+Moving PCUICPosition.mli to pCUICPosition.mli
+Moving PCUICPretty.ml to pCUICPretty.ml
+Moving PCUICPretty.mli to pCUICPretty.mli
+Moving PCUICReflect.ml to pCUICReflect.ml
+Moving PCUICReflect.mli to pCUICReflect.mli
+Moving PCUICSafeChecker.ml to pCUICSafeChecker.ml
+Moving PCUICSafeChecker.mli to pCUICSafeChecker.mli
+Moving PCUICSafeConversion.ml to pCUICSafeConversion.ml
+Moving PCUICSafeConversion.mli to pCUICSafeConversion.mli
+Moving PCUICSafeLemmata.ml to pCUICSafeLemmata.ml
+Moving PCUICSafeLemmata.mli to pCUICSafeLemmata.mli
+Moving PCUICSafeReduce.ml to pCUICSafeReduce.ml
+Moving PCUICSafeReduce.mli to pCUICSafeReduce.mli
+Moving PCUICSafeRetyping.ml to pCUICSafeRetyping.ml
+Moving PCUICSafeRetyping.mli to pCUICSafeRetyping.mli
+Moving PCUICTyping.ml to pCUICTyping.ml
+Moving PCUICTyping.mli to pCUICTyping.mli
+Moving PCUICUnivSubst.ml to pCUICUnivSubst.ml
+Moving PCUICUnivSubst.mli to pCUICUnivSubst.mli
+Moving PeanoNat.ml to peanoNat.ml
+Moving PeanoNat.mli to peanoNat.mli
+Moving Pretty.ml to pretty.ml
+Moving Pretty.mli to pretty.mli
+Moving SafeErasureFunction.ml to safeErasureFunction.ml
+Moving SafeErasureFunction.mli to safeErasureFunction.mli
+Moving SafeTemplateChecker.ml to safeTemplateChecker.ml
+Moving SafeTemplateChecker.mli to safeTemplateChecker.mli
+Moving SafeTemplateErasure.ml to safeTemplateErasure.ml
+Moving SafeTemplateErasure.mli to safeTemplateErasure.mli
+Moving Specif.ml to specif.ml
+Moving Specif.mli to specif.mli
+Moving String0.ml to string0.ml
+Moving String0.mli to string0.mli
+Moving TemplateToPCUIC.ml to templateToPCUIC.ml
+Moving TemplateToPCUIC.mli to templateToPCUIC.mli
+Moving Typing0.ml to typing0.ml
+Moving Typing0.mli to typing0.mli
+Moving UnivSubst0.ml to univSubst0.ml
+Moving UnivSubst0.mli to univSubst0.mli
+Moving Universes0.ml to universes0.ml
+Moving Universes0.mli to universes0.mli
+Moving config0.ml to config0.ml
+mv: 'config0.ml' and 'config0.ml' are the same file
+Moving config0.mli to config0.mli
+mv: 'config0.mli' and 'config0.mli' are the same file
+Moving g_metacoq_erasure.ml to g_metacoq_erasure.ml
+mv: 'g_metacoq_erasure.ml' and 'g_metacoq_erasure.ml' are the same file
+Moving g_metacoq_erasure.mlg to g_metacoq_erasure.mlg
+mv: 'g_metacoq_erasure.mlg' and 'g_metacoq_erasure.mlg' are the same file
+Moving metacoq_erasure_plugin.mlpack to metacoq_erasure_plugin.mlpack
+mv: 'metacoq_erasure_plugin.mlpack' and 'metacoq_erasure_plugin.mlpack' are the same file
+Moving monad_utils.ml to monad_utils.ml
+mv: 'monad_utils.ml' and 'monad_utils.ml' are the same file
+Moving monad_utils.mli to monad_utils.mli
+mv: 'monad_utils.mli' and 'monad_utils.mli' are the same file
+Moving ssrbool.ml to ssrbool.ml
+mv: 'ssrbool.ml' and 'ssrbool.ml' are the same file
+Moving ssrbool.mli to ssrbool.mli
+mv: 'ssrbool.mli' and 'ssrbool.mli' are the same file
+Moving uGraph0.ml to uGraph0.ml
+mv: 'uGraph0.ml' and 'uGraph0.ml' are the same file
+Moving uGraph0.mli to uGraph0.mli
+mv: 'uGraph0.mli' and 'uGraph0.mli' are the same file
+Moving utils.ml to utils.ml
+mv: 'utils.ml' and 'utils.ml' are the same file
+Moving utils.mli to utils.mli
+mv: 'utils.mli' and 'utils.mli' are the same file
+Moving wGraph.ml to wGraph.ml
+mv: 'wGraph.ml' and 'wGraph.ml' are the same file
+Moving wGraph.mli to wGraph.mli
+mv: 'wGraph.mli' and 'wGraph.mli' are the same file
+Removing: src/all_Forall.ml src/all_Forall.mli src/ascii.ml src/ascii.mli src/ast0.ml src/ast0.mli src/ast_denoter.ml src/ast_quoter.ml src/astUtils.ml src/astUtils.mli src/basicAst.ml src/basicAst.mli src/basics.ml src/basics.mli src/binInt.ml src/binInt.mli src/binNat.ml src/binNat.mli src/binNums.ml src/binNums.mli src/binPosDef.ml src/binPosDef.mli src/binPos.ml src/binPos.mli src/bool.ml src/bool.mli src/common0.ml src/common0.mli src/compare_dec.ml src/compare_dec.mli src/config0.ml src/config0.mli src/cRelationClasses.ml src/cRelationClasses.mli src/datatypes.ml src/datatypes.mli src/decimal.ml src/decimal.mli src/denoter.ml src/environment.ml src/environment.mli src/equalities.ml src/equalities.mli src/extractable.ml src/extractable.mli src/hexadecimal.ml src/hexadecimal.mli src/liftSubst.ml src/liftSubst.mli src/list0.ml src/list0.mli src/logic0.ml src/logic0.mli src/mCPrelude.mli src/mCPrelude.ml src/mCCompare.ml src/mCCompare.mli src/mCList.ml src/mCList.mli src/mCOption.ml src/mCOption.mli src/mCProd.ml src/mCProd.mli src/mCRelations.ml src/mCRelations.mli src/mCString.ml src/mCString.mli src/mSetDecide.ml src/mSetDecide.mli src/mSetFacts.ml src/mSetFacts.mli src/mSetInterface.ml src/mSetInterface.mli src/mSetList.ml src/mSetList.mli src/mSetProperties.ml src/mSetProperties.mli src/nat0.ml src/nat0.mli src/numeral.ml src/numeral.mli src/orderedType0.ml src/orderedType0.mli src/ordersFacts.ml src/ordersFacts.mli src/ordersLists.ml src/ordersLists.mli src/orders.ml src/orders.mli src/ordersTac.ml src/ordersTac.mli src/peanoNat.ml src/peanoNat.mli src/plugin_core.ml src/plugin_core.mli src/pretty.ml src/pretty.mli src/reification.ml src/quoter.ml src/run_extractable.ml src/run_extractable.mli src/specif.ml src/specif.mli src/string0.ml src/string0.mli src/tm_util.ml src/universes0.ml src/universes0.mli src/univSubst0.ml src/univSubst0.mli
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+./clean_extraction.sh
+Cleaning result of extraction
+Moving byte.ml to byte.ml
+mv: 'byte.ml' and 'byte.ml' are the same file
+Moving byte.mli to byte.mli
+mv: 'byte.mli' and 'byte.mli' are the same file
+Moving classes0.ml to classes0.ml
+mv: 'classes0.ml' and 'classes0.ml' are the same file
+Moving classes0.mli to classes0.mli
+mv: 'classes0.mli' and 'classes0.mli' are the same file
+Moving eAst.ml to eAst.ml
+mv: 'eAst.ml' and 'eAst.ml' are the same file
+Moving eAst.mli to eAst.mli
+mv: 'eAst.mli' and 'eAst.mli' are the same file
+Moving eAstUtils.ml to eAstUtils.ml
+mv: 'eAstUtils.ml' and 'eAstUtils.ml' are the same file
+Moving eAstUtils.mli to eAstUtils.mli
+mv: 'eAstUtils.mli' and 'eAstUtils.mli' are the same file
+Moving eLiftSubst.ml to eLiftSubst.ml
+mv: 'eLiftSubst.ml' and 'eLiftSubst.ml' are the same file
+Moving eLiftSubst.mli to eLiftSubst.mli
+mv: 'eLiftSubst.mli' and 'eLiftSubst.mli' are the same file
+Moving ePretty.ml to ePretty.ml
+mv: 'ePretty.ml' and 'ePretty.ml' are the same file
+Moving ePretty.mli to ePretty.mli
+mv: 'ePretty.mli' and 'ePretty.mli' are the same file
+Moving eTyping.ml to eTyping.ml
+mv: 'eTyping.ml' and 'eTyping.ml' are the same file
+Moving eTyping.mli to eTyping.mli
+mv: 'eTyping.mli' and 'eTyping.mli' are the same file
+Moving eqDecInstances.ml to eqDecInstances.ml
+mv: 'eqDecInstances.ml' and 'eqDecInstances.ml' are the same file
+Moving eqDecInstances.mli to eqDecInstances.mli
+mv: 'eqDecInstances.mli' and 'eqDecInstances.mli' are the same file
+Moving eqdepFacts.ml to eqdepFacts.ml
+mv: 'eqdepFacts.ml' and 'eqdepFacts.ml' are the same file
+Moving eqdepFacts.mli to eqdepFacts.mli
+mv: 'eqdepFacts.mli' and 'eqdepFacts.mli' are the same file
+Moving erasureFunction.ml to erasureFunction.ml
+mv: 'erasureFunction.ml' and 'erasureFunction.ml' are the same file
+Moving erasureFunction.mli to erasureFunction.mli
+mv: 'erasureFunction.mli' and 'erasureFunction.mli' are the same file
+Moving extract.ml to extract.ml
+mv: 'extract.ml' and 'extract.ml' are the same file
+Moving extract.mli to extract.mli
+mv: 'extract.mli' and 'extract.mli' are the same file
+Moving g_metacoq_erasure.ml to g_metacoq_erasure.ml
+mv: 'g_metacoq_erasure.ml' and 'g_metacoq_erasure.ml' are the same file
+Moving g_metacoq_erasure.mlg to g_metacoq_erasure.mlg
+mv: 'g_metacoq_erasure.mlg' and 'g_metacoq_erasure.mlg' are the same file
+Moving init.ml to init.ml
+mv: 'init.ml' and 'init.ml' are the same file
+Moving init.mli to init.mli
+mv: 'init.mli' and 'init.mli' are the same file
+Moving mSetWeakList.ml to mSetWeakList.ml
+mv: 'mSetWeakList.ml' and 'mSetWeakList.ml' are the same file
+Moving mSetWeakList.mli to mSetWeakList.mli
+mv: 'mSetWeakList.mli' and 'mSetWeakList.mli' are the same file
+Moving metacoq_erasure_plugin.mlpack to metacoq_erasure_plugin.mlpack
+mv: 'metacoq_erasure_plugin.mlpack' and 'metacoq_erasure_plugin.mlpack' are the same file
+Moving monad_utils.ml to monad_utils.ml
+mv: 'monad_utils.ml' and 'monad_utils.ml' are the same file
+Moving monad_utils.mli to monad_utils.mli
+mv: 'monad_utils.mli' and 'monad_utils.mli' are the same file
+Moving pCUICAst.ml to pCUICAst.ml
+mv: 'pCUICAst.ml' and 'pCUICAst.ml' are the same file
+Moving pCUICAst.mli to pCUICAst.mli
+mv: 'pCUICAst.mli' and 'pCUICAst.mli' are the same file
+Moving pCUICAstUtils.ml to pCUICAstUtils.ml
+mv: 'pCUICAstUtils.ml' and 'pCUICAstUtils.ml' are the same file
+Moving pCUICAstUtils.mli to pCUICAstUtils.mli
+mv: 'pCUICAstUtils.mli' and 'pCUICAstUtils.mli' are the same file
+Moving pCUICChecker.ml to pCUICChecker.ml
+mv: 'pCUICChecker.ml' and 'pCUICChecker.ml' are the same file
+Moving pCUICChecker.mli to pCUICChecker.mli
+mv: 'pCUICChecker.mli' and 'pCUICChecker.mli' are the same file
+Moving pCUICCumulativity.ml to pCUICCumulativity.ml
+mv: 'pCUICCumulativity.ml' and 'pCUICCumulativity.ml' are the same file
+Moving pCUICCumulativity.mli to pCUICCumulativity.mli
+mv: 'pCUICCumulativity.mli' and 'pCUICCumulativity.mli' are the same file
+Moving pCUICEquality.ml to pCUICEquality.ml
+mv: 'pCUICEquality.ml' and 'pCUICEquality.ml' are the same file
+Moving pCUICEquality.mli to pCUICEquality.mli
+mv: 'pCUICEquality.mli' and 'pCUICEquality.mli' are the same file
+Moving pCUICLiftSubst.ml to pCUICLiftSubst.ml
+mv: 'pCUICLiftSubst.ml' and 'pCUICLiftSubst.ml' are the same file
+Moving pCUICLiftSubst.mli to pCUICLiftSubst.mli
+mv: 'pCUICLiftSubst.mli' and 'pCUICLiftSubst.mli' are the same file
+Moving pCUICNormal.ml to pCUICNormal.ml
+mv: 'pCUICNormal.ml' and 'pCUICNormal.ml' are the same file
+Moving pCUICNormal.mli to pCUICNormal.mli
+mv: 'pCUICNormal.mli' and 'pCUICNormal.mli' are the same file
+Moving pCUICPosition.ml to pCUICPosition.ml
+mv: 'pCUICPosition.ml' and 'pCUICPosition.ml' are the same file
+Moving pCUICPosition.mli to pCUICPosition.mli
+mv: 'pCUICPosition.mli' and 'pCUICPosition.mli' are the same file
+Moving pCUICPretty.ml to pCUICPretty.ml
+mv: 'pCUICPretty.ml' and 'pCUICPretty.ml' are the same file
+Moving pCUICPretty.mli to pCUICPretty.mli
+mv: 'pCUICPretty.mli' and 'pCUICPretty.mli' are the same file
+Moving pCUICReflect.ml to pCUICReflect.ml
+mv: 'pCUICReflect.ml' and 'pCUICReflect.ml' are the same file
+Moving pCUICReflect.mli to pCUICReflect.mli
+mv: 'pCUICReflect.mli' and 'pCUICReflect.mli' are the same file
+Moving pCUICSafeChecker.ml to pCUICSafeChecker.ml
+mv: 'pCUICSafeChecker.ml' and 'pCUICSafeChecker.ml' are the same file
+Moving pCUICSafeChecker.mli to pCUICSafeChecker.mli
+mv: 'pCUICSafeChecker.mli' and 'pCUICSafeChecker.mli' are the same file
+Moving pCUICSafeConversion.ml to pCUICSafeConversion.ml
+mv: 'pCUICSafeConversion.ml' and 'pCUICSafeConversion.ml' are the same file
+Moving pCUICSafeConversion.mli to pCUICSafeConversion.mli
+mv: 'pCUICSafeConversion.mli' and 'pCUICSafeConversion.mli' are the same file
+Moving pCUICSafeLemmata.ml to pCUICSafeLemmata.ml
+mv: 'pCUICSafeLemmata.ml' and 'pCUICSafeLemmata.ml' are the same file
+Moving pCUICSafeLemmata.mli to pCUICSafeLemmata.mli
+mv: 'pCUICSafeLemmata.mli' and 'pCUICSafeLemmata.mli' are the same file
+Moving pCUICSafeReduce.ml to pCUICSafeReduce.ml
+mv: 'pCUICSafeReduce.ml' and 'pCUICSafeReduce.ml' are the same file
+Moving pCUICSafeReduce.mli to pCUICSafeReduce.mli
+mv: 'pCUICSafeReduce.mli' and 'pCUICSafeReduce.mli' are the same file
+Moving pCUICSafeRetyping.ml to pCUICSafeRetyping.ml
+mv: 'pCUICSafeRetyping.ml' and 'pCUICSafeRetyping.ml' are the same file
+Moving pCUICSafeRetyping.mli to pCUICSafeRetyping.mli
+mv: 'pCUICSafeRetyping.mli' and 'pCUICSafeRetyping.mli' are the same file
+Moving pCUICTyping.ml to pCUICTyping.ml
+mv: 'pCUICTyping.ml' and 'pCUICTyping.ml' are the same file
+Moving pCUICTyping.mli to pCUICTyping.mli
+mv: 'pCUICTyping.mli' and 'pCUICTyping.mli' are the same file
+Moving pCUICUnivSubst.ml to pCUICUnivSubst.ml
+mv: 'pCUICUnivSubst.ml' and 'pCUICUnivSubst.ml' are the same file
+Moving pCUICUnivSubst.mli to pCUICUnivSubst.mli
+mv: 'pCUICUnivSubst.mli' and 'pCUICUnivSubst.mli' are the same file
+Moving safeErasureFunction.ml to safeErasureFunction.ml
+mv: 'safeErasureFunction.ml' and 'safeErasureFunction.ml' are the same file
+Moving safeErasureFunction.mli to safeErasureFunction.mli
+mv: 'safeErasureFunction.mli' and 'safeErasureFunction.mli' are the same file
+Moving safeTemplateChecker.ml to safeTemplateChecker.ml
+mv: 'safeTemplateChecker.ml' and 'safeTemplateChecker.ml' are the same file
+Moving safeTemplateChecker.mli to safeTemplateChecker.mli
+mv: 'safeTemplateChecker.mli' and 'safeTemplateChecker.mli' are the same file
+Moving safeTemplateErasure.ml to safeTemplateErasure.ml
+mv: 'safeTemplateErasure.ml' and 'safeTemplateErasure.ml' are the same file
+Moving safeTemplateErasure.mli to safeTemplateErasure.mli
+mv: 'safeTemplateErasure.mli' and 'safeTemplateErasure.mli' are the same file
+Moving ssrbool.ml to ssrbool.ml
+mv: 'ssrbool.ml' and 'ssrbool.ml' are the same file
+Moving ssrbool.mli to ssrbool.mli
+mv: 'ssrbool.mli' and 'ssrbool.mli' are the same file
+Moving templateToPCUIC.ml to templateToPCUIC.ml
+mv: 'templateToPCUIC.ml' and 'templateToPCUIC.ml' are the same file
+Moving templateToPCUIC.mli to templateToPCUIC.mli
+mv: 'templateToPCUIC.mli' and 'templateToPCUIC.mli' are the same file
+Moving typing0.ml to typing0.ml
+mv: 'typing0.ml' and 'typing0.ml' are the same file
+Moving typing0.mli to typing0.mli
+mv: 'typing0.mli' and 'typing0.mli' are the same file
+Moving uGraph0.ml to uGraph0.ml
+mv: 'uGraph0.ml' and 'uGraph0.ml' are the same file
+Moving uGraph0.mli to uGraph0.mli
+mv: 'uGraph0.mli' and 'uGraph0.mli' are the same file
+Moving utils.ml to utils.ml
+mv: 'utils.ml' and 'utils.ml' are the same file
+Moving utils.mli to utils.mli
+mv: 'utils.mli' and 'utils.mli' are the same file
+Moving wGraph.ml to wGraph.ml
+mv: 'wGraph.ml' and 'wGraph.ml' are the same file
+Moving wGraph.mli to wGraph.mli
+mv: 'wGraph.mli' and 'wGraph.mli' are the same file
+Removing: src/all_Forall.ml src/all_Forall.mli src/ascii.ml src/ascii.mli src/ast0.ml src/ast0.mli src/ast_denoter.ml src/ast_quoter.ml src/astUtils.ml src/astUtils.mli src/basicAst.ml src/basicAst.mli src/basics.ml src/basics.mli src/binInt.ml src/binInt.mli src/binNat.ml src/binNat.mli src/binNums.ml src/binNums.mli src/binPosDef.ml src/binPosDef.mli src/binPos.ml src/binPos.mli src/bool.ml src/bool.mli src/common0.ml src/common0.mli src/compare_dec.ml src/compare_dec.mli src/config0.ml src/config0.mli src/cRelationClasses.ml src/cRelationClasses.mli src/datatypes.ml src/datatypes.mli src/decimal.ml src/decimal.mli src/denoter.ml src/environment.ml src/environment.mli src/equalities.ml src/equalities.mli src/extractable.ml src/extractable.mli src/hexadecimal.ml src/hexadecimal.mli src/liftSubst.ml src/liftSubst.mli src/list0.ml src/list0.mli src/logic0.ml src/logic0.mli src/mCPrelude.mli src/mCPrelude.ml src/mCCompare.ml src/mCCompare.mli src/mCList.ml src/mCList.mli src/mCOption.ml src/mCOption.mli src/mCProd.ml src/mCProd.mli src/mCRelations.ml src/mCRelations.mli src/mCString.ml src/mCString.mli src/mSetDecide.ml src/mSetDecide.mli src/mSetFacts.ml src/mSetFacts.mli src/mSetInterface.ml src/mSetInterface.mli src/mSetList.ml src/mSetList.mli src/mSetProperties.ml src/mSetProperties.mli src/nat0.ml src/nat0.mli src/numeral.ml src/numeral.mli src/orderedType0.ml src/orderedType0.mli src/ordersFacts.ml src/ordersFacts.mli src/ordersLists.ml src/ordersLists.mli src/orders.ml src/orders.mli src/ordersTac.ml src/ordersTac.mli src/peanoNat.ml src/peanoNat.mli src/plugin_core.ml src/plugin_core.mli src/pretty.ml src/pretty.mli src/reification.ml src/quoter.ml src/run_extractable.ml src/run_extractable.mli src/specif.ml src/specif.mli src/string0.ml src/string0.mli src/tm_util.ml src/universes0.ml src/universes0.mli src/univSubst0.ml src/univSubst0.mli
+make -f Makefile.plugin
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+COQDEP VFILES
+CAMLDEP src/safeTemplateErasure.mli
+CAMLDEP src/ePretty.mli
+CAMLDEP src/safeErasureFunction.mli
+CAMLDEP src/extract.mli
+CAMLDEP src/erasureFunction.mli
+CAMLDEP src/eTyping.mli
+CAMLDEP src/eLiftSubst.mli
+CAMLDEP src/eAstUtils.mli
+CAMLDEP src/eAst.mli
+CAMLDEP src/safeTemplateChecker.mli
+CAMLDEP src/pCUICSafeRetyping.mli
+CAMLDEP src/pCUICSafeChecker.mli
+CAMLDEP src/pCUICSafeConversion.mli
+CAMLDEP src/pCUICSafeReduce.mli
+CAMLDEP src/templateToPCUIC.mli
+CAMLDEP src/pCUICSafeLemmata.mli
+CAMLDEP src/pCUICPretty.mli
+CAMLDEP src/pCUICChecker.mli
+CAMLDEP src/pCUICNormal.mli
+CAMLDEP src/pCUICPosition.mli
+CAMLDEP src/pCUICCumulativity.mli
+CAMLDEP src/pCUICUnivSubst.mli
+CAMLDEP src/pCUICTyping.mli
+CAMLDEP src/pCUICReflect.mli
+CAMLDEP src/pCUICEquality.mli
+CAMLDEP src/eqDecInstances.mli
+CAMLDEP src/pCUICLiftSubst.mli
+CAMLDEP src/pCUICAstUtils.mli
+CAMLDEP src/pCUICAst.mli
+CAMLDEP src/typing0.mli
+CAMLDEP src/wGraph.mli
+CAMLDEP src/uGraph0.mli
+CAMLDEP src/monad_utils.mli
+CAMLDEP src/utils.mli
+CAMLDEP src/ssrbool.mli
+CAMLDEP src/eqdepFacts.mli
+CAMLDEP src/mSetWeakList.mli
+CAMLDEP src/classes0.mli
+CAMLDEP src/init.mli
+OCAMLLIBDEP src/metacoq_erasure_plugin.mlpack
+CAMLDEP src/safeTemplateErasure.ml
+CAMLDEP src/ePretty.ml
+CAMLDEP src/safeErasureFunction.ml
+CAMLDEP src/erasureFunction.ml
+CAMLDEP src/extract.ml
+CAMLDEP src/eTyping.ml
+CAMLDEP src/eLiftSubst.ml
+CAMLDEP src/eAstUtils.ml
+CAMLDEP src/eAst.ml
+CAMLDEP src/safeTemplateChecker.ml
+CAMLDEP src/pCUICSafeRetyping.ml
+CAMLDEP src/pCUICSafeChecker.ml
+CAMLDEP src/pCUICSafeConversion.ml
+CAMLDEP src/pCUICSafeReduce.ml
+CAMLDEP src/templateToPCUIC.ml
+CAMLDEP src/pCUICSafeLemmata.ml
+CAMLDEP src/pCUICPretty.ml
+CAMLDEP src/pCUICChecker.ml
+CAMLDEP src/pCUICNormal.ml
+CAMLDEP src/pCUICPosition.ml
+CAMLDEP src/pCUICCumulativity.ml
+CAMLDEP src/pCUICUnivSubst.ml
+CAMLDEP src/pCUICTyping.ml
+CAMLDEP src/pCUICEquality.ml
+CAMLDEP src/pCUICReflect.ml
+CAMLDEP src/eqDecInstances.ml
+CAMLDEP src/pCUICLiftSubst.ml
+CAMLDEP src/pCUICAstUtils.ml
+CAMLDEP src/pCUICAst.ml
+CAMLDEP src/typing0.ml
+CAMLDEP src/wGraph.ml
+CAMLDEP src/uGraph0.ml
+CAMLDEP src/monad_utils.ml
+CAMLDEP src/utils.ml
+CAMLDEP src/ssrbool.ml
+CAMLDEP src/eqdepFacts.ml
+CAMLDEP src/mSetWeakList.ml
+CAMLDEP src/classes0.ml
+CAMLDEP src/init.ml
+CAMLDEP src/g_metacoq_erasure.ml
+CAMLC -c src/mSetWeakList.mli
+CAMLC -c src/monad_utils.mli
+src/monad_utils.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19272 ko)
+CAMLC -c src/eqdepFacts.mli
+src/mSetWeakList.cmi (real: 0.06, user: 0.04, sys: 0.01, mem: 20108 ko)
+CAMLC -c src/ssrbool.mli
+src/eqdepFacts.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19396 ko)
+CAMLC -c src/utils.mli
+src/ssrbool.cmi (real: 0.04, user: 0.02, sys: 0.01, mem: 19220 ko)
+CAMLC -c src/typing0.mli
+src/typing0.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20300 ko)
+CAMLC -c src/init.mli
+src/utils.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 19228 ko)
+CAMLC -c src/classes0.mli
+src/init.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19324 ko)
+CAMLC -c src/pCUICAst.mli
+src/classes0.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 19340 ko)
+CAMLC -c src/pCUICNormal.mli
+src/pCUICNormal.cmi (real: 0.03, user: 0.02, sys: 0.01, mem: 19304 ko)
+CAMLC -c src/pCUICCumulativity.mli
+src/pCUICAst.cmi (real: 0.06, user: 0.04, sys: 0.01, mem: 21244 ko)
+CAMLC -c src/safeTemplateChecker.mli
+src/pCUICCumulativity.cmi (real: 0.03, user: 0.02, sys: 0.01, mem: 19224 ko)
+CAMLC -c src/eAst.mli
+src/safeTemplateChecker.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 20348 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/monad_utils.ml
+src/eAst.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 20908 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/mSetWeakList.ml
+src/monad_utils.cmx (real: 0.07, user: 0.04, sys: 0.02, mem: 22452 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/eqdepFacts.ml
+src/mSetWeakList.cmx (real: 0.08, user: 0.06, sys: 0.01, mem: 25216 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/ssrbool.ml
+src/eqdepFacts.cmx (real: 0.05, user: 0.03, sys: 0.01, mem: 22072 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/utils.ml
+src/ssrbool.cmx (real: 0.05, user: 0.02, sys: 0.02, mem: 21912 ko)
+CAMLC -c src/wGraph.mli
+src/utils.cmx (real: 0.06, user: 0.04, sys: 0.02, mem: 22212 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/typing0.ml
+src/wGraph.cmi (real: 0.06, user: 0.05, sys: 0.00, mem: 22824 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/init.ml
+src/typing0.cmx (real: 0.07, user: 0.05, sys: 0.01, mem: 24076 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/classes0.ml
+src/init.cmx (real: 0.05, user: 0.03, sys: 0.02, mem: 22188 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICAst.ml
+src/classes0.cmx (real: 0.05, user: 0.02, sys: 0.02, mem: 21960 ko)
+CAMLC -c src/pCUICAstUtils.mli
+src/pCUICAst.cmx (real: 0.07, user: 0.05, sys: 0.01, mem: 26032 ko)
+CAMLC -c src/pCUICUnivSubst.mli
+src/pCUICAstUtils.cmi (real: 0.06, user: 0.04, sys: 0.01, mem: 20412 ko)
+CAMLC -c src/pCUICLiftSubst.mli
+src/pCUICUnivSubst.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20308 ko)
+CAMLC -c src/eqDecInstances.mli
+src/pCUICLiftSubst.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 20444 ko)
+CAMLC -c src/pCUICReflect.mli
+src/eqDecInstances.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19268 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICNormal.ml
+src/pCUICReflect.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20240 ko)
+CAMLC -c src/pCUICPosition.mli
+src/pCUICNormal.cmx (real: 0.05, user: 0.03, sys: 0.02, mem: 22044 ko)
+CAMLC -c src/templateToPCUIC.mli
+src/pCUICPosition.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 20488 ko)
+CAMLC -c src/pCUICSafeLemmata.mli
+src/pCUICSafeLemmata.cmi (real: 0.04, user: 0.03, sys: 0.00, mem: 19348 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICCumulativity.ml
+src/templateToPCUIC.cmi (real: 0.06, user: 0.05, sys: 0.01, mem: 21328 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/safeTemplateChecker.ml
+src/pCUICCumulativity.cmx (real: 0.04, user: 0.02, sys: 0.02, mem: 21940 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/eAst.ml
+src/safeTemplateChecker.cmx (real: 0.08, user: 0.06, sys: 0.02, mem: 25408 ko)
+CAMLC -c src/eAstUtils.mli
+src/eAstUtils.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19496 ko)
+CAMLC -c src/eLiftSubst.mli
+src/eAst.cmx (real: 0.12, user: 0.10, sys: 0.02, mem: 28644 ko)
+CAMLC -c src/extract.mli
+src/eLiftSubst.cmi (real: 0.04, user: 0.02, sys: 0.01, mem: 19300 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/wGraph.ml
+src/extract.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 21060 ko)
+CAMLC -c src/uGraph0.mli
+src/uGraph0.cmi (real: 0.08, user: 0.06, sys: 0.01, mem: 24780 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICAstUtils.ml
+src/wGraph.cmx (real: 0.17, user: 0.14, sys: 0.02, mem: 31636 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICUnivSubst.ml
+src/pCUICAstUtils.cmx (real: 0.11, user: 0.08, sys: 0.02, mem: 26392 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICLiftSubst.ml
+src/pCUICUnivSubst.cmx (real: 0.08, user: 0.05, sys: 0.02, mem: 25180 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/eqDecInstances.ml
+src/eqDecInstances.cmx (real: 0.06, user: 0.03, sys: 0.02, mem: 22196 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICReflect.ml
+src/pCUICLiftSubst.cmx (real: 0.09, user: 0.06, sys: 0.02, mem: 26244 ko)
+CAMLC -c src/pCUICEquality.mli
+src/pCUICEquality.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 20372 ko)
+CAMLC -c src/pCUICTyping.mli
+src/pCUICReflect.cmx (real: 0.07, user: 0.05, sys: 0.02, mem: 24336 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICPosition.ml
+src/pCUICTyping.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 21400 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/templateToPCUIC.ml
+src/pCUICPosition.cmx (real: 0.08, user: 0.06, sys: 0.01, mem: 26048 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICSafeLemmata.ml
+src/templateToPCUIC.cmx (real: 0.08, user: 0.06, sys: 0.02, mem: 26384 ko)
+src/pCUICSafeLemmata.cmx (real: 0.05, user: 0.02, sys: 0.02, mem: 22084 ko)
+CAMLC -c src/pCUICSafeReduce.mli
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/eAstUtils.ml
+src/pCUICSafeReduce.cmi (real: 0.06, user: 0.05, sys: 0.01, mem: 21556 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/eLiftSubst.ml
+src/eAstUtils.cmx (real: 0.08, user: 0.05, sys: 0.02, mem: 24800 ko)
+CAMLC -c src/eTyping.mli
+src/eTyping.cmi (real: 0.04, user: 0.03, sys: 0.00, mem: 20252 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/extract.ml
+src/eLiftSubst.cmx (real: 0.07, user: 0.05, sys: 0.02, mem: 25192 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/uGraph0.ml
+src/extract.cmx (real: 0.07, user: 0.04, sys: 0.02, mem: 23032 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICEquality.ml
+src/uGraph0.cmx (real: 0.13, user: 0.11, sys: 0.02, mem: 30984 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICTyping.ml
+src/pCUICEquality.cmx (real: 0.09, user: 0.06, sys: 0.02, mem: 26256 ko)
+CAMLC -c src/pCUICChecker.mli
+src/pCUICChecker.cmi (real: 0.06, user: 0.04, sys: 0.01, mem: 21236 ko)
+CAMLC -c src/pCUICSafeConversion.mli
+src/pCUICTyping.cmx (real: 0.11, user: 0.08, sys: 0.03, mem: 27752 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/eTyping.ml
+src/pCUICSafeConversion.cmi (real: 0.08, user: 0.06, sys: 0.02, mem: 23232 ko)
+CAMLC -c src/ePretty.mli
+src/eTyping.cmx (real: 0.08, user: 0.06, sys: 0.02, mem: 24684 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICChecker.ml
+src/ePretty.cmi (real: 0.06, user: 0.04, sys: 0.01, mem: 20540 ko)
+CAMLC -c src/pCUICPretty.mli
+src/pCUICPretty.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 20560 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICSafeReduce.ml
+src/pCUICChecker.cmx (real: 0.07, user: 0.05, sys: 0.02, mem: 25140 ko)
+CAMLC -c src/pCUICSafeChecker.mli
+src/pCUICSafeChecker.cmi (real: 0.07, user: 0.05, sys: 0.01, mem: 24300 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/ePretty.ml
+src/pCUICSafeReduce.cmx (real: 0.09, user: 0.07, sys: 0.02, mem: 27792 ko)
+CAMLC -c src/erasureFunction.mli
+src/erasureFunction.cmi (real: 0.08, user: 0.06, sys: 0.01, mem: 22652 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICPretty.ml
+src/ePretty.cmx (real: 0.11, user: 0.09, sys: 0.02, mem: 26992 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICSafeConversion.ml
+src/pCUICPretty.cmx (real: 0.11, user: 0.09, sys: 0.02, mem: 29148 ko)
+CAMLC -c src/pCUICSafeRetyping.mli
+src/pCUICSafeRetyping.cmi (real: 0.05, user: 0.03, sys: 0.01, mem: 21604 ko)
+CAMLC -c src/safeErasureFunction.mli
+src/safeErasureFunction.cmi (real: 0.07, user: 0.05, sys: 0.01, mem: 21660 ko)
+CAMLC -c src/safeTemplateErasure.mli
+src/safeTemplateErasure.cmi (real: 0.07, user: 0.05, sys: 0.01, mem: 23148 ko)
+src/pCUICSafeConversion.cmx (real: 0.31, user: 0.27, sys: 0.03, mem: 43056 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICSafeChecker.ml
+src/pCUICSafeChecker.cmx (real: 0.37, user: 0.33, sys: 0.03, mem: 45284 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/pCUICSafeRetyping.ml
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/erasureFunction.ml
+src/pCUICSafeRetyping.cmx (real: 0.09, user: 0.06, sys: 0.02, mem: 27380 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/safeErasureFunction.ml
+src/erasureFunction.cmx (real: 0.14, user: 0.11, sys: 0.02, mem: 31208 ko)
+src/safeErasureFunction.cmx (real: 0.12, user: 0.09, sys: 0.01, mem: 29852 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/safeTemplateErasure.ml
+src/safeTemplateErasure.cmx (real: 0.09, user: 0.07, sys: 0.02, mem: 30244 ko)
+CAMLOPT -c -for-pack Metacoq_erasure_plugin src/g_metacoq_erasure.ml
+src/g_metacoq_erasure.cmx (real: 0.09, user: 0.06, sys: 0.02, mem: 30052 ko)
+CAMLOPT -pack -o src/metacoq_erasure_plugin.cmx
+src/metacoq_erasure_plugin.cmx (real: 0.12, user: 0.08, sys: 0.03, mem: 32668 ko)
+CAMLOPT -a -o src/metacoq_erasure_plugin.cmxa
+src/metacoq_erasure_plugin.cmxa (real: 0.02, user: 0.00, sys: 0.01, mem: 13520 ko)
+CAMLOPT -shared -o src/metacoq_erasure_plugin.cmxs
+src/metacoq_erasure_plugin.cmxs (real: 0.17, user: 0.13, sys: 0.03, mem: 20232 ko)
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.41, user: 0.30, sys: 0.11, mem: 237756 ko)
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -C test-suite
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/test-suite'
+coq_makefile -f _CoqProject -o Makefile.coq
+make -C plugin-demo
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/test-suite/plugin-demo'
+coq_makefile -f _CoqProject -o Makefile.coq
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.coq pretty-timed
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/test-suite'
+Warning: ../../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.coq
+make[5]: Entering directory '/builds/coq/coq/_build_ci/metacoq/test-suite/plugin-demo'
+COQDEP VFILES
+COQDEP VFILES
+*** Warning: in file theories/MyPlugin.v,
+ required library Loader matches several files in path
+ (found Loader.v in ../../template-coq/theories and theories; used the latter)
+COQC theories/Lens.v
+theories/Lens.vo (real: 0.10, user: 0.05, sys: 0.04, mem: 64048 ko)
+COQC theories/MyPlugin.v
+COQC bug1.v
+File "./theories/MyPlugin.v", line 10, characters 0-24:
+Warning: Interpreting this declaration as if a global declaration prefixed by
+"Local", i.e. as a global declaration which shall not be available without
+qualification when imported. [local-declaration,scope]
+theories/MyPlugin.vo (real: 1.20, user: 0.91, sys: 0.28, mem: 513348 ko)
+COQC theories/Extraction.v
+bug1.vo (real: 1.30, user: 1.03, sys: 0.26, mem: 510284 ko)
+COQC bug2.v
+bug2.vo (real: 1.09, user: 0.81, sys: 0.26, mem: 500380 ko)
+COQC bug5.v
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The extraction is currently set to bypass opacity, the following
+opaque constant bodies have been accessed
+: All_Forall.All2_firstn All_Forall.All2_All_mix_right
+ CRelationClasses.PartialOrder_inverse All_Forall.All_All2_All2_mix
+ fold_rec_bis cardinal_inv_2b All_Forall.All_rev All_Forall.All_mix
+ All_Forall.All_map All_Forall.All_app
+ All_Forall.OnOne2_impl_exist_and_All_r Universes.fresh_universe
+ All_Forall.Alli_rev All_Forall.Alli_mix All_Forall.Alli_app
+ All_Forall.Alli_All All_Forall.All_prod All_Forall.All_mapi
+ All_Forall.All_impl All_Forall.All_Alli All_Forall.All_All2
+ List.Forall_rect All_Forall.All2_sym All_Forall.All2_rev
+ All_Forall.All2_nth All_Forall.All2_mix All_Forall.All2_map
+ All_Forall.All2_app All_Forall.All2_All fold_rec_nodep
+ Universes.Level.eqb_spec All_Forall.Alli_shiftn_inv Universes.fresh_level
+ All_Forall.All2_All_mix_left All_Forall.All2_nth_error_Some_r
+ All_Forall.Alli_nth_error All_Forall.forall_nth_error_All
+ All_Forall.forall_nth_error_Alli All_Forall.All2_nth_error
+ All_Forall.nth_error_all All_Forall.All2_prod_inv All_Forall.Alli_mapi
+ List.nth_in_or_default All_Forall.forallb_nth'
+ CRelationClasses.partial_order_antisym All_Forall.All_skipn
+ CRelationClasses.flip_PreOrder All_Forall.Alli_shiftn All_Forall.Forall_All
+ CRelationClasses.relation_implication_preorder
+ All_Forall.OnOne2_impl_exist_and_All All_Forall.All2i_rev
+ All_Forall.All2i_app All_Forall.All2_symP All_Forall.All2_swap
+ All_Forall.All2_same All_Forall.All2_mapi All_Forall.All2_impl
+ All_Forall.All2_app_inv String.eqb_spec All_Forall.OnOne2_All_mix_left
+ List.exists_last All_Forall.All2i_mapi All_Forall.All2i_impl
+ All_Forall.All_nth_error All_Forall.All_repeat All_Forall.Alli_app_inv
+ All_Forall.All2_trans All_Forall.All2_skipn All_Forall.All2_right
+ All_Forall.All2_eq_eq All_Forall.All2_app_r All_Forall.All_firstn
+ All_Forall.All2_All_right All_Forall.All2_map_left MCOption.option_map_Some
+ CRelationClasses.flip_Reflexive All_Forall.All2_map_right
+ All_Forall.All2_map_left' All_Forall.forallb2_All2 All_Forall.All_app_inv
+ MCList.rev_case CRelationClasses.flip_StrictOrder MCList.nth_error_spec
+ List.destruct_list CRelationClasses.relation_equivalence_equivalence
+ All_Forall.OnOne2_split All_Forall.OnOne2_ind_l All_Forall.OnOne2_exist
+ cardinal_inv_2 All_Forall.All2_All_left All_Forall.OnOne2_mapP
+ All_Forall.OnOne2_impl All_Forall.nth_error_alli
+ Universes.ConstraintType.eq_dec MCList.rev_list_ind In_dec Ascii.eqb_spec
+ All_Forall.All_prod_inv set_induction_min set_induction_max
+ MCCompare.string_Compare All_Forall.All2_nth_error_Some_right
+ MCList.nth_error_Some' All_Forall.map_option_out_All All_Forall.All_rev_map
+ All_Forall.All_rev_inv All_Forall.All_All2_refl
+ CRelationClasses.flip_Antisymmetric All_Forall.All2_app_inv_r fold_rel
+ fold_rec MCCompare.ascii_Compare CRelationClasses.flip_PER
+ All_Forall.Alli_All_mix set_induction All_Forall.All2_mix_inv
+ CRelationClasses.flip_Equivalence All_Forall.forallb_All
+ All_Forall.All2_map_inv MCList.rev_ind All_Forall.All2_right_triv
+ set_induction_bis MCList.list_rect_rev fold_rec_weak BasicAst.ident_eq_spec
+ All_Forall.OnOne2_sym All_Forall.OnOne2_map All_Forall.OnOne2_app
+ All_Forall.All2_from_nth_error All_Forall.map_eq_inj
+ All_Forall.Alli_rev_nth_error All_Forall.All2_map_right'
+ All_Forall.All2_nth_error_Some All_Forall.OnOne2_nth_error
+ All_Forall.All2_All_left_pack All_Forall.All_safe_nth
+ CRelationClasses.subrelation_symmetric MCOption.nth_map_option_out
+ All_Forall.All_map_inv All_Forall.Alli_shift All_Forall.All2_impl_In.
+ [extraction-opaque-accessed,extraction]
+bug5.vo (real: 1.92, user: 1.62, sys: 0.29, mem: 512080 ko)
+COQC bug6.v
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier __top_assumption_ contains __ which is reserved for
+the extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier __top_assumption_ contains __ which is reserved for
+the extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rect contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rec contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rect contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rec contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rect contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rec contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rect contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+File "./theories/Extraction.v", line 7, characters 0-28:
+Warning: The identifier t__rec contains __ which is reserved for the
+extraction [extraction-reserved-identifier,extraction]
+theories/Extraction.vo (real: 3.67, user: 3.11, sys: 0.54, mem: 561316 ko)
+make[5]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/test-suite/plugin-demo'
+cd gen-src && ./to-lower.sh
+Moving Lens.ml to lens.ml
+Moving Lens.mli to lens.mli
+Moving MyPlugin.ml to myPlugin.ml
+Moving MyPlugin.mli to myPlugin.mli
+make -f Makefile.plugin
+make[5]: Entering directory '/builds/coq/coq/_build_ci/metacoq/test-suite/plugin-demo'
+Makefile.plugin:20: Makefile.plugin.conf: No such file or directory
+COQDEP VFILES
+*** Warning: in file test/test.v,
+ required library Loader matches several files in path
+ (found Loader.v in ../../template-coq/theories and theories; used the latter)
+coq_makefile -f _PluginProject -o Makefile.plugin
+Warning: ../../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+COQPP src/g_demo_plugin.mlg
+CAMLDEP gen-src/lens.mli
+CAMLDEP gen-src/myPlugin.mli
+OCAMLLIBDEP src/demo_plugin.mlpack
+CAMLDEP gen-src/lens.ml
+CAMLDEP gen-src/myPlugin.ml
+CAMLDEP src/g_demo_plugin.ml
+CAMLC -c gen-src/lens.mli
+gen-src/lens.cmi (real: 0.04, user: 0.03, sys: 0.01, mem: 19172 ko)
+CAMLC -c gen-src/myPlugin.mli
+gen-src/myPlugin.cmi (real: 0.05, user: 0.04, sys: 0.01, mem: 20208 ko)
+CAMLOPT -c -for-pack Demo_plugin gen-src/lens.ml
+gen-src/lens.cmx (real: 0.07, user: 0.04, sys: 0.02, mem: 22124 ko)
+CAMLOPT -c -for-pack Demo_plugin gen-src/myPlugin.ml
+bug6.vo (real: 1.11, user: 0.85, sys: 0.25, mem: 500408 ko)
+COQC bug7.v
+gen-src/myPlugin.cmx (real: 0.12, user: 0.10, sys: 0.02, mem: 27228 ko)
+CAMLOPT -c -for-pack Demo_plugin src/g_demo_plugin.ml
+src/g_demo_plugin.cmx (real: 0.09, user: 0.06, sys: 0.02, mem: 27844 ko)
+CAMLOPT -pack -o src/demo_plugin.cmx
+src/demo_plugin.cmx (real: 0.06, user: 0.04, sys: 0.02, mem: 21964 ko)
+CAMLOPT -a -o src/demo_plugin.cmxa
+src/demo_plugin.cmxa (real: 0.02, user: 0.00, sys: 0.01, mem: 13200 ko)
+CAMLOPT -shared -o src/demo_plugin.cmxs
+src/demo_plugin.cmxs (real: 0.04, user: 0.01, sys: 0.02, mem: 14256 ko)
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.10, user: 0.05, sys: 0.04, mem: 62308 ko)
+COQC test/test.v
+bug7.vo (real: 1.21, user: 0.89, sys: 0.31, mem: 500252 ko)
+COQC bug8.v
+Notation plus := Nat.add
+Expands to: Notation Coq.Init.Peano.plus
+(1 + 2)
+File "./test/test.v", line 19, characters 0-16:
+Warning: SSReflect's Search command has been moved to the ssrsearch module;
+please Require that module if you still want to use SSReflect's Search
+command [ssr-search-moved,deprecated]
+x: Point -> nat
+y: Point -> nat
+Build_Point: nat -> nat -> Point
+_y: Lens Point Point nat nat
+_x: Lens Point Point nat nat
+test/test.vo (real: 1.51, user: 1.21, sys: 0.29, mem: 513888 ko)
+make[5]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/test-suite/plugin-demo'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/test-suite/plugin-demo'
+COQC bugkncst.v
+bug8.vo (real: 1.10, user: 0.84, sys: 0.25, mem: 500436 ko)
+COQC case.v
+File "./bugkncst.v", line 12, characters 21-36:
+Warning: omega is deprecated since 8.12; use “lia” instead.
+[omega-is-deprecated,deprecated]
+case.vo (real: 1.12, user: 0.88, sys: 0.23, mem: 500120 ko)
+COQC castprop.v
+castprop.vo (real: 1.23, user: 0.94, sys: 0.28, mem: 510368 ko)
+COQC cofix.v
+cofix.vo (real: 1.11, user: 0.81, sys: 0.29, mem: 500192 ko)
+COQC erasure_live_test.v
+bugkncst.vo (real: 57.89, user: 56.51, sys: 1.14, mem: 896928 ko)
+COQC vs.v
+File "./vs.v", line 91, characters 0-145:
+Warning: omega is deprecated since 8.12; use “lia” instead.
+[omega-is-deprecated,deprecated]
+File "./vs.v", line 1065, characters 1-7:
+Warning: omega is deprecated since 8.12; use “lia” instead.
+[omega-is-deprecated,deprecated]
+File "./vs.v", line 1066, characters 1-7:
+Warning: omega is deprecated since 8.12; use “lia” instead.
+[omega-is-deprecated,deprecated]
+File "./vs.v", line 1486, characters 0-143:
+Warning: omega is deprecated since 8.12; use “lia” instead.
+[omega-is-deprecated,deprecated]
+File "./vs.v", line 1519, characters 0-4:
+Warning: Cannot define graph(s) for main [funind-cannot-define-graph,funind]
+File "./vs.v", line 1519, characters 0-4:
+Warning: Cannot build inversion information
+[funind-cannot-build-inversion,funind]
+File "./vs.v", line 1870, characters 0-758:
+Warning: Not a truly recursive fixpoint. [non-recursive,fixpoints]
+File "./vs.v", line 2020, characters 0-145:
+Warning: omega is deprecated since 8.12; use “lia” instead.
+[omega-is-deprecated,deprecated]
+File "./vs.v", line 2347, characters 0-27:
+Warning: The extraction is currently set to bypass opacity, the following
+opaque constant bodies have been accessed
+: the_loop_terminate main_terminate.
+ [extraction-opaque-accessed,extraction]
+File "./vs.v", line 2370, characters 0-21:
+Warning: The extraction is currently set to bypass opacity, the following
+opaque constant bodies have been accessed
+: the_loop_terminate main_terminate.
+ [extraction-opaque-accessed,extraction]
+vs.vo (real: 5.44, user: 4.90, sys: 0.51, mem: 501352 ko)
+COQC evars.v
+evars.vo (real: 1.10, user: 0.79, sys: 0.29, mem: 500100 ko)
+COQC extractable.v
+extractable.vo (real: 1.17, user: 0.88, sys: 0.29, mem: 501748 ko)
+COQC hnf_ctor.v
+hnf_ctor.vo (real: 1.11, user: 0.80, sys: 0.30, mem: 502088 ko)
+COQC issue27.v
+issue27.vo (real: 1.35, user: 1.02, sys: 0.31, mem: 522688 ko)
+COQC issue28.v
+File "./issue28.v", line 31, characters 0-282:
+Warning: Interpreting this declaration as if a global declaration prefixed by
+"Local", i.e. as a global declaration which shall not be available without
+qualification when imported. [local-declaration,scope]
+issue28.vo (real: 1.35, user: 1.05, sys: 0.29, mem: 522968 ko)
+COQC letin.v
+letin.vo (real: 1.21, user: 0.90, sys: 0.29, mem: 500080 ko)
+COQC modules_sections.v
+modules_sections.vo (real: 1.73, user: 1.35, sys: 0.35, mem: 526276 ko)
+COQC mutind.v
+mutind.vo (real: 1.19, user: 0.89, sys: 0.29, mem: 500068 ko)
+COQC opaque.v
+opaque.vo (real: 1.26, user: 0.94, sys: 0.31, mem: 500016 ko)
+COQC proj.v
+proj.vo (real: 1.52, user: 1.21, sys: 0.29, mem: 524028 ko)
+COQC run_in_tactic.v
+run_in_tactic.vo (real: 1.34, user: 1.03, sys: 0.29, mem: 522996 ko)
+COQC safechecker_test.v
+File "./safechecker_test.v", line 39, characters 0-27:
+Warning: To avoid stack overflow, large numbers in nat are interpreted as
+applications of Nat.of_num_uint. [abstract-large-number,numbers]
+File "./safechecker_test.v", line 54, characters 0-44:
+Warning: Notation "_ * _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./safechecker_test.v", line 70, characters 0-50:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./safechecker_test.v", line 72, characters 0-45:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./safechecker_test.v", line 88, characters 0-68:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./safechecker_test.v", line 432, characters 0-221:
+Warning:
+Ignored instance declaration for “e_inv”: “forall
+ (A : Type@{Var(0)})
+ (B : Type@{Var(1)})
+ (f : A -> B),
+ IsEquiv@{Var(0) Var(1)} f ->
+ B -> A” is not a class
+[not-a-class,typeclasses]
+File "./safechecker_test.v", line 440, characters 0-83:
+Warning:
+Ignored instance declaration for “e_fun”: “forall
+ (A : Type@{Var(0)})
+ (B : Type@{Var(1)}),
+ Equiv@{Var(0) Var(1)} A B ->
+ A -> B” is not a class
+[not-a-class,typeclasses]
+safechecker_test.vo (real: 3.34, user: 2.89, sys: 0.44, mem: 726228 ko)
+COQC tmExistingInstance.v
+tmExistingInstance.vo (real: 1.21, user: 0.92, sys: 0.28, mem: 522724 ko)
+COQC tmInferInstance.v
+tmInferInstance.vo (real: 1.30, user: 0.98, sys: 0.31, mem: 522552 ko)
+COQC TypingTests.v
+TypingTests.vo (real: 2.62, user: 2.27, sys: 0.34, mem: 558304 ko)
+COQC unfold.v
+unfold.vo (real: 1.35, user: 1.03, sys: 0.31, mem: 522248 ko)
+COQC univ.v
+univ.vo (real: 1.28, user: 0.99, sys: 0.28, mem: 522992 ko)
+COQC tmVariable.v
+tmVariable.vo (real: 1.31, user: 1.01, sys: 0.29, mem: 524932 ko)
+COQC order_rec.v
+order_rec.vo (real: 1.41, user: 1.09, sys: 0.30, mem: 525128 ko)
+COQC erasure_test.v
+erasure_live_test.vo (real: 88.03, user: 86.21, sys: 1.46, mem: 1038900 ko)
+File "./erasure_test.v", line 44, characters 0-27:
+Warning: To avoid stack overflow, large numbers in nat are interpreted as
+applications of Nat.of_num_uint. [abstract-large-number,numbers]
+erasure_test.vo (real: 1.42, user: 1.10, sys: 0.31, mem: 543584 ko)
+ Time | Peak Mem | File Name
+---------------------------------------------
+2m59.43s | 1038900 ko | Total Time / Peak Mem
+---------------------------------------------
+1m26.21s | 1038900 ko | erasure_live_test.vo
+0m56.51s | 896928 ko | bugkncst.vo
+0m04.90s | 501352 ko | vs.vo
+0m02.89s | 726228 ko | safechecker_test.vo
+0m02.27s | 558304 ko | TypingTests.vo
+0m01.62s | 512080 ko | bug5.vo
+0m01.35s | 526276 ko | modules_sections.vo
+0m01.21s | 524028 ko | proj.vo
+0m01.10s | 543584 ko | erasure_test.vo
+0m01.09s | 525128 ko | order_rec.vo
+0m01.05s | 522968 ko | issue28.vo
+0m01.03s | 510284 ko | bug1.vo
+0m01.03s | 522996 ko | run_in_tactic.vo
+0m01.03s | 522248 ko | unfold.vo
+0m01.02s | 522688 ko | issue27.vo
+0m01.01s | 524932 ko | tmVariable.vo
+0m00.99s | 522992 ko | univ.vo
+0m00.98s | 522552 ko | tmInferInstance.vo
+0m00.94s | 510368 ko | castprop.vo
+0m00.94s | 500016 ko | opaque.vo
+0m00.92s | 522724 ko | tmExistingInstance.vo
+0m00.90s | 500080 ko | letin.vo
+0m00.89s | 500252 ko | bug7.vo
+0m00.89s | 500068 ko | mutind.vo
+0m00.88s | 500120 ko | case.vo
+0m00.88s | 501748 ko | extractable.vo
+0m00.85s | 500408 ko | bug6.vo
+0m00.84s | 500436 ko | bug8.vo
+0m00.81s | 500380 ko | bug2.vo
+0m00.81s | 500192 ko | cofix.vo
+0m00.80s | 502088 ko | hnf_ctor.vo
+0m00.79s | 500100 ko | evars.vo
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/test-suite'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/test-suite'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq'
+make[1]: Leaving directory '/builds/coq/coq/_build_ci/metacoq'
++ make install
++ '[' -z x ']'
++ command make install
++ make install
+make[1]: Entering directory '/builds/coq/coq/_build_ci/metacoq'
+make -C template-coq
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.coq
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Nothing to be done for 'real-all'.
+./update_plugin.sh
+Updating gen-src from src
+Copying from src to gen-src
+Renaming files to camelCase
+patching file gen-src/cRelationClasses.mli
+Reversed (or previously applied) patch detected! Skipping patch.
+1 out of 1 hunk ignored -- saving rejects to file gen-src/cRelationClasses.mli.rej
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.template optfiles
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Nothing to be done for 'optfiles'.
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+cp src/template_coq.cm* build/
+make -f Makefile.template
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Nothing to be done for 'real-all'.
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.plugin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+CAMLDEP gen-src/univSubst0.mli
+CAMLDEP gen-src/universes0.mli
+CAMLDEP gen-src/string0.mli
+CAMLDEP gen-src/run_extractable.mli
+CAMLDEP gen-src/specif.mli
+CAMLDEP gen-src/pretty.mli
+CAMLDEP gen-src/plugin_core.mli
+CAMLDEP gen-src/peanoNat.mli
+CAMLDEP gen-src/ordersTac.mli
+CAMLDEP gen-src/orders.mli
+CAMLDEP gen-src/ordersLists.mli
+CAMLDEP gen-src/ordersFacts.mli
+CAMLDEP gen-src/orderedType0.mli
+CAMLDEP gen-src/numeral.mli
+CAMLDEP gen-src/nat0.mli
+CAMLDEP gen-src/mSetProperties.mli
+CAMLDEP gen-src/mSetList.mli
+CAMLDEP gen-src/mSetInterface.mli
+CAMLDEP gen-src/mSetFacts.mli
+CAMLDEP gen-src/mSetDecide.mli
+CAMLDEP gen-src/mCString.mli
+CAMLDEP gen-src/mCRelations.mli
+CAMLDEP gen-src/mCProd.mli
+CAMLDEP gen-src/mCOption.mli
+CAMLDEP gen-src/mCList.mli
+CAMLDEP gen-src/mCCompare.mli
+CAMLDEP gen-src/mCPrelude.mli
+CAMLDEP gen-src/logic0.mli
+CAMLDEP gen-src/list0.mli
+CAMLDEP gen-src/liftSubst.mli
+CAMLDEP gen-src/hexadecimal.mli
+CAMLDEP gen-src/extractable.mli
+CAMLDEP gen-src/equalities.mli
+CAMLDEP gen-src/environment.mli
+CAMLDEP gen-src/decimal.mli
+CAMLDEP gen-src/datatypes.mli
+CAMLDEP gen-src/cRelationClasses.mli
+CAMLDEP gen-src/config0.mli
+CAMLDEP gen-src/compare_dec.mli
+CAMLDEP gen-src/common0.mli
+CAMLDEP gen-src/bool.mli
+CAMLDEP gen-src/binPos.mli
+CAMLDEP gen-src/binPosDef.mli
+CAMLDEP gen-src/binNums.mli
+CAMLDEP gen-src/binNat.mli
+CAMLDEP gen-src/binInt.mli
+CAMLDEP gen-src/basics.mli
+CAMLDEP gen-src/basicAst.mli
+CAMLDEP gen-src/astUtils.mli
+CAMLDEP gen-src/ast0.mli
+CAMLDEP gen-src/ascii.mli
+CAMLDEP gen-src/all_Forall.mli
+OCAMLLIBDEP gen-src/metacoq_template_plugin.mlpack
+CAMLDEP gen-src/univSubst0.ml
+CAMLDEP gen-src/universes0.ml
+CAMLDEP gen-src/tm_util.ml
+CAMLDEP gen-src/string0.ml
+CAMLDEP gen-src/specif.ml
+CAMLDEP gen-src/run_extractable.ml
+CAMLDEP gen-src/quoter.ml
+CAMLDEP gen-src/reification.ml
+CAMLDEP gen-src/pretty.ml
+CAMLDEP gen-src/plugin_core.ml
+CAMLDEP gen-src/peanoNat.ml
+CAMLDEP gen-src/ordersTac.ml
+CAMLDEP gen-src/orders.ml
+CAMLDEP gen-src/ordersLists.ml
+CAMLDEP gen-src/ordersFacts.ml
+CAMLDEP gen-src/orderedType0.ml
+CAMLDEP gen-src/numeral.ml
+CAMLDEP gen-src/nat0.ml
+CAMLDEP gen-src/mSetProperties.ml
+CAMLDEP gen-src/mSetList.ml
+CAMLDEP gen-src/mSetInterface.ml
+CAMLDEP gen-src/mSetFacts.ml
+CAMLDEP gen-src/mSetDecide.ml
+CAMLDEP gen-src/mCString.ml
+CAMLDEP gen-src/mCRelations.ml
+CAMLDEP gen-src/mCProd.ml
+CAMLDEP gen-src/mCOption.ml
+CAMLDEP gen-src/mCList.ml
+CAMLDEP gen-src/mCCompare.ml
+CAMLDEP gen-src/mCPrelude.ml
+CAMLDEP gen-src/logic0.ml
+CAMLDEP gen-src/list0.ml
+CAMLDEP gen-src/liftSubst.ml
+CAMLDEP gen-src/hexadecimal.ml
+CAMLDEP gen-src/extractable.ml
+CAMLDEP gen-src/equalities.ml
+CAMLDEP gen-src/environment.ml
+CAMLDEP gen-src/denoter.ml
+CAMLDEP gen-src/decimal.ml
+CAMLDEP gen-src/datatypes.ml
+CAMLDEP gen-src/cRelationClasses.ml
+CAMLDEP gen-src/config0.ml
+CAMLDEP gen-src/compare_dec.ml
+CAMLDEP gen-src/common0.ml
+CAMLDEP gen-src/bool.ml
+CAMLDEP gen-src/binPos.ml
+CAMLDEP gen-src/binPosDef.ml
+CAMLDEP gen-src/binNums.ml
+CAMLDEP gen-src/binNat.ml
+CAMLDEP gen-src/binInt.ml
+CAMLDEP gen-src/basics.ml
+CAMLDEP gen-src/basicAst.ml
+CAMLDEP gen-src/astUtils.ml
+CAMLDEP gen-src/ast_quoter.ml
+CAMLDEP gen-src/ast_denoter.ml
+CAMLDEP gen-src/ast0.ml
+CAMLDEP gen-src/ascii.ml
+CAMLDEP gen-src/all_Forall.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/tm_util.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/reification.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/reification.cmx (real: 0.03, user: 0.01, sys: 0.01, mem: 14744 ko)
+CAMLC -c gen-src/plugin_core.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/plugin_core.cmi (real: 0.02, user: 0.01, sys: 0.01, mem: 17304 ko)
+CAMLC -c gen-src/tm_util.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/tm_util.cmx (real: 0.08, user: 0.04, sys: 0.03, mem: 21988 ko)
+CAMLC -c gen-src/reification.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/reification.cmo (real: 0.01, user: 0.00, sys: 0.01, mem: 11896 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/tm_util.cmo (real: 0.04, user: 0.03, sys: 0.01, mem: 18588 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/denoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/denoter.cmx (real: 0.08, user: 0.06, sys: 0.02, mem: 24368 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/plugin_core.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/plugin_core.cmx (real: 0.10, user: 0.07, sys: 0.02, mem: 27576 ko)
+gen-src/quoter.cmx (real: 0.20, user: 0.16, sys: 0.03, mem: 34528 ko)
+CAMLC -c gen-src/quoter.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast_quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/quoter.cmo (real: 0.12, user: 0.09, sys: 0.02, mem: 26444 ko)
+CAMLC -c gen-src/ast_quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast_quoter.cmx (real: 0.12, user: 0.09, sys: 0.03, mem: 27268 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast_denoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast_quoter.cmo (real: 0.07, user: 0.05, sys: 0.02, mem: 22532 ko)
+CAMLC -c gen-src/run_extractable.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/run_extractable.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 13788 ko)
+gen-src/ast_denoter.cmx (real: 0.09, user: 0.07, sys: 0.02, mem: 27192 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/run_extractable.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/run_extractable.cmx (real: 0.14, user: 0.11, sys: 0.02, mem: 30592 ko)
+CAMLOPT -pack -o gen-src/metacoq_template_plugin.cmx
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmx (real: 0.21, user: 0.09, sys: 0.04, mem: 31480 ko)
+CAMLOPT -a -o gen-src/metacoq_template_plugin.cmxa
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmxa (real: 0.03, user: 0.01, sys: 0.02, mem: 13916 ko)
+CAMLOPT -shared -o gen-src/metacoq_template_plugin.cmxs
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmxs (real: 0.14, user: 0.10, sys: 0.03, mem: 18520 ko)
+COQC theories/ExtractableLoader.v
+theories/ExtractableLoader.vo (real: 0.10, user: 0.06, sys: 0.04, mem: 62624 ko)
+cp gen-src/metacoq_template_plugin.cm* build/
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -C checker
+make -C pcuic
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -f Makefile.coq
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -f Makefile.pcuic
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[4]: Nothing to be done for 'real-all'.
+./update_plugin.sh
+Renaming extracted files
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -C examples
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/examples'
+make -f Makefile.coq pretty-timed
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/examples'
+make[4]: Nothing to be done for 'real-all'.
+# echo "All done, moving extraction files!"
+# ./clean_extraction.sh
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -C safechecker
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.safechecker
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[6]: Nothing to be done for 'real-all'.
+make[4]: Nothing to be done for 'real-all'.
+echo "Done extracting the safe checker, moving extraction files!"
+Done extracting the safe checker, moving extraction files!
+./clean_extraction.sh
+Cleaning result of extraction
+Extraction up-to date
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.plugin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+ Time | Peak Mem | File Name
+--------------------------------------------
+0m22.62s | 581920 ko | Total Time / Peak Mem
+--------------------------------------------
+0m19.93s | 581920 ko | tauto.vo
+0m01.56s | 527740 ko | demo.vo
+0m01.13s | 524144 ko | add_constructor.vo
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/examples'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/examples'
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.11, user: 0.07, sys: 0.03, mem: 63372 ko)
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -C erasure
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -f Makefile.erasure
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[4]: Nothing to be done for 'real-all'.
+echo "Done extracting the erasure, moving extraction files!"
+Done extracting the erasure, moving extraction files!
+./clean_extraction.sh
+Cleaning result of extraction
+Extraction up-to date
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+./clean_extraction.sh
+Cleaning result of extraction
+Extraction up-to date
+make -f Makefile.plugin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.44, user: 0.28, sys: 0.15, mem: 237408 ko)
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -C template-coq install
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.coq
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Nothing to be done for 'real-all'.
+./update_plugin.sh
+Updating gen-src from src
+Copying from src to gen-src
+Renaming files to camelCase
+patching file gen-src/cRelationClasses.mli
+Reversed (or previously applied) patch detected! Skipping patch.
+1 out of 1 hunk ignored -- saving rejects to file gen-src/cRelationClasses.mli.rej
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.template optfiles
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Nothing to be done for 'optfiles'.
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+cp src/template_coq.cm* build/
+make -f Makefile.template
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Nothing to be done for 'real-all'.
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.plugin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+CAMLDEP gen-src/univSubst0.mli
+CAMLDEP gen-src/universes0.mli
+CAMLDEP gen-src/string0.mli
+CAMLDEP gen-src/specif.mli
+CAMLDEP gen-src/run_extractable.mli
+CAMLDEP gen-src/pretty.mli
+CAMLDEP gen-src/plugin_core.mli
+CAMLDEP gen-src/peanoNat.mli
+CAMLDEP gen-src/ordersTac.mli
+CAMLDEP gen-src/orders.mli
+CAMLDEP gen-src/ordersLists.mli
+CAMLDEP gen-src/ordersFacts.mli
+CAMLDEP gen-src/orderedType0.mli
+CAMLDEP gen-src/numeral.mli
+CAMLDEP gen-src/nat0.mli
+CAMLDEP gen-src/mSetProperties.mli
+CAMLDEP gen-src/mSetList.mli
+CAMLDEP gen-src/mSetFacts.mli
+CAMLDEP gen-src/mSetInterface.mli
+CAMLDEP gen-src/mSetDecide.mli
+CAMLDEP gen-src/mCString.mli
+CAMLDEP gen-src/mCRelations.mli
+CAMLDEP gen-src/mCProd.mli
+CAMLDEP gen-src/mCOption.mli
+CAMLDEP gen-src/mCList.mli
+CAMLDEP gen-src/mCCompare.mli
+CAMLDEP gen-src/mCPrelude.mli
+CAMLDEP gen-src/logic0.mli
+CAMLDEP gen-src/list0.mli
+CAMLDEP gen-src/liftSubst.mli
+CAMLDEP gen-src/hexadecimal.mli
+CAMLDEP gen-src/extractable.mli
+CAMLDEP gen-src/equalities.mli
+CAMLDEP gen-src/environment.mli
+CAMLDEP gen-src/decimal.mli
+CAMLDEP gen-src/datatypes.mli
+CAMLDEP gen-src/cRelationClasses.mli
+CAMLDEP gen-src/config0.mli
+CAMLDEP gen-src/compare_dec.mli
+CAMLDEP gen-src/common0.mli
+CAMLDEP gen-src/bool.mli
+CAMLDEP gen-src/binPos.mli
+CAMLDEP gen-src/binPosDef.mli
+CAMLDEP gen-src/binNums.mli
+CAMLDEP gen-src/binNat.mli
+CAMLDEP gen-src/binInt.mli
+CAMLDEP gen-src/basics.mli
+CAMLDEP gen-src/basicAst.mli
+CAMLDEP gen-src/astUtils.mli
+CAMLDEP gen-src/ast0.mli
+CAMLDEP gen-src/ascii.mli
+CAMLDEP gen-src/all_Forall.mli
+OCAMLLIBDEP gen-src/metacoq_template_plugin.mlpack
+CAMLDEP gen-src/univSubst0.ml
+CAMLDEP gen-src/universes0.ml
+CAMLDEP gen-src/tm_util.ml
+CAMLDEP gen-src/string0.ml
+CAMLDEP gen-src/specif.ml
+CAMLDEP gen-src/run_extractable.ml
+CAMLDEP gen-src/quoter.ml
+CAMLDEP gen-src/reification.ml
+CAMLDEP gen-src/pretty.ml
+CAMLDEP gen-src/plugin_core.ml
+CAMLDEP gen-src/peanoNat.ml
+CAMLDEP gen-src/ordersTac.ml
+CAMLDEP gen-src/orders.ml
+CAMLDEP gen-src/ordersLists.ml
+CAMLDEP gen-src/ordersFacts.ml
+CAMLDEP gen-src/orderedType0.ml
+CAMLDEP gen-src/numeral.ml
+CAMLDEP gen-src/nat0.ml
+CAMLDEP gen-src/mSetProperties.ml
+CAMLDEP gen-src/mSetList.ml
+CAMLDEP gen-src/mSetInterface.ml
+CAMLDEP gen-src/mSetFacts.ml
+CAMLDEP gen-src/mSetDecide.ml
+CAMLDEP gen-src/mCString.ml
+CAMLDEP gen-src/mCRelations.ml
+CAMLDEP gen-src/mCProd.ml
+CAMLDEP gen-src/mCOption.ml
+CAMLDEP gen-src/mCList.ml
+CAMLDEP gen-src/mCCompare.ml
+CAMLDEP gen-src/mCPrelude.ml
+CAMLDEP gen-src/logic0.ml
+CAMLDEP gen-src/list0.ml
+CAMLDEP gen-src/liftSubst.ml
+CAMLDEP gen-src/hexadecimal.ml
+CAMLDEP gen-src/extractable.ml
+CAMLDEP gen-src/equalities.ml
+CAMLDEP gen-src/environment.ml
+CAMLDEP gen-src/denoter.ml
+CAMLDEP gen-src/decimal.ml
+CAMLDEP gen-src/datatypes.ml
+CAMLDEP gen-src/cRelationClasses.ml
+CAMLDEP gen-src/config0.ml
+CAMLDEP gen-src/compare_dec.ml
+CAMLDEP gen-src/common0.ml
+CAMLDEP gen-src/bool.ml
+CAMLDEP gen-src/binPos.ml
+CAMLDEP gen-src/binPosDef.ml
+CAMLDEP gen-src/binNums.ml
+CAMLDEP gen-src/binNat.ml
+CAMLDEP gen-src/binInt.ml
+CAMLDEP gen-src/basics.ml
+CAMLDEP gen-src/astUtils.ml
+CAMLDEP gen-src/basicAst.ml
+CAMLDEP gen-src/ast_denoter.ml
+CAMLDEP gen-src/ast_quoter.ml
+CAMLDEP gen-src/ast0.ml
+CAMLDEP gen-src/ascii.ml
+CAMLDEP gen-src/all_Forall.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/reification.ml
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/tm_util.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/reification.cmx (real: 0.02, user: 0.01, sys: 0.01, mem: 14740 ko)
+CAMLC -c gen-src/plugin_core.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/plugin_core.cmi (real: 0.03, user: 0.02, sys: 0.00, mem: 17196 ko)
+CAMLC -c gen-src/tm_util.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/tm_util.cmx (real: 0.08, user: 0.04, sys: 0.02, mem: 22136 ko)
+CAMLC -c gen-src/reification.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/reification.cmo (real: 0.02, user: 0.01, sys: 0.00, mem: 11760 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/quoter.ml
+gen-src/tm_util.cmo (real: 0.04, user: 0.02, sys: 0.01, mem: 18448 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/denoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/denoter.cmx (real: 0.12, user: 0.08, sys: 0.02, mem: 24324 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/plugin_core.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/quoter.cmx (real: 0.22, user: 0.19, sys: 0.03, mem: 34468 ko)
+CAMLC -c gen-src/quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/quoter.cmo (real: 0.12, user: 0.10, sys: 0.01, mem: 26404 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast_quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/plugin_core.cmx (real: 0.28, user: 0.07, sys: 0.03, mem: 27504 ko)
+CAMLC -c gen-src/ast_quoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast_quoter.cmo (real: 0.09, user: 0.05, sys: 0.02, mem: 22440 ko)
+CAMLC -c gen-src/run_extractable.mli
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/run_extractable.cmi (real: 0.02, user: 0.01, sys: 0.00, mem: 13824 ko)
+gen-src/ast_quoter.cmx (real: 0.20, user: 0.10, sys: 0.03, mem: 27364 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/ast_denoter.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/ast_denoter.cmx (real: 0.19, user: 0.08, sys: 0.03, mem: 27288 ko)
+CAMLOPT -c -for-pack Metacoq_template_plugin gen-src/run_extractable.ml
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/run_extractable.cmx (real: 0.18, user: 0.09, sys: 0.03, mem: 30504 ko)
+CAMLOPT -pack -o gen-src/metacoq_template_plugin.cmx
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmx (real: 0.18, user: 0.11, sys: 0.04, mem: 31632 ko)
+CAMLOPT -a -o gen-src/metacoq_template_plugin.cmxa
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmxa (real: 0.05, user: 0.01, sys: 0.02, mem: 14056 ko)
+CAMLOPT -shared -o gen-src/metacoq_template_plugin.cmxs
+findlib: [WARNING] Interface numeral.cmi occurs in several directories: /builds/coq/coq/_install_ci/lib/coq/plugins/syntax, gen-src
+gen-src/metacoq_template_plugin.cmxs (real: 0.15, user: 0.10, sys: 0.04, mem: 18416 ko)
+COQC theories/ExtractableLoader.v
+theories/ExtractableLoader.vo (real: 0.09, user: 0.04, sys: 0.04, mem: 62716 ko)
+cp gen-src/metacoq_template_plugin.cm* build/
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.coq install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+INSTALL theories/utils/MCPrelude.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/All_Forall.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCArith.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCCompare.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCEquality.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/LibHypsNaming.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCList.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCOption.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCProd.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCRelations.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCSquash.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCString.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/wGraph.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/common/uGraph.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//common
+INSTALL theories/utils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/config.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Universes.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/BasicAst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Environment.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Ast.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/AstUtils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Induction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/LiftSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/UnivSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Pretty.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/EnvironmentTyping.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/WfInv.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Typing.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TypingWf.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TemplateMonad.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TemplateMonad/Common.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/TemplateMonad/Core.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/TemplateMonad/Extractable.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/monad_utils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Constants.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Extraction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/utils/MCPrelude.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/All_Forall.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCArith.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCCompare.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCEquality.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/LibHypsNaming.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCList.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCOption.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCProd.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCRelations.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCSquash.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCString.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/wGraph.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/common/uGraph.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//common
+INSTALL theories/utils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/config.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Universes.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/BasicAst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Environment.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Ast.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/AstUtils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Induction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/LiftSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/UnivSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Pretty.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/EnvironmentTyping.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/WfInv.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Typing.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TypingWf.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TemplateMonad.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TemplateMonad/Common.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/TemplateMonad/Core.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/TemplateMonad/Extractable.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/monad_utils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Constants.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Extraction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/utils/MCPrelude.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/All_Forall.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCArith.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCCompare.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCEquality.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/LibHypsNaming.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCList.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCOption.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCProd.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCRelations.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCSquash.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/MCString.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/utils/wGraph.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//utils
+INSTALL theories/common/uGraph.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//common
+INSTALL theories/utils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/config.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Universes.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/BasicAst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Environment.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Ast.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/AstUtils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Induction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/LiftSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/UnivSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Pretty.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/EnvironmentTyping.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/WfInv.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Typing.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TypingWf.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TemplateMonad.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/TemplateMonad/Common.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/TemplateMonad/Core.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/TemplateMonad/Extractable.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template//TemplateMonad
+INSTALL theories/monad_utils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Constants.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Extraction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.template install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+INSTALL theories/Loader.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/All.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Loader.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/All.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/Loader.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/All.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL src/template_coq.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL src/template_coq.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL src/template_coq.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL src/template_coq.cmxa /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL src/template_coq.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -f Makefile.plugin install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+INSTALL theories/ExtractableLoader.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/ExtractableLoader.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL theories/ExtractableLoader.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/mCPrelude.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/metacoq_template_plugin.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/mCPrelude.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/metacoq_template_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/metacoq_template_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/metacoq_template_plugin.cmxa /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/mCPrelude.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+INSTALL gen-src/metacoq_template_plugin.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Template/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/template-coq'
+make -C checker install
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -f Makefile.coq
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[4]: Nothing to be done for 'real-all'.
+./update_plugin.sh
+Renaming extracted files
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -f Makefile.coq install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+INSTALL theories/Reflect.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Generation.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/WeakeningEnv.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Closed.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Weakening.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Substitution.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Checker.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/WcbvEval.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Retyping.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Normal.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/All.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Reflect.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Generation.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/WeakeningEnv.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Closed.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Weakening.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Substitution.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Checker.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/WcbvEval.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Retyping.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Normal.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/All.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Reflect.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Generation.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/WeakeningEnv.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Closed.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Weakening.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Substitution.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Checker.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/WcbvEval.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Retyping.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/Normal.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+INSTALL theories/All.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Checker/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+# make -f Makefile.plugin install
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/checker'
+make -C pcuic install
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -f Makefile.pcuic
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[4]: Nothing to be done for 'real-all'.
+# echo "All done, moving extraction files!"
+# ./clean_extraction.sh
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -f Makefile.pcuic install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+INSTALL theories/PCUICUtils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSize.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAstUtils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInduction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICReflect.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICLiftSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUnivSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICTyping.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInversion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPosition.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICNormal.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICNameless.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICEquality.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWeakeningEnv.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICClosed.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWeakening.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUnivSubstitution.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSubstitution.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCumulativity.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICReduction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICParallelReduction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICParallelReductionConfluence.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICConfluence.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICContextConversion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICConversion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICGeneration.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAlpha.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPrincipality.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCtxShape.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICContexts.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICArities.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSpine.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInductives.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICValidity.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInductiveInversion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSR.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICMetaTheory.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWcbvEval.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICChecker.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPretty.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCheckerCompleteness.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICRetyping.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICElimination.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSN.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSigmaCalculus.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSafeLemmata.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/TemplateToPCUIC.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/TemplateToPCUICCorrectness.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICToTemplate.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICToTemplateCorrectness.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUtils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSize.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAstUtils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInduction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICReflect.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICLiftSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUnivSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICTyping.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInversion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPosition.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICNormal.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICNameless.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICEquality.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWeakeningEnv.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICClosed.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWeakening.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUnivSubstitution.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSubstitution.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCumulativity.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICReduction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICParallelReduction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICParallelReductionConfluence.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICConfluence.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICContextConversion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICConversion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICGeneration.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAlpha.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPrincipality.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCtxShape.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICContexts.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICArities.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSpine.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInductives.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICValidity.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInductiveInversion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSR.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICMetaTheory.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWcbvEval.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICChecker.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPretty.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCheckerCompleteness.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICRetyping.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICElimination.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSN.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSigmaCalculus.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSafeLemmata.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/TemplateToPCUIC.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/TemplateToPCUICCorrectness.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICToTemplate.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICToTemplateCorrectness.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUtils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSize.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAstUtils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInduction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICReflect.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICLiftSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUnivSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICTyping.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInversion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPosition.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICNormal.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICNameless.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICEquality.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWeakeningEnv.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICClosed.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWeakening.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICUnivSubstitution.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSubstitution.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCumulativity.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICReduction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICParallelReduction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICParallelReductionConfluence.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICConfluence.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICContextConversion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICConversion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICGeneration.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICAlpha.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPrincipality.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCtxShape.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICContexts.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICArities.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSpine.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInductives.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICValidity.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICInductiveInversion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSR.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICMetaTheory.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICWcbvEval.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICChecker.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICPretty.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICCheckerCompleteness.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICRetyping.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICElimination.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSN.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSigmaCalculus.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICSafeLemmata.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/TemplateToPCUIC.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/TemplateToPCUICCorrectness.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICToTemplate.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+INSTALL theories/PCUICToTemplateCorrectness.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/PCUIC/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+# make -f Makefile.plugin install
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/pcuic'
+make -C safechecker install
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.safechecker
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[4]: Nothing to be done for 'real-all'.
+echo "Done extracting the safe checker, moving extraction files!"
+Done extracting the safe checker, moving extraction files!
+./clean_extraction.sh
+Cleaning result of extraction
+Extraction up-to date
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.plugin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.12, user: 0.07, sys: 0.04, mem: 63996 ko)
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.safechecker install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+INSTALL theories/PCUICSafeReduce.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeConversion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeChecker.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/SafeTemplateChecker.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeRetyping.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/Extraction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeReduce.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeConversion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeChecker.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/SafeTemplateChecker.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeRetyping.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/Extraction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeReduce.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeConversion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeChecker.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/SafeTemplateChecker.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/PCUICSafeRetyping.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/Extraction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -f Makefile.plugin install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+INSTALL theories/Loader.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/Loader.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL theories/Loader.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL src/metacoq_safechecker_plugin.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL src/metacoq_safechecker_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL src/metacoq_safechecker_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL src/metacoq_safechecker_plugin.cmxa /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+INSTALL src/metacoq_safechecker_plugin.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/SafeChecker/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/safechecker'
+make -C erasure install
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -f Makefile.erasure
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[4]: Nothing to be done for 'real-all'.
+echo "Done extracting the erasure, moving extraction files!"
+Done extracting the erasure, moving extraction files!
+./clean_extraction.sh
+Cleaning result of extraction
+Extraction up-to date
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+./clean_extraction.sh
+Cleaning result of extraction
+Extraction up-to date
+make -f Makefile.plugin
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+COQC theories/Loader.v
+theories/Loader.vo (real: 0.45, user: 0.29, sys: 0.15, mem: 238116 ko)
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -f Makefile.erasure install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+INSTALL theories/EAst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAstUtils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EInduction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ELiftSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EPretty.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ECSubst.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EWcbvEval.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EWndEval.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ETyping.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Extract.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAll.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Extraction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Prelim.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ESubstitution.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EInversion.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EArities.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ErasureCorrectness.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ErasureFunction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/SafeErasureFunction.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/SafeTemplateErasure.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAstUtils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EInduction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ELiftSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EPretty.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ECSubst.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EWcbvEval.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EWndEval.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ETyping.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Extract.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAll.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Extraction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Prelim.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ESubstitution.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EInversion.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EArities.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ErasureCorrectness.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ErasureFunction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/SafeErasureFunction.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/SafeTemplateErasure.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAstUtils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EInduction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ELiftSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EPretty.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ECSubst.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EWcbvEval.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EWndEval.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ETyping.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Extract.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EAll.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Extraction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Prelim.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ESubstitution.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EInversion.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/EArities.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ErasureCorrectness.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/ErasureFunction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/SafeErasureFunction.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/SafeTemplateErasure.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -f Makefile.plugin install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+INSTALL theories/Loader.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Loader.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL theories/Loader.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL src/metacoq_erasure_plugin.cmi /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL src/metacoq_erasure_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL src/metacoq_erasure_plugin.cmxs /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL src/metacoq_erasure_plugin.cmxa /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+INSTALL src/metacoq_erasure_plugin.cmx /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Erasure/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/erasure'
+make -C translations install
+make[2]: Entering directory '/builds/coq/coq/_build_ci/metacoq/translations'
+cat metacoq-config > _CoqProject
+cat _CoqProject.in >> _CoqProject
+coq_makefile -f _CoqProject -o Makefile.coq
+Warning: ../template-coq/theories (used in -R or -Q) is not a subdirectory of the current directory
+
+make -f Makefile.coq pretty-timed
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/translations'
+COQDEP VFILES
+*** Warning: in file sigma.v,
+ required library Loader matches several files in path
+ (found Loader.v in ../template-coq/theories and ../checker/theories; used the latter)
+COQC sigma.v
+COQC MiniHoTT.v
+File "./MiniHoTT.v", line 37, characters 0-198:
+Warning: Notation "exists _ .. _ , _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./MiniHoTT.v", line 41, characters 0-64:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./MiniHoTT.v", line 96, characters 0-37:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope equiv_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT.v", line 98, characters 0-35:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope path_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT.v", line 99, characters 0-45:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope fibration_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT.v", line 100, characters 0-37:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope trunc_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT.v", line 136, characters 0-21:
+Warning: Adding and removing hints in the core database implicitly is
+deprecated. Please specify a hint database.
+[implicit-core-hint-db,deprecated]
+File "./MiniHoTT.v", line 139, characters 0-52:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./MiniHoTT.v", line 140, characters 0-45:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+sigma.vo (real: 1.17, user: 0.86, sys: 0.30, mem: 500064 ko)
+COQC MiniHoTT_paths.v
+File "./MiniHoTT_paths.v", line 41, characters 0-198:
+Warning: Notation "exists _ .. _ , _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./MiniHoTT_paths.v", line 45, characters 0-64:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./MiniHoTT_paths.v", line 100, characters 0-37:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope equiv_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT_paths.v", line 102, characters 0-35:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope path_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT_paths.v", line 103, characters 0-45:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope fibration_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT_paths.v", line 104, characters 0-37:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope trunc_scope.". [undeclared-scope,deprecated]
+File "./MiniHoTT_paths.v", line 140, characters 0-21:
+Warning: Adding and removing hints in the core database implicitly is
+deprecated. Please specify a hint database.
+[implicit-core-hint-db,deprecated]
+File "./MiniHoTT_paths.v", line 143, characters 0-52:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./MiniHoTT_paths.v", line 144, characters 0-45:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+MiniHoTT_paths.vo (real: 3.65, user: 3.42, sys: 0.20, mem: 350716 ko)
+COQC translation_utils.v
+MiniHoTT.vo (real: 4.94, user: 4.41, sys: 0.50, mem: 348856 ko)
+translation_utils.vo (real: 2.16, user: 1.82, sys: 0.33, mem: 554420 ko)
+COQC param_original.v
+COQC param_cheap_packed.v
+Coq.Init.Datatypes.nat has been translated.
+Coq.Init.Datatypes.list has been translated.
+listᵗ : forall A : TYPE, list A.1 -> Type
+ : forall A : TYPE, list A.1 -> Type
+nilᵗ : forall A : TYPE, listᵗ A []
+ : forall A : TYPE, listᵗ A []
+consᵗ
+:
+forall (A : TYPE) (x : El A) (lH : ∃ l : list A.1, listᵗ A l),
+listᵗ A (x.1 :: lH.1)
+ : forall (A : TYPE) (x : El A) (lH : ∃ l : list A.1, listᵗ A l),
+ listᵗ A (x.1 :: lH.1)
+param_cheap_packed.vo (real: 1.82, user: 1.49, sys: 0.32, mem: 553352 ko)
+COQC param_generous_packed.v
+"T has been translated as Tᵗ"
+"tm has been translated as tmᵗ"
+Coq.Init.Datatypes.nat has been translated.
+Coq.Init.Datatypes.bool has been translated.
+"pred has been translated as predᵗ"
+"ID has been translated as IDᵗ"
+"toto has been translated as totoᵗ"
+"my_id has been translated as my_idᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq has been translated."
+"Translating MetaCoq.Translations.param_original.Id2.ID"
+"ID has been translated as IDᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating Coq.Init.Logic.eq_trans"
+"eq_trans has been translated as eq_transᵗ"
+"Translating Coq.Init.Logic.eq_sym"
+"eq_sym has been translated as eq_symᵗ"
+"Translating MetaCoq.Translations.param_original.Id2.ID"
+"MetaCoq.Translations.param_original.Id2.ID was already translated"
+"Translating MetaCoq.Translations.param_original.Id2.myf"
+"myf has been translated as myfᵗ"
+Coq.Vectors.VectorDef.t has been translated.
+Coq.Arith.Even.even has been translated.
+File "./param_generous_packed.v", line 7, characters 0-30:
+Warning: Notation "exists _ .. _ , _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./param_generous_packed.v", line 7, characters 0-30:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./param_generous_packed.v", line 7, characters 0-30:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./param_generous_packed.v", line 7, characters 0-30:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+Coq.Init.Datatypes.list has been translated.
+"rev_type has been translated as rev_typeᵗ"
+Fresh universe MetaCoq.Translations.param_generous_packed.603 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.604 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.605 was added to the context.
+"Ty has been translated as Tyᵗ"
+Tyᵗ : El Tyᵗ
+ : El Tyᵗ
+File "./param_original.v", line 261, characters 0-24:
+Warning: Notation "exists _ .. _ , _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./param_original.v", line 261, characters 0-24:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./param_original.v", line 261, characters 0-24:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./param_original.v", line 261, characters 0-24:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+"sigT has been translated as sigTᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq has been translated."
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"paths has been translated as pathsᵗ"
+"existT has been translated as existTᵗ"
+"Translating MetaCoq.Translations.param_original.Axioms.UIP"
+"UIP has been translated as UIPᵗ"
+"wFunext has been translated as wFunextᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"MetaCoq.Translations.MiniHoTT.paths was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.Sect"
+"Sect has been translated as Sectᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.idpath"
+"idpath has been translated as idpathᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.paths_ind"
+"paths_ind has been translated as paths_indᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.transport"
+"transport has been translated as transportᵗ"
+Finished transaction in 1.071 secs (0.906u,0.16s) (successful)
+"Translating MetaCoq.Translations.MiniHoTT.ap"
+"ap has been translated as apᵗ"
+"sigT_ind has been translated as sigT_indᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.IsEquiv"
+"MetaCoq.Translations.MiniHoTT.IsEquiv has been translated."
+"paths has been translated as pathsᵗ"
+"idpath has been translated as idpathᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.Equiv"
+"MetaCoq.Translations.MiniHoTT.Equiv has been translated."
+"paths_ind has been translated as paths_indᵗ"
+"Translating MetaCoq.Translations.param_original.Axioms.wUnivalence"
+"wUnivalence has been translated as wUnivalenceᵗ"
+Fresh universe MetaCoq.Translations.param_generous_packed.696 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.697 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.698 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.699 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.700 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.701 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.702 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.703 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.704 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.705 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.706 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.707 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.708 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.709 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.710 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.711 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.712 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.713 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.714 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.715 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.716 was added to the context.
+"Funext has been translated as Funextᵗ"
+Fresh universe MetaCoq.Translations.param_generous_packed.728 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.729 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.730 was added to the context.
+"FALSE has been translated as FALSEᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"MetaCoq.Translations.MiniHoTT.paths was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.Sect"
+"MetaCoq.Translations.MiniHoTT.Sect was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.idpath"
+"MetaCoq.Translations.MiniHoTT.idpath was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths_ind"
+"MetaCoq.Translations.MiniHoTT.paths_ind was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.transport"
+"MetaCoq.Translations.MiniHoTT.transport was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.ap"
+"MetaCoq.Translations.MiniHoTT.ap was already translated"
+"UIP has been translated as UIPᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.IsEquiv"
+"MetaCoq.Translations.MiniHoTT.IsEquiv was already translated"
+"Translating MetaCoq.Translations.param_original.Axioms.coe"
+"coe has been translated as coeᵗ"
+"False has been translated as Falseᵗ"
+"Translating MetaCoq.Translations.param_original.Axioms.Univalence'"
+"Univalence' has been translated as Univalence'ᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"MetaCoq.Translations.MiniHoTT.paths was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.Sect"
+"MetaCoq.Translations.MiniHoTT.Sect was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.idpath"
+"MetaCoq.Translations.MiniHoTT.idpath was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths_ind"
+"MetaCoq.Translations.MiniHoTT.paths_ind was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.transport"
+"MetaCoq.Translations.MiniHoTT.transport was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.ap"
+"MetaCoq.Translations.MiniHoTT.ap was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.IsEquiv"
+"MetaCoq.Translations.MiniHoTT.IsEquiv was already translated"
+"Translating MetaCoq.Translations.param_original.Axioms.coe"
+"MetaCoq.Translations.param_original.Axioms.coe was already translated"
+"Translating MetaCoq.Translations.param_original.Axioms.Univalence'"
+"MetaCoq.Translations.param_original.Axioms.Univalence' was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.Equiv"
+"MetaCoq.Translations.MiniHoTT.Equiv was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.equiv_fun"
+"equiv_fun has been translated as equiv_funᵗ"
+Fresh universe MetaCoq.Translations.param_generous_packed.764 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.765 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.766 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.767 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.768 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.769 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.770 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.771 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.772 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.773 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.774 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.775 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.776 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.777 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.778 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.779 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.780 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.781 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.782 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.783 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.784 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.785 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.786 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.787 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.788 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.789 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.790 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.791 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.792 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.793 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.794 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.795 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.796 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.797 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.798 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.799 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.800 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.801 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.802 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.803 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.804 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.805 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.806 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.807 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.808 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.809 was added to the context.
+Fresh universe MetaCoq.Translations.param_generous_packed.810 was added to the context.
+"equiv has been translated as equivᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.isequiv_idmap"
+"isequiv_idmap has been translated as isequiv_idmapᵗ"
+param_generous_packed.vo (real: 9.61, user: 8.61, sys: 0.95, mem: 892080 ko)
+COQC times_bool_fun.v
+"Translating MetaCoq.Translations.MiniHoTT.equiv_idmap"
+"equiv_idmap has been translated as equiv_idmapᵗ"
+File "./times_bool_fun.v", line 2, characters 0-68:
+Warning: Notation "exists _ .. _ , _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun.v", line 2, characters 0-68:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun.v", line 2, characters 0-68:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun.v", line 2, characters 0-68:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun.v", line 15, characters 0-48:
+Warning: Declaring a scope implicitly is deprecated; use in advance an
+explicit "Declare Scope prod_scope.". [undeclared-scope,deprecated]
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Translating MetaCoq.Translations.param_original.Axioms.equiv_paths"
+"Coq.Init.Logic.eq has been translated."
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"paths has been translated as pathsᵗ"
+"Translating Coq.Init.Logic.False"
+"Coq.Init.Logic.False has been translated."
+"Translating MetaCoq.Translations.times_bool_fun.NotFunext"
+"NotFunext has been translated as NotFunextᵗ"
+"equiv_paths has been translated as equiv_pathsᵗ"
+"notFunext has been translated as notFunextᵗ"
+"notη has been translated as notηᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"MetaCoq.Translations.MiniHoTT.paths was already translated"
+"Translating MetaCoq.Translations.times_bool_fun.UIP"
+"UIP has been translated as UIPᵗ"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"MetaCoq.Translations.MiniHoTT.paths was already translated"
+"Translating MetaCoq.Translations.times_bool_fun.wFunext"
+"wFunext has been translated as wFunextᵗ"
+"Translating Coq.Init.Logic.False"
+"Coq.Init.Logic.False was already translated"
+"Translating MetaCoq.Translations.param_original.Axioms.Univalence"
+"notwFunext has been translated as notwFunextᵗ"
+"Univalence has been translated as Univalenceᵗ"
+"idpath has been translated as idpathᵗ"
+"paths_ind has been translated as paths_indᵗ"
+"Translating MetaCoq.Translations.param_original.Axioms.UU'"
+"~~~~~~~~~~~~~~~~~~"
+"Translating Coq.Init.Logic.eq"
+"Coq.Init.Logic.eq was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.paths"
+"MetaCoq.Translations.MiniHoTT.paths was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.Sect"
+Fresh universe MetaCoq.Translations.times_bool_fun.576 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.577 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.578 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.579 was added to the context.
+"Sect has been translated as Sectᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.idpath"
+"MetaCoq.Translations.MiniHoTT.idpath was already translated"
+"UU' has been translated as UU'ᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.paths_ind"
+"MetaCoq.Translations.MiniHoTT.paths_ind was already translated"
+"Translating MetaCoq.Translations.MiniHoTT.transport"
+"transport has been translated as transportᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.ap"
+"ap has been translated as apᵗ"
+"Translating MetaCoq.Translations.MiniHoTT.IsEquiv"
+"MetaCoq.Translations.MiniHoTT.IsEquiv has been translated."
+"Translating MetaCoq.Translations.MiniHoTT.Equiv"
+param_original.vo (real: 18.98, user: 17.91, sys: 0.96, mem: 741808 ko)
+COQC param_binary.v
+"MetaCoq.Translations.MiniHoTT.Equiv has been translated."
+File "./param_binary.v", line 207, characters 23-24:
+Warning: Ignoring implicit binder declaration in unexpected position.
+[unexpected-implicit-declaration,syntax]
+File "./param_binary.v", line 207, characters 25-26:
+Warning: Ignoring implicit binder declaration in unexpected position.
+[unexpected-implicit-declaration,syntax]
+Coq.Init.Datatypes.nat has been translated.
+Coq.Init.Datatypes.bool has been translated.
+Coq.Init.Datatypes.list has been translated.
+"HD has been translated as HDᵗ"
+"MAP has been translated as MAPᵗ"
+param_binary.vo (real: 2.24, user: 1.93, sys: 0.29, mem: 556444 ko)
+COQC standard_model.v
+"Translating MetaCoq.Translations.times_bool_fun.wUnivalence"
+"wUnivalence has been translated as wUnivalenceᵗ"
+check_guarded: true
+check_positive: true
+check_universes: true
+cumulative sprop: false
+definitional uip: false
+"toto has been translated as totoᵗ"
+totoᵗ : unit -> (forall A : Type, A -> A) -> Type -> Type
+ : unit -> (forall A : Type, A -> A) -> Type -> Type
+"FALSE has been translated as FALSEᵗ"
+"toto"
+"a has been translated as aᵗ"
+"T has been translated as Tᵗ"
+"tm has been translated as tmᵗ"
+standard_model.vo (real: 1.63, user: 1.34, sys: 0.28, mem: 549492 ko)
+Fresh universe MetaCoq.Translations.times_bool_fun.631 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.632 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.633 was added to the context.
+"isequiv_idmap has been translated as isequiv_idmapᵗ"
+Fresh universe MetaCoq.Translations.times_bool_fun.635 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.636 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.637 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.638 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.639 was added to the context.
+"equiv_idmap has been translated as equiv_idmapᵗ"
+Fresh universe MetaCoq.Translations.times_bool_fun.641 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.642 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.643 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.644 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.645 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.646 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.647 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.648 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun.649 was added to the context.
+"UA has been translated as UAᵗ"
+"notUA has been translated as notUAᵗ"
+times_bool_fun.vo (real: 27.19, user: 25.86, sys: 1.20, mem: 857128 ko)
+COQC times_bool_fun2.v
+File "./times_bool_fun2.v", line 4, characters 0-83:
+Warning: Notation "exists _ .. _ , _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun2.v", line 4, characters 0-83:
+Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun2.v", line 4, characters 0-83:
+Warning: Notation "_ = _ :> _" was already used in scope type_scope.
+[notation-overridden,parsing]
+File "./times_bool_fun2.v", line 4, characters 0-83:
+Warning: Notation "_ = _" was already used in scope type_scope.
+[notation-overridden,parsing]
+"paths has been translated as pathsᵗ"
+"idpath has been translated as idpathᵗ"
+"paths_ind has been translated as paths_indᵗ"
+"transport has been translated as transportᵗ"
+Fresh universe MetaCoq.Translations.times_bool_fun2.269 was added to the context.
+"sigT has been translated as sigTᵗ"
+"projT1 has been translated as projT1ᵗ"
+"projT2 has been translated as projT2ᵗ"
+"existT has been translated as existTᵗ"
+Fresh universe MetaCoq.Translations.times_bool_fun2.377 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.378 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.379 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.380 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.381 was added to the context.
+"isequiv has been translated as isequivᵗ"
+Fresh universe MetaCoq.Translations.times_bool_fun2.383 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.384 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.385 was added to the context.
+"equiv has been translated as equivᵗ"
+"eq has been translated as eqᵗ"
+"inverse has been translated as inverseᵗ"
+Fresh universe MetaCoq.Translations.times_bool_fun2.416 was added to the context.
+Fresh universe MetaCoq.Translations.times_bool_fun2.417 was added to the context.
+"contr has been translated as contrᵗ"
+"weakFunext has been translated as weakFunextᵗ"
+times_bool_fun2.vo (real: 7.77, user: 7.23, sys: 0.50, mem: 614752 ko)
+ Time | Peak Mem | File Name
+-----------------------------------------------
+1m14.87s | 892080 ko | Total Time / Peak Mem
+-----------------------------------------------
+0m25.86s | 857128 ko | times_bool_fun.vo
+0m17.91s | 741808 ko | param_original.vo
+0m08.61s | 892080 ko | param_generous_packed.vo
+0m07.23s | 614752 ko | times_bool_fun2.vo
+0m04.41s | 348856 ko | MiniHoTT.vo
+0m03.42s | 350716 ko | MiniHoTT_paths.vo
+0m01.93s | 556444 ko | param_binary.vo
+0m01.82s | 554420 ko | translation_utils.vo
+0m01.49s | 553352 ko | param_cheap_packed.vo
+0m01.34s | 549492 ko | standard_model.vo
+0m00.86s | 500064 ko | sigma.vo
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/translations'
+make -f Makefile.coq install
+make[3]: Entering directory '/builds/coq/coq/_build_ci/metacoq/translations'
+INSTALL sigma.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL MiniHoTT.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL MiniHoTT_paths.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL translation_utils.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_original.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_cheap_packed.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_generous_packed.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL times_bool_fun.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL times_bool_fun2.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_binary.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL standard_model.vo /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL sigma.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL MiniHoTT.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL MiniHoTT_paths.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL translation_utils.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_original.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_cheap_packed.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_generous_packed.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL times_bool_fun.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL times_bool_fun2.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_binary.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL standard_model.v /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL sigma.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL MiniHoTT.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL MiniHoTT_paths.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL translation_utils.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_original.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_cheap_packed.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_generous_packed.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL times_bool_fun.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL times_bool_fun2.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL param_binary.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+INSTALL standard_model.glob /builds/coq/coq/_install_ci/lib/coq//user-contrib/MetaCoq/Translations/
+make[4]: Entering directory '/builds/coq/coq/_build_ci/metacoq/translations'
+make[4]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/translations'
+make[3]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/translations'
+make[2]: Leaving directory '/builds/coq/coq/_build_ci/metacoq/translations'
+make[1]: Leaving directory '/builds/coq/coq/_build_ci/metacoq'
+Aggregating timing log...
+Traceback (most recent call last):
+ File "./tools/make-one-time-file.py", line 13, in <module>
+ stats_dict = get_times_and_mems(args.FILE_NAME, use_real=args.real, include_mem=args.include_mem)
+ File "/builds/coq/coq/tools/TimeFileMaker.py", line 161, in get_times_and_mems
+ return merge_dicts(get_times_of_lines(lines, use_real=use_real),
+ File "/builds/coq/coq/tools/TimeFileMaker.py", line 156, in get_times_of_lines
+ return dict((name, {TIME_KEY:reformat_time_string(time)}) for name, time in times)
+ File "/builds/coq/coq/tools/TimeFileMaker.py", line 156, in <genexpr>
+ return dict((name, {TIME_KEY:reformat_time_string(time)}) for name, time in times)
+ File "/builds/coq/coq/tools/TimeFileMaker.py", line 104, in reformat_time_string
+ seconds, milliseconds = time.split('.')
+ValueError: too many values to unpack
+Makefile.ci:90: recipe for target 'ci-metacoq' failed
+make: *** [ci-metacoq] Error 1
+section_end:1598965182:build_script section_start:1598965182:after_script section_end:1598965184:after_script section_start:1598965184:upload_artifacts_on_failure section_end:1598965189:upload_artifacts_on_failure ERROR: Job failed: exit code 1
+ \ No newline at end of file
diff --git a/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh b/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh
index 123b272a69..f6c283d53c 100755
--- a/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh
+++ b/test-suite/coq-makefile/timing/precomputed-time-tests/run.sh
@@ -13,3 +13,4 @@ export COQLIB
./004-per-file-fuzz/run.sh
./005-correct-diff-sorting-order-mem/run.sh
./006-zero-before/run.sh
+./007-no-output-sync/run.sh
diff --git a/test-suite/misc/coq_makefile_destination_of.sh b/test-suite/misc/coq_makefile_destination_of.sh
new file mode 100755
index 0000000000..fc8e089ccf
--- /dev/null
+++ b/test-suite/misc/coq_makefile_destination_of.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+export COQBIN=$BIN
+export PATH=$COQBIN:$PATH
+
+TMP=`mktemp -d`
+cd $TMP
+
+function assert_eq() {
+ if [ "$1" != "$2" ]; then
+ echo "coq_makefile generates destination" $1 "!=" $2
+ cd /
+ rm -rf $TMP
+ exit 1
+ fi
+}
+
+assert_eq `coq_makefile -destination-of src/Y/Z/Test.v -Q src X` "X//Y/Z"
+mkdir src
+assert_eq `coq_makefile -destination-of src/Y/Z/Test.v -Q src X` "X//Y/Z"
+mkdir -p src/Y/Z
+touch src/Y/Z/Test.v
+assert_eq `coq_makefile -destination-of src/Y/Z/Test.v -Q src X` "X//Y/Z"
+cd /
+rm -rf $TMP
+exit 0
diff --git a/test-suite/output/ErrorLocation_ltac_1.out b/test-suite/output/ErrorLocation_ltac_1.out
new file mode 100644
index 0000000000..a9014c4b46
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_1.out
@@ -0,0 +1,3 @@
+File "stdin", line 2, characters 7-11:
+Error: Tactic failure: Cannot solve this goal.
+
diff --git a/test-suite/output/ErrorLocation_ltac_1.v b/test-suite/output/ErrorLocation_ltac_1.v
new file mode 100644
index 0000000000..368a4592f2
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_1.v
@@ -0,0 +1,3 @@
+Goal False.
+idtac; easy.
+Abort.
diff --git a/test-suite/output/ErrorLocation_ltac_2.out b/test-suite/output/ErrorLocation_ltac_2.out
new file mode 100644
index 0000000000..d38727ffa4
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_2.out
@@ -0,0 +1,3 @@
+File "stdin", line 3, characters 7-8:
+Error: Tactic failure.
+
diff --git a/test-suite/output/ErrorLocation_ltac_2.v b/test-suite/output/ErrorLocation_ltac_2.v
new file mode 100644
index 0000000000..c3a9bd626a
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_2.v
@@ -0,0 +1,4 @@
+Ltac f := fail.
+Goal False.
+idtac; f.
+Abort.
diff --git a/test-suite/output/ErrorLocation_ltac_3.out b/test-suite/output/ErrorLocation_ltac_3.out
new file mode 100644
index 0000000000..409b72bba8
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_3.out
@@ -0,0 +1,3 @@
+File "stdin", line 3, characters 7-10:
+Error: Not a negated primitive equality.
+
diff --git a/test-suite/output/ErrorLocation_ltac_3.v b/test-suite/output/ErrorLocation_ltac_3.v
new file mode 100644
index 0000000000..43ce1fc6e2
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_3.v
@@ -0,0 +1,4 @@
+Ltac inj := injection.
+Goal False.
+idtac; inj.
+Abort.
diff --git a/test-suite/output/ErrorLocation_ltac_4.out b/test-suite/output/ErrorLocation_ltac_4.out
new file mode 100644
index 0000000000..f9107cdc3f
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_4.out
@@ -0,0 +1,3 @@
+File "stdin", line 2, characters 22-23:
+Error: Tactic failure.
+
diff --git a/test-suite/output/ErrorLocation_ltac_4.v b/test-suite/output/ErrorLocation_ltac_4.v
new file mode 100644
index 0000000000..58c370c31b
--- /dev/null
+++ b/test-suite/output/ErrorLocation_ltac_4.v
@@ -0,0 +1,3 @@
+Goal False.
+let x := fail in x || x.
+Abort.
diff --git a/test-suite/output/bug_10803.out b/test-suite/output/bug_10803.out
new file mode 100644
index 0000000000..04d190a5d1
--- /dev/null
+++ b/test-suite/output/bug_10803.out
@@ -0,0 +1,10 @@
+a !
+ : Foo
+where
+?y : [ |- nat]
+a !
+ : Foo
+a
+ : Foo -> Foo
+a !
+ : Foo
diff --git a/test-suite/output/bug_10803.v b/test-suite/output/bug_10803.v
new file mode 100644
index 0000000000..1f2027d061
--- /dev/null
+++ b/test-suite/output/bug_10803.v
@@ -0,0 +1,14 @@
+Inductive Foo := foo.
+Declare Scope foo_scope.
+Delimit Scope foo_scope with foo.
+Bind Scope foo_scope with Foo.
+Notation "'!'" := foo : foo_scope.
+Definition of_foo {x : nat} {y : nat} (f : Foo) := f.
+Notation a := (@of_foo O).
+Notation b := (@a).
+Check a !.
+Check @a O !.
+Check @b O.
+Check @b O !. (* was failing *)
+(* All are printed "a !", without making explicit the "0", which is
+ incidentally disputable *)
diff --git a/test-suite/output/bug_12908.out b/test-suite/output/bug_12908.out
new file mode 100644
index 0000000000..fca6dde704
--- /dev/null
+++ b/test-suite/output/bug_12908.out
@@ -0,0 +1,2 @@
+forall m n : nat, m * n = (2 * m * n)%nat
+ : Prop
diff --git a/test-suite/output/bug_12908.v b/test-suite/output/bug_12908.v
new file mode 100644
index 0000000000..558c9f9f6a
--- /dev/null
+++ b/test-suite/output/bug_12908.v
@@ -0,0 +1,6 @@
+Definition mult' m n := 2 * m * n.
+Module A.
+(* Test hiding of a scoped notation by a lonely notation *)
+Infix "*" := mult'.
+Check forall m n, mult' m n = Nat.mul (Nat.mul 2 m) n.
+End A.
diff --git a/test-suite/output/bug_13004.out b/test-suite/output/bug_13004.out
new file mode 100644
index 0000000000..2bd7d67535
--- /dev/null
+++ b/test-suite/output/bug_13004.out
@@ -0,0 +1,2 @@
+Ltac bug_13004.t := ltac2:(print (of_string "hi"))
+Ltac bug_13004.u := ident:(H)
diff --git a/test-suite/output/bug_13004.v b/test-suite/output/bug_13004.v
new file mode 100644
index 0000000000..bf4a8285d0
--- /dev/null
+++ b/test-suite/output/bug_13004.v
@@ -0,0 +1,7 @@
+Require Import Ltac2.Ltac2 Ltac2.Message.
+
+Ltac t := ltac2:(print (of_string "hi")).
+Ltac u := ident:(H).
+
+Print t.
+Print u.
diff --git a/test-suite/output/bug_13018.out b/test-suite/output/bug_13018.out
new file mode 100644
index 0000000000..2f60409e23
--- /dev/null
+++ b/test-suite/output/bug_13018.out
@@ -0,0 +1,14 @@
+gargs:( (!) )
+ : list nat
+gargs:( (!, !, !) )
+ : list nat
+OnlyGargs[ (!) ]
+ : list nat
+gargs999:( (!) )
+ : list nat
+gargs999:( (!, !, !) )
+ : list nat
+OnlyGargs[ (!) ]
+ : list nat
+OnlyGargs999[ (!) ]
+ : list nat
diff --git a/test-suite/output/bug_13018.v b/test-suite/output/bug_13018.v
new file mode 100644
index 0000000000..3fb8b7f905
--- /dev/null
+++ b/test-suite/output/bug_13018.v
@@ -0,0 +1,30 @@
+Undelimit Scope list_scope.
+Declare Custom Entry gnat.
+Declare Custom Entry gargs.
+
+Notation "!" := 42 (in custom gnat).
+Notation "gargs:( e )" := e (e custom gargs).
+Notation "( x )" := (cons x (@nil nat)) (in custom gargs, x custom gnat).
+Notation "( x , y , .. , z )" := (cons x (cons y .. (cons z nil) ..))
+ (in custom gargs, x custom gnat, y custom gnat, z custom gnat).
+
+Check gargs:( (!) ). (* cons 42 nil *)
+Check gargs:( (!, !, !) ). (* cons 42 (42 :: 42 :: nil) *)
+
+Definition OnlyGargs {T} (x:T) := x.
+Notation "OnlyGargs[ x ]" := (OnlyGargs x) (at level 10, x custom gargs).
+Check OnlyGargs[ (!) ]. (* OnlyGargs[ cons 42 nil] *)
+
+Declare Custom Entry gargs999.
+Notation "gargs999:( e )" := e (e custom gargs999 at level 999).
+Notation "( x )" := (cons x (@nil nat)) (in custom gargs999, x custom gnat at level 999).
+Notation "( x , y , .. , z )" := (cons x (cons y .. (cons z nil) ..))
+ (in custom gargs999, x custom gnat at level 999, y custom gnat at level 999, z custom gnat at level 999).
+
+Check gargs999:( (!) ). (* gargs999:( (!)) *)
+Check gargs999:( (!, !, !) ). (* gargs999:( (!, !, !)) *)
+Check OnlyGargs[ (!) ]. (* OnlyGargs[ gargs999:( (!))] *)
+
+Definition OnlyGargs999 {T} (x:T) := x.
+Notation "OnlyGargs999[ x ]" := (OnlyGargs999 x) (at level 10, x custom gargs999 at level 999).
+Check OnlyGargs999[ (!) ]. (* OnlyGargs999[ (!)] *)
diff --git a/test-suite/output/bug_9403.out b/test-suite/output/bug_9403.out
new file mode 100644
index 0000000000..850760d5ed
--- /dev/null
+++ b/test-suite/output/bug_9403.out
@@ -0,0 +1,6 @@
+1 subgoal
+
+ X : tele
+ α, β, γ1, γ2 : X → Prop
+ ============================
+ accessor α β γ1 → accessor α β (λ.. x : X, γ1 x ∨ γ2 x)
diff --git a/test-suite/output/bug_9403.v b/test-suite/output/bug_9403.v
new file mode 100644
index 0000000000..b915e7fbce
--- /dev/null
+++ b/test-suite/output/bug_9403.v
@@ -0,0 +1,99 @@
+(* Uselessly long but why not *)
+
+From Coq Require Export Utf8.
+
+Local Set Universe Polymorphism.
+
+Module tele.
+(** Telescopes *)
+Inductive tele : Type :=
+ | TeleO : tele
+ | TeleS {X} (binder : X → tele) : tele.
+
+Arguments TeleS {_} _.
+
+(** The telescope version of Coq's function type *)
+Fixpoint tele_fun (TT : tele) (T : Type) : Type :=
+ match TT with
+ | TeleO => T
+ | TeleS b => ∀ x, tele_fun (b x) T
+ end.
+
+Notation "TT -t> A" :=
+ (tele_fun TT A) (at level 99, A at level 200, right associativity).
+
+(** An eliminator for elements of [tele_fun].
+ We use a [fix] because, for some reason, that makes stuff print nicer
+ in the proofs in iris:bi/lib/telescopes.v *)
+Definition tele_fold {X Y} {TT : tele} (step : ∀ {A : Type}, (A → Y) → Y) (base : X → Y)
+ : (TT -t> X) → Y :=
+ (fix rec {TT} : (TT -t> X) → Y :=
+ match TT as TT return (TT -t> X) → Y with
+ | TeleO => λ x : X, base x
+ | TeleS b => λ f, step (λ x, rec (f x))
+ end) TT.
+Arguments tele_fold {_ _ !_} _ _ _ /.
+
+(** A sigma-like type for an "element" of a telescope, i.e. the data it
+ takes to get a [T] from a [TT -t> T]. *)
+Inductive tele_arg : tele → Type :=
+| TargO : tele_arg TeleO
+(* the [x] is the only relevant data here *)
+| TargS {X} {binder} (x : X) : tele_arg (binder x) → tele_arg (TeleS binder).
+
+Definition tele_app {TT : tele} {T} (f : TT -t> T) : tele_arg TT → T :=
+ λ a, (fix rec {TT} (a : tele_arg TT) : (TT -t> T) → T :=
+ match a in tele_arg TT return (TT -t> T) → T with
+ | TargO => λ t : T, t
+ | TargS x a => λ f, rec a (f x)
+ end) TT a f.
+Arguments tele_app {!_ _} _ !_ /.
+
+Coercion tele_arg : tele >-> Sortclass.
+Local Coercion tele_app : tele_fun >-> Funclass.
+
+(** Operate below [tele_fun]s with argument telescope [TT]. *)
+Fixpoint tele_bind {U} {TT : tele} : (TT → U) → TT -t> U :=
+ match TT as TT return (TT → U) → TT -t> U with
+ | TeleO => λ F, F TargO
+ | @TeleS X b => λ (F : TeleS b → U) (x : X), (* b x -t> U *)
+ tele_bind (λ a, F (TargS x a))
+ end.
+Arguments tele_bind {_ !_} _ /.
+
+(** Notation-compatible telescope mapping *)
+(* This adds (tele_app ∘ tele_bind), which is an identity function, around every
+ binder so that, after simplifying, this matches the way we typically write
+ notations involving telescopes. *)
+Notation "t $ r" := (t r)
+ (at level 65, right associativity, only parsing).
+Notation "'λ..' x .. y , e" :=
+ (tele_app $ tele_bind (λ x, .. (tele_app $ tele_bind (λ y, e)) .. ))
+ (at level 200, x binder, y binder, right associativity,
+ format "'[ ' 'λ..' x .. y ']' , e").
+
+(** Telescopic quantifiers *)
+Definition texist {TT : tele} (Ψ : TT → Prop) : Prop :=
+ tele_fold ex (λ x, x) (tele_bind Ψ).
+Arguments texist {!_} _ /.
+
+Notation "'∃..' x .. y , P" := (texist (λ x, .. (texist (λ y, P)) .. ))
+ (at level 200, x binder, y binder, right associativity,
+ format "∃.. x .. y , P").
+End tele.
+Import tele.
+
+(* This is like Iris' accessors, but in Prop. Just to play with telescopes. *)
+Definition accessor {X : tele} (α β γ : X → Prop) : Prop :=
+ ∃.. x, α x ∧ (β x → γ x).
+
+(* Working with abstract telescopes. *)
+Section tests.
+Context {X : tele}.
+Implicit Types α β γ : X → Prop.
+
+Lemma acc_mono_disj α β γ1 γ2 :
+ accessor α β γ1 → accessor α β (λ.. x, γ1 x ∨ γ2 x).
+Show.
+Abort.
+End tests.
diff --git a/test-suite/output/print_ltac.out b/test-suite/output/print_ltac.out
index 58931c4b82..5f88ec2e41 100644
--- a/test-suite/output/print_ltac.out
+++ b/test-suite/output/print_ltac.out
@@ -4,7 +4,7 @@ Ltac t2 := let x := string:("my tactic") in
x
Ltac t3 := idtacstr "my tactic"
Ltac t4 x := match x with
- | ?A => (A, A)
+ | ?A => constr:((A, A))
end
The command has indeed failed with message:
idnat is bound to a notation that does not denote a reference.
diff --git a/test-suite/success/eqtacticsnois.v b/test-suite/success/eqtacticsnois.v
new file mode 100644
index 0000000000..7869532c67
--- /dev/null
+++ b/test-suite/success/eqtacticsnois.v
@@ -0,0 +1,15 @@
+(* coq-prog-args: ("-nois") *)
+
+Inductive eq {A : Type} (x : A) : forall a:A, Prop := eq_refl : eq x x.
+
+Axiom sym : forall A (x y : A) (_ : eq x y), eq y x.
+Require Import Ltac.
+
+Register eq as core.eq.type.
+Register sym as core.eq.sym.
+
+Goal forall A (x y:A) (_ : forall z, eq y z), eq x x.
+intros * H. replace x with y.
+- reflexivity.
+- apply H.
+Qed.
diff --git a/test-suite/success/induct.v b/test-suite/success/induct.v
index a39b17e1f1..4983ee3c0d 100644
--- a/test-suite/success/induct.v
+++ b/test-suite/success/induct.v
@@ -159,6 +159,8 @@ Abort.
(* This was failing in 8.5 and before because of a bug in the order of
hypotheses *)
+Set Warnings "-deprecated".
+
Inductive I2 : Type :=
C2 : forall x:nat, x=x -> I2.
Goal forall a b:I2, a = b.
diff --git a/theories/Reals/Rseries.v b/theories/Reals/Rseries.v
index 015eb8e2ac..7238ec0068 100644
--- a/theories/Reals/Rseries.v
+++ b/theories/Reals/Rseries.v
@@ -78,25 +78,12 @@ Section sequence.
Lemma growing_prop :
forall n m:nat, Un_growing -> (n >= m)%nat -> Un n >= Un m.
Proof.
- double induction n m; intros.
- unfold Rge; right; trivial.
- exfalso; unfold ge in H1; generalize (le_Sn_O n0); intro; auto.
- cut (n0 >= 0)%nat.
- generalize H0; intros; unfold Un_growing in H0;
- apply
- (Rge_trans (Un (S n0)) (Un n0) (Un 0) (Rle_ge (Un n0) (Un (S n0)) (H0 n0))
- (H 0%nat H2 H3)).
- elim n0; auto.
- elim (lt_eq_lt_dec n1 n0); intro y.
- elim y; clear y; intro y.
- unfold ge in H2; generalize (le_not_lt n0 n1 (le_S_n n0 n1 H2)); intro;
- exfalso; auto.
- rewrite y; unfold Rge; right; trivial.
- unfold ge in H0; generalize (H0 (S n0) H1 (lt_le_S n0 n1 y)); intro;
- unfold Un_growing in H1;
- apply
- (Rge_trans (Un (S n1)) (Un n1) (Un (S n0))
- (Rle_ge (Un n1) (Un (S n1)) (H1 n1)) H3).
+ intros * Hgrowing Hle.
+ induction Hle as [|p].
+ - apply Rge_refl.
+ - apply Rge_trans with (Un p).
+ + apply Rle_ge, Hgrowing.
+ + apply IHHle.
Qed.
(*********)
diff --git a/tools/CoqMakefile.in b/tools/CoqMakefile.in
index 02ababd928..0ebb97d0bf 100644
--- a/tools/CoqMakefile.in
+++ b/tools/CoqMakefile.in
@@ -104,7 +104,7 @@ BEFORE ?=
AFTER ?=
# FIXME this should be generated by Coq (modules already linked by Coq)
-CAMLDONTLINK=str,unix,dynlink,threads,num,zarith
+CAMLDONTLINK=str,unix,dynlink,threads,zarith
# OCaml binaries
CAMLC ?= "$(OCAMLFIND)" ocamlc -c
diff --git a/tools/TimeFileMaker.py b/tools/TimeFileMaker.py
index 12462726e5..72c7465b13 100644
--- a/tools/TimeFileMaker.py
+++ b/tools/TimeFileMaker.py
@@ -101,7 +101,12 @@ def add_output_file_name(parser): return add_file_name_gen(parser, 'OUTPUT_', 'f
def reformat_time_string(time):
- seconds, milliseconds = time.split('.')
+ try:
+ seconds, milliseconds = time.split('.')
+ except ValueError:
+ print('WARNING: Invalid time string: not the right number of dots (.); expected one: %s' % repr(time), file=sys.stderr)
+ seconds, milliseconds = (time + '.').split('.')[:2]
+ if seconds == '': seconds = 0
seconds = int(seconds)
minutes, seconds = divmod(seconds, 60)
return '%dm%02d.%ss' % (minutes, seconds, milliseconds)
diff --git a/toplevel/dune b/toplevel/dune
index 5f10346ac4..98f4ba2edf 100644
--- a/toplevel/dune
+++ b/toplevel/dune
@@ -3,8 +3,7 @@
(public_name coq.toplevel)
(synopsis "Coq's Interactive Shell [terminal-based]")
(wrapped false)
- ; num still here due to some plugins using it
- (libraries num coq.stm))
+ (libraries coq.stm))
; Interp provides the `zarith` library to plugins, we could also use
; -linkall in the plugins file, to be discussed.
diff --git a/user-contrib/Ltac2/tac2core.ml b/user-contrib/Ltac2/tac2core.ml
index cdbcc24484..3ce50865c0 100644
--- a/user-contrib/Ltac2/tac2core.ml
+++ b/user-contrib/Ltac2/tac2core.ml
@@ -1362,7 +1362,7 @@ let () =
let () =
let e = Tac2entries.Pltac.tac2expr_in_env in
- let inject (loc, v) = Ltac_plugin.Tacexpr.TacGeneric (in_gen (rawwit wit_ltac2) v) in
+ let inject (loc, v) = Ltac_plugin.Tacexpr.TacGeneric (Some "ltac2", in_gen (rawwit wit_ltac2) v) in
Ltac_plugin.Tacentries.create_ltac_quotation "ltac2" inject (e, None)
(* Ltac1 runtime representation of Ltac2 closure quotations *)
diff --git a/vernac/classes.ml b/vernac/classes.ml
index 02cb60f1cf..b38a249b73 100644
--- a/vernac/classes.ml
+++ b/vernac/classes.ml
@@ -41,11 +41,11 @@ let classes_transparent_state () =
let () =
Hook.set Typeclasses.classes_transparent_state_hook classes_transparent_state
-let add_instance_hint inst path ~locality info poly =
+let add_instance_hint inst path ~locality info =
Flags.silently (fun () ->
Hints.add_hints ~locality [typeclasses_db]
(Hints.HintsResolveEntry
- [info, poly, false, Hints.PathHints path, inst])) ()
+ [info, false, Hints.PathHints path, inst])) ()
let is_local_for_hint i =
match i.is_global with
@@ -56,14 +56,13 @@ let is_local_for_hint i =
itself *)
let add_instance_base inst =
- let poly = Global.is_polymorphic inst.is_impl in
let locality = if is_local_for_hint inst then Goptions.OptLocal else Goptions.OptGlobal in
add_instance_hint (Hints.IsGlobRef inst.is_impl) [inst.is_impl] ~locality
- inst.is_info poly;
+ inst.is_info;
List.iter (fun (path, pri, c) ->
- let h = Hints.IsConstr (EConstr.of_constr c, Univ.ContextSet.empty) [@ocaml.warning "-3"] in
+ let h = Hints.IsConstr (EConstr.of_constr c, None) [@ocaml.warning "-3"] in
add_instance_hint h path
- ~locality pri poly)
+ ~locality pri)
(build_subclasses ~check:(not (isVarRef inst.is_impl))
(Global.env ()) (Evd.from_env (Global.env ())) inst.is_impl inst.is_info)
diff --git a/vernac/comHints.ml b/vernac/comHints.ml
index 051560fb63..9eac558908 100644
--- a/vernac/comHints.ml
+++ b/vernac/comHints.ml
@@ -62,7 +62,7 @@ let project_hint ~poly pri l2r r =
cb
in
let info = {Typeclasses.hint_priority = pri; hint_pattern = None} in
- (info, false, true, Hints.PathAny, Hints.IsGlobRef (GlobRef.ConstRef c))
+ (info, true, Hints.PathAny, Hints.IsGlobRef (GlobRef.ConstRef c))
let warn_deprecated_hint_constr =
CWarnings.create ~name:"fragile-hint-constr" ~category:"automation"
@@ -89,10 +89,10 @@ let interp_hints ~poly h =
let env = Global.env () in
let sigma = Evd.from_env env in
let c, diff = Hints.prepare_hint true env sigma (evd, c) in
- if poly then (Hints.IsConstr (c, diff) [@ocaml.warning "-3"])
+ if poly then (Hints.IsConstr (c, Some diff) [@ocaml.warning "-3"])
else
let () = DeclareUctx.declare_universe_context ~poly:false diff in
- (Hints.IsConstr (c, Univ.ContextSet.empty) [@ocaml.warning "-3"])
+ (Hints.IsConstr (c, None) [@ocaml.warning "-3"])
in
let fref r =
let gr = Smartlocate.global_with_alias r in
@@ -106,20 +106,20 @@ let interp_hints ~poly h =
match c with
| HintsReference c ->
let gr = Smartlocate.global_with_alias c in
- (PathHints [gr], poly, IsGlobRef gr)
+ (PathHints [gr], IsGlobRef gr)
| HintsConstr c ->
let () = warn_deprecated_hint_constr () in
- (PathAny, poly, f poly c)
+ (PathAny, f poly c)
in
let fp = Constrintern.intern_constr_pattern env sigma in
let fres (info, b, r) =
- let path, poly, gr = fi r in
+ let path, gr = fi r in
let info =
{ info with
Typeclasses.hint_pattern = Option.map fp info.Typeclasses.hint_pattern
}
in
- (info, poly, b, path, gr)
+ (info, b, path, gr)
in
let open Hints in
let open Vernacexpr in
@@ -140,7 +140,6 @@ let interp_hints ~poly h =
| HintsConstructors lqid ->
let constr_hints_of_ind qid =
let ind = Smartlocate.global_inductive_with_alias qid in
- let mib, _ = Global.lookup_inductive ind in
Dumpglob.dump_reference ?loc:qid.CAst.loc "<>"
(Libnames.string_of_qualid qid)
"ind";
@@ -148,7 +147,6 @@ let interp_hints ~poly h =
let c = (ind, i + 1) in
let gr = GlobRef.ConstructRef c in
( empty_hint_info
- , Declareops.inductive_is_polymorphic mib
, true
, PathHints [gr]
, IsGlobRef gr ))
diff --git a/vernac/metasyntax.ml b/vernac/metasyntax.ml
index 0bdcd53c92..ab1ce44081 100644
--- a/vernac/metasyntax.ml
+++ b/vernac/metasyntax.ml
@@ -1107,8 +1107,14 @@ let make_interpretation_type isrec isonlybinding default_if_binding = function
if isrec then NtnTypeBinderList
else anomaly Pp.(str "Type binder is only for use in recursive notations for binders.")
-let subentry_of_constr_prod_entry = function
- | ETConstr (InCustomEntry s,_,(NumLevel n,_)) -> InCustomEntryLevel (s,n)
+let subentry_of_constr_prod_entry from_level = function
+ (* Specific 8.2 approximation *)
+ | ETConstr (InCustomEntry s,_,x) ->
+ let n = match fst (precedence_of_position_and_level from_level x) with
+ | LevelLt n -> n-1
+ | LevelLe n -> n
+ | LevelSome -> max_int in
+ InCustomEntryLevel (s,n)
(* level and use of parentheses for coercion is hard-wired for "constr";
we don't remember the level *)
| ETConstr (InConstrEntry,_,_) -> InConstrEntrySomeLevel
@@ -1116,7 +1122,7 @@ let subentry_of_constr_prod_entry = function
let make_interpretation_vars
(* For binders, default is to parse only as an ident *) ?(default_if_binding=AsIdent)
- recvars allvars typs =
+ recvars level allvars typs =
let eq_subscope (sc1, l1) (sc2, l2) =
Option.equal String.equal sc1 sc2 &&
List.equal String.equal l1 l2
@@ -1132,7 +1138,7 @@ let make_interpretation_vars
Id.Map.filter (fun x _ -> not (Id.List.mem x useless_recvars)) allvars in
Id.Map.mapi (fun x (isonlybinding, sc) ->
let typ = Id.List.assoc x typs in
- ((subentry_of_constr_prod_entry typ,sc),
+ ((subentry_of_constr_prod_entry level typ,sc),
make_interpretation_type (Id.List.mem_assoc x recvars) isonlybinding default_if_binding typ)) mainvars
let check_rule_productivity l =
@@ -1170,7 +1176,7 @@ let is_coercion level typs =
(match e, custom with
| ETConstr _, _ ->
let customkey = make_notation_entry_level custom n in
- let subentry = subentry_of_constr_prod_entry e in
+ let subentry = subentry_of_constr_prod_entry n e in
if notation_entry_level_eq subentry customkey then None
else Some (IsEntryCoercion subentry)
| ETGlobal, InCustomEntry s -> Some (IsEntryGlobal (s,n))
@@ -1616,7 +1622,7 @@ let add_notation_in_scope ~local deprecation df env c mods scope =
ninterp_rec_vars = to_map sd.recvars;
} in
let (acvars, ac, reversibility) = interp_notation_constr env nenv c in
- let interp = make_interpretation_vars sd.recvars acvars (fst sd.pa_syntax_data) in
+ let interp = make_interpretation_vars sd.recvars (pi2 sd.level) acvars (fst sd.pa_syntax_data) in
let map (x, _) = try Some (x, Id.Map.find x interp) with Not_found -> None in
let onlyparse,coe = printability (Some sd.level) sd.subentries sd.only_parsing reversibility ac in
let notation, location = sd.info in
@@ -1663,7 +1669,8 @@ let add_notation_interpretation_core ~local df env ?(impls=empty_internalization
ninterp_rec_vars = to_map recvars;
} in
let (acvars, ac, reversibility) = interp_notation_constr env ~impls nenv c in
- let interp = make_interpretation_vars recvars acvars (List.combine mainvars i_typs) in
+ let plevel = match level with Some (from,level,l) -> level | None (* numeral: irrelevant )*) -> 0 in
+ let interp = make_interpretation_vars recvars plevel acvars (List.combine mainvars i_typs) in
let map (x, _) = try Some (x, Id.Map.find x interp) with Not_found -> None in
let onlyparse,coe = printability level i_typs onlyparse reversibility ac in
let notation = {
@@ -1847,8 +1854,8 @@ let add_syntactic_definition ~local deprecation env ident (vars,c) { onlyparsing
} in
interp_notation_constr env nenv c
in
- let in_pat id = (id,ETConstr (Constrexpr.InConstrEntry,None,(NextLevel,0))) in
- let interp = make_interpretation_vars ~default_if_binding:AsIdentOrPattern [] acvars (List.map in_pat vars) in
+ let in_pat id = (id,ETConstr (Constrexpr.InConstrEntry,None,(NextLevel,InternalProd))) in
+ let interp = make_interpretation_vars ~default_if_binding:AsIdentOrPattern [] 0 acvars (List.map in_pat vars) in
let vars = List.map (fun x -> (x, Id.Map.find x interp)) vars in
let onlyparsing = onlyparsing || fst (printability None [] false reversibility pat) in
Syntax_def.declare_syntactic_definition ~local deprecation ident ~onlyparsing (vars,pat)
diff --git a/vernac/vernacentries.ml b/vernac/vernacentries.ml
index 6a4c2a626d..fba6800729 100644
--- a/vernac/vernacentries.ml
+++ b/vernac/vernacentries.ml
@@ -1646,7 +1646,7 @@ let query_command_selector ?loc = function
| _ -> user_err ?loc ~hdr:"query_command_selector"
(str "Query commands only support the single numbered goal selector.")
-let vernac_check_may_eval ~pstate ~atts redexp glopt rc =
+let vernac_check_may_eval ~pstate redexp glopt rc =
let glopt = query_command_selector glopt in
let sigma, env = get_current_context_of_args ~pstate glopt in
let sigma, c = Constrintern.interp_open_constr ~expected_type:Pretyping.UnknownIfTermOrType env sigma rc in
@@ -1746,7 +1746,7 @@ let print_about_hyp_globs ~pstate ?loc ref_or_by_not udecl glopt =
let sigma, env = get_current_or_global_context ~pstate in
Prettyp.print_about env sigma ref_or_by_not udecl
-let vernac_print ~pstate ~atts =
+let vernac_print ~pstate =
let sigma, env = get_current_or_global_context ~pstate in
function
| PrintTypingFlags -> pr_typing_flags (Environ.typing_flags (Global.env ()))
@@ -2207,8 +2207,9 @@ let translate_vernac ~atts v = let open Vernacextend in match v with
vernac_print_option key)
| VernacCheckMayEval (r,g,c) ->
VtReadProofOpt(fun ~pstate ->
+ unsupported_attributes atts;
Feedback.msg_notice @@
- vernac_check_may_eval ~pstate ~atts r g c)
+ vernac_check_may_eval ~pstate r g c)
| VernacDeclareReduction (s,r) ->
VtDefault(fun () ->
with_locality ~atts vernac_declare_reduction s r)
@@ -2218,13 +2219,15 @@ let translate_vernac ~atts v = let open Vernacextend in match v with
Feedback.msg_notice @@ vernac_global_check c)
| VernacPrint p ->
VtReadProofOpt(fun ~pstate ->
- Feedback.msg_notice @@ vernac_print ~pstate ~atts p)
+ unsupported_attributes atts;
+ Feedback.msg_notice @@ vernac_print ~pstate p)
| VernacSearch (s,g,r) ->
VtReadProofOpt(
unsupported_attributes atts;
vernac_search ~atts s g r)
- | VernacLocate l -> unsupported_attributes atts;
+ | VernacLocate l ->
VtReadProofOpt(fun ~pstate ->
+ unsupported_attributes atts;
Feedback.msg_notice @@ vernac_locate ~pstate l)
| VernacRegister (qid, r) ->
VtNoProof(fun () ->