aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rwxr-xr-xdev/build/osx/make-macos-dmg.sh3
-rwxr-xr-xdev/build/windows/makecoq_mingw.sh14
-rw-r--r--dev/ci/README-users.md20
-rw-r--r--dev/ci/appveyor.sh17
-rwxr-xr-xdev/ci/ci-argosy.sh9
-rwxr-xr-xdev/ci/ci-basic-overlay.sh28
-rwxr-xr-xdev/ci/ci-bedrock2.sh2
-rw-r--r--dev/ci/ci-common.sh16
-rwxr-xr-xdev/ci/ci-coquelicot.sh5
-rwxr-xr-xdev/ci/ci-ltac2.sh8
-rwxr-xr-xdev/ci/ci-relation_algebra.sh (renamed from dev/ci/ci-relation-algebra.sh)0
-rw-r--r--dev/ci/docker/bionic_coq/Dockerfile4
-rwxr-xr-xdev/ci/gitlab.bat3
-rw-r--r--dev/ci/nix/bignums.nix2
-rw-r--r--dev/ci/nix/coquelicot.nix9
-rw-r--r--dev/ci/nix/default.nix1
-rw-r--r--dev/ci/nix/flocq.nix1
-rw-r--r--dev/ci/nix/unicoq/unicoq-num.patch31
-rw-r--r--dev/ci/user-overlays/08764-validsdp-master-parsing-decimal.sh18
-rw-r--r--dev/ci/user-overlays/08829-proj-syntax-check.sh5
-rw-r--r--dev/ci/user-overlays/08893-herbelin-master+moving-evars-of-term-on-econstr.sh7
-rw-r--r--dev/ci/user-overlays/08984-vbgl-rm-hardwired-hint-db.sh12
-rw-r--r--dev/ci/user-overlays/09165-ejgallego-recarg-cleanup.sh9
-rw-r--r--dev/ci/user-overlays/09733-gares-quotations.sh6
-rw-r--r--dev/ci/user-overlays/09815-token-type.sh4
-rw-r--r--dev/ci/user-overlays/09870-vbgl-recordops.sh6
-rw-r--r--dev/ci/user-overlays/09909-maximedenes-pretyping-rm-global.sh21
-rw-r--r--dev/ci/user-overlays/09973-gares-elpi-2.1.sh6
-rw-r--r--dev/ci/user-overlays/10052-ppedrot-cleanup-logic-convert-hyp.sh6
-rw-r--r--dev/ci/user-overlays/10069-ppedrot-whd-for-evar-conv-no-stack.sh6
-rw-r--r--dev/ci/user-overlays/10076-vbgl-canonical-disable-hint.sh6
-rw-r--r--dev/ci/user-overlays/10125-SkySkimmer-run_tactic_gen.sh6
-rw-r--r--dev/ci/user-overlays/10135-maximedenes-detype-anonymous.sh6
-rw-r--r--dev/doc/MERGING.md5
-rw-r--r--dev/doc/archive/COMPATIBILITY186
-rw-r--r--dev/doc/build-system.dune.md2
-rw-r--r--dev/doc/changes.md27
-rw-r--r--dev/doc/critical-bugs21
-rw-r--r--dev/doc/release-process.md22
-rw-r--r--dev/incdir_dune31
-rw-r--r--dev/include_printers1
-rw-r--r--dev/nixpkgs.nix4
-rw-r--r--dev/top_printers.dbg1
-rw-r--r--dev/top_printers.ml11
-rw-r--r--dev/top_printers.mli1
45 files changed, 288 insertions, 321 deletions
diff --git a/dev/build/osx/make-macos-dmg.sh b/dev/build/osx/make-macos-dmg.sh
index c450e8157a..3a096fec06 100755
--- a/dev/build/osx/make-macos-dmg.sh
+++ b/dev/build/osx/make-macos-dmg.sh
@@ -4,7 +4,6 @@
set -e
# Configuration setup
-OUTDIR=$PWD/_install
DMGDIR=$PWD/_dmg
VERSION=$(sed -n -e '/^let coq_version/ s/^[^"]*"\([^"]*\)"$/\1/p' configure.ml)
APP=bin/CoqIDE_${VERSION}.app
@@ -13,7 +12,7 @@ APP=bin/CoqIDE_${VERSION}.app
make PRIVATEBINARIES="$APP" -j "$NJOBS" -l2 "$APP"
# Add Coq to the .app file
-make OLDROOT="$OUTDIR" COQINSTALLPREFIX="$APP/Contents/Resources/" install-coq install-ide-toploop
+make OLDROOT="$OUTDIR" COQINSTALLPREFIX="$APP/Contents/Resources" install-coq install-ide-toploop
# Create the dmg bundle
mkdir -p "$DMGDIR"
diff --git a/dev/build/windows/makecoq_mingw.sh b/dev/build/windows/makecoq_mingw.sh
index 4c5bd29236..d737632638 100755
--- a/dev/build/windows/makecoq_mingw.sh
+++ b/dev/build/windows/makecoq_mingw.sh
@@ -1316,7 +1316,6 @@ function copy_coq_license {
# FIXME: this is not the micromega license
# It only applies to code that was copied into one single file!
install -D README.md "$PREFIXCOQ/license_readme/coq/ReadMe.md"
- install -D CHANGES.md "$PREFIXCOQ/license_readme/coq/Changes.md"
install -D INSTALL "$PREFIXCOQ/license_readme/coq/Install.txt"
install -D doc/README.md "$PREFIXCOQ/license_readme/coq/ReadMeDoc.md" || true
fi
@@ -1631,19 +1630,6 @@ function make_addon_ssreflect {
fi
}
-# Ltac-2 plugin
-# A new (experimental) tactic language
-
-function make_addon_ltac2 {
- installer_addon_dependency ltac2
- if build_prep_overlay ltac2; then
- installer_addon_section ltac2 "Ltac-2" "Coq plugin with the Ltac-2 enhanced tactic language" ""
- log1 make $MAKE_OPT all
- log2 make install
- build_post
- fi
-}
-
# UniCoq plugin
# An alternative unification algorithm
function make_addon_unicoq {
diff --git a/dev/ci/README-users.md b/dev/ci/README-users.md
index 01769aeddb..06b617d4c1 100644
--- a/dev/ci/README-users.md
+++ b/dev/ci/README-users.md
@@ -45,6 +45,26 @@ using [coqbot](https://github.com/coq/bot); meanwhile, a workaround is
to give merge permissions to someone from the Coq team as to help with
these kind of merges.
+### OCaml and plugin-specific considerations
+
+Developments that link against Coq's OCaml API [most of them are known
+as "plugins"] do have some special requirements:
+
+- Coq's OCaml API is not stable. We hope to improve this in the future
+ but as of today you should expect to have to merge a fair amount of
+ "overlays", usually in the form of Pull Requests from Coq developers
+ in order to keep your plugin compatible with Coq master.
+
+ In order to alleviate the load, you can delegate the merging of such
+ compatibility pull requests to Coq developers themselves, by
+ granting access to the plugin repository or by using `bots` such as
+ [Bors](https://github.com/apps/bors) that allow for automatic
+ management of Pull Requests.
+
+- Plugins in the CI should compile with the OCaml flags that Coq
+ uses. In particular, warnings that are considered fatal by the Coq
+ developers _must_ be also fatal for plugin CI code.
+
### Add your development by submitting a pull request
Add a new `ci-mydev.sh` script to [`dev/ci`](.); set the corresponding
diff --git a/dev/ci/appveyor.sh b/dev/ci/appveyor.sh
deleted file mode 100644
index f26e0904bc..0000000000
--- a/dev/ci/appveyor.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-set -e -x
-
-APPVEYOR_OPAM_VARIANT=ocaml-variants.4.07.1+mingw64c
-NJOBS=2
-
-wget https://github.com/fdopen/opam-repository-mingw/releases/download/0.0.0.2/opam64.tar.xz -O opam64.tar.xz
-tar -xf opam64.tar.xz
-bash opam64/install.sh
-
-opam init default -j $NJOBS -a -y "https://github.com/fdopen/opam-repository-mingw.git#opam2" -c $APPVEYOR_OPAM_VARIANT --disable-sandboxing
-eval "$(opam env)"
-opam install -j $NJOBS -y num ocamlfind ounit
-
-# Full regular Coq Build
-cd "$APPVEYOR_BUILD_FOLDER" && ./configure -local && make -j $NJOBS && make byte -j $NJOBS && make -j $NJOBS -C test-suite all INTERACTIVE= # && make validate
diff --git a/dev/ci/ci-argosy.sh b/dev/ci/ci-argosy.sh
new file mode 100755
index 0000000000..6137526bf4
--- /dev/null
+++ b/dev/ci/ci-argosy.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+ci_dir="$(dirname "$0")"
+. "${ci_dir}/ci-common.sh"
+
+FORCE_GIT=1
+git_download argosy
+
+( cd "${CI_BUILD_DIR}/argosy" && git submodule update --init --recursive && make )
diff --git a/dev/ci/ci-basic-overlay.sh b/dev/ci/ci-basic-overlay.sh
index 62335ea5d0..95fceb773a 100755
--- a/dev/ci/ci-basic-overlay.sh
+++ b/dev/ci/ci-basic-overlay.sh
@@ -81,13 +81,6 @@
: "${coqhammer_CI_ARCHIVEURL:=${coqhammer_CI_GITURL}/archive}"
########################################################################
-# Ltac2
-########################################################################
-: "${ltac2_CI_REF:=master}"
-: "${ltac2_CI_GITURL:=https://github.com/ppedrot/ltac2}"
-: "${ltac2_CI_ARCHIVEURL:=${ltac2_CI_GITURL}/archive}"
-
-########################################################################
# GeoCoq
########################################################################
: "${GeoCoq_CI_REF:=master}"
@@ -104,15 +97,9 @@
########################################################################
# Coquelicot
########################################################################
-# The URL for downloading a tgz snapshot of the master branch is
-# https://scm.gforge.inria.fr/anonscm/gitweb?p=coquelicot/coquelicot.git;a=snapshot;h=refs/heads/master;sf=tgz
-# See https://gforge.inria.fr/scm/browser.php?group_id=3599
-# Since this URL doesn't fit to our standard mechanism and since Coquelicot doesn't seem to change frequently,
-# we use a fixed version, which has a download path which does fit to our standard mechanism.
-# ATTENTION: The archive URL might depend on the version!
-: "${Coquelicot_CI_REF:=coquelicot-3.0.2}"
-: "${Coquelicot_CI_GITURL:=https://scm.gforge.inria.fr/anonscm/git/coquelicot/coquelicot}"
-: "${Coquelicot_CI_ARCHIVEURL:=https://gforge.inria.fr/frs/download.php/file/37523}"
+: "${coquelicot_CI_REF:=master}"
+: "${coquelicot_CI_GITURL:=https://gitlab.inria.fr/coquelicot/coquelicot}"
+: "${coquelicot_CI_ARCHIVEURL:=${coquelicot_CI_GITURL}/-/archive}"
########################################################################
# CompCert
@@ -261,7 +248,7 @@
: "${paramcoq_CI_ARCHIVEURL:=${paramcoq_CI_GITURL}/archive}"
########################################################################
-# relation-algebra
+# relation_algebra
########################################################################
: "${relation_algebra_CI_REF:=master}"
: "${relation_algebra_CI_GITURL:=https://github.com/damien-pous/relation-algebra}"
@@ -296,3 +283,10 @@
: "${stdlib2_CI_REF:=master}"
: "${stdlib2_CI_GITURL:=https://github.com/coq/stdlib2}"
: "${stdlib2_CI_ARCHIVEURL:=${stdlib2_CI_GITURL}/archive}"
+
+########################################################################
+# argosy
+########################################################################
+: "${argosy_CI_REF:=master}"
+: "${argosy_CI_GITURL:=https://github.com/mit-pdos/argosy}"
+: "${argosy_CI_ARCHIVEURL:=${argosy_CI_GITURL}/archive}"
diff --git a/dev/ci/ci-bedrock2.sh b/dev/ci/ci-bedrock2.sh
index 2d242d80a4..2ac78d3c2b 100755
--- a/dev/ci/ci-bedrock2.sh
+++ b/dev/ci/ci-bedrock2.sh
@@ -6,4 +6,4 @@ ci_dir="$(dirname "$0")"
FORCE_GIT=1
git_download bedrock2
-( cd "${CI_BUILD_DIR}/bedrock2" && git submodule update --init --recursive && COQMF_ARGS='-arg "-async-proofs-tac-j 1"' make | iconv -t UTF-8 -c `#9767` )
+( cd "${CI_BUILD_DIR}/bedrock2" && git submodule update --init --recursive && COQMF_ARGS='-arg "-async-proofs-tac-j 1"' make )
diff --git a/dev/ci/ci-common.sh b/dev/ci/ci-common.sh
index b4d2a9ca4e..7aa265cf90 100644
--- a/dev/ci/ci-common.sh
+++ b/dev/ci/ci-common.sh
@@ -108,10 +108,9 @@ install_ssreflect()
git_download mathcomp
- ( cd "${CI_BUILD_DIR}/mathcomp/mathcomp" && \
- make Makefile.coq && \
- make -f Makefile.coq ssreflect/all_ssreflect.vo && \
- make -f Makefile.coq install )
+ ( cd "${CI_BUILD_DIR}/mathcomp/mathcomp/ssreflect" && \
+ make && \
+ make install )
}
@@ -123,8 +122,11 @@ install_ssralg()
git_download mathcomp
( cd "${CI_BUILD_DIR}/mathcomp/mathcomp" && \
- make Makefile.coq && \
- make -f Makefile.coq algebra/all_algebra.vo && \
- make -f Makefile.coq install )
+ make -C ssreflect && \
+ make -C ssreflect install && \
+ make -C fingroup && \
+ make -C fingroup install && \
+ make -C algebra && \
+ make -C algebra install )
}
diff --git a/dev/ci/ci-coquelicot.sh b/dev/ci/ci-coquelicot.sh
index 5d8817491d..6cb8dad604 100755
--- a/dev/ci/ci-coquelicot.sh
+++ b/dev/ci/ci-coquelicot.sh
@@ -5,7 +5,6 @@ ci_dir="$(dirname "$0")"
install_ssreflect
-FORCE_GIT=1
-git_download Coquelicot
+git_download coquelicot
-( cd "${CI_BUILD_DIR}/Coquelicot" && ./autogen.sh && ./configure && ./remake "-j${NJOBS}" )
+( cd "${CI_BUILD_DIR}/coquelicot" && ./autogen.sh && ./configure && ./remake "-j${NJOBS}" )
diff --git a/dev/ci/ci-ltac2.sh b/dev/ci/ci-ltac2.sh
deleted file mode 100755
index 4df22bf249..0000000000
--- a/dev/ci/ci-ltac2.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-
-ci_dir="$(dirname "$0")"
-. "${ci_dir}/ci-common.sh"
-
-git_download ltac2
-
-( cd "${CI_BUILD_DIR}/ltac2" && make && make tests && make install )
diff --git a/dev/ci/ci-relation-algebra.sh b/dev/ci/ci-relation_algebra.sh
index 84bed5bdfe..84bed5bdfe 100755
--- a/dev/ci/ci-relation-algebra.sh
+++ b/dev/ci/ci-relation_algebra.sh
diff --git a/dev/ci/docker/bionic_coq/Dockerfile b/dev/ci/docker/bionic_coq/Dockerfile
index e553cbed1b..8eebb3af64 100644
--- a/dev/ci/docker/bionic_coq/Dockerfile
+++ b/dev/ci/docker/bionic_coq/Dockerfile
@@ -1,4 +1,4 @@
-# CACHEKEY: "bionic_coq-V2019-03-12-V1"
+# CACHEKEY: "bionic_coq-V2019-04-20-V1"
# ^^ Update when modifying this file.
FROM ubuntu:bionic
@@ -38,7 +38,7 @@ ENV COMPILER="4.05.0"
# `num` does not have a version number as the right version to install varies
# with the compiler version.
ENV BASE_OPAM="num ocamlfind.1.8.0 dune.1.6.2 ounit.2.0.8 odoc.1.4.0" \
- CI_OPAM="menhir.20181113 elpi.1.1.0 ocamlgraph.1.8.8"
+ CI_OPAM="menhir.20181113 elpi.1.2.0 ocamlgraph.1.8.8"
# BASE switch; CI_OPAM contains Coq's CI dependencies.
ENV COQIDE_OPAM="cairo2.0.6 lablgtk3-sourceview3.3.0.beta5"
diff --git a/dev/ci/gitlab.bat b/dev/ci/gitlab.bat
index 5f819f31f9..6c4ccfc14d 100755
--- a/dev/ci/gitlab.bat
+++ b/dev/ci/gitlab.bat
@@ -41,7 +41,6 @@ IF "%WINDOWS%" == "enabled_all_addons" (
SET EXTRA_ADDONS=^
-addon=bignums ^
-addon=equations ^
- -addon=ltac2 ^
-addon=mtac2 ^
-addon=mathcomp ^
-addon=menhir ^
@@ -49,9 +48,9 @@ IF "%WINDOWS%" == "enabled_all_addons" (
-addon=compcert ^
-addon=extlib ^
-addon=quickchick ^
- -addon=coquelicot ^
-addon=vst ^
-addon=aactactics
+REM -addon=coquelicot ^
) ELSE (
SET "EXTRA_ADDONS= "
)
diff --git a/dev/ci/nix/bignums.nix b/dev/ci/nix/bignums.nix
index 1d931c858e..d813ddd8d7 100644
--- a/dev/ci/nix/bignums.nix
+++ b/dev/ci/nix/bignums.nix
@@ -1,5 +1,5 @@
{ ocamlPackages }:
{
- buildInputs = with ocamlPackages; [ ocaml findlib camlp5 ];
+ buildInputs = [ ocamlPackages.ocaml ];
}
diff --git a/dev/ci/nix/coquelicot.nix b/dev/ci/nix/coquelicot.nix
new file mode 100644
index 0000000000..d379bfa73d
--- /dev/null
+++ b/dev/ci/nix/coquelicot.nix
@@ -0,0 +1,9 @@
+{ autoconf, automake, ssreflect }:
+
+{
+ buildInputs = [ autoconf automake ];
+ coqBuildInputs = [ ssreflect ];
+ configure = "./autogen.sh && ./configure";
+ make = "./remake";
+ clean = "./remake clean";
+}
diff --git a/dev/ci/nix/default.nix b/dev/ci/nix/default.nix
index 17070e66ee..a9cc91170f 100644
--- a/dev/ci/nix/default.nix
+++ b/dev/ci/nix/default.nix
@@ -72,6 +72,7 @@ let projects = {
CoLoR = callPackage ./CoLoR.nix {};
CompCert = callPackage ./CompCert.nix {};
coq_dpdgraph = callPackage ./coq_dpdgraph.nix {};
+ coquelicot = callPackage ./coquelicot.nix {};
Corn = callPackage ./Corn.nix {};
cross_crypto = callPackage ./cross_crypto.nix {};
Elpi = callPackage ./Elpi.nix {};
diff --git a/dev/ci/nix/flocq.nix b/dev/ci/nix/flocq.nix
index e153043557..71028ec2dc 100644
--- a/dev/ci/nix/flocq.nix
+++ b/dev/ci/nix/flocq.nix
@@ -4,4 +4,5 @@
buildInputs = [ autoconf automake ];
configure = "./autogen.sh && ./configure";
make = "./remake";
+ clean = "./remake clean";
}
diff --git a/dev/ci/nix/unicoq/unicoq-num.patch b/dev/ci/nix/unicoq/unicoq-num.patch
index 6d96d94dfc..6d2f6470b1 100644
--- a/dev/ci/nix/unicoq/unicoq-num.patch
+++ b/dev/ci/nix/unicoq/unicoq-num.patch
@@ -4,19 +4,6 @@ Date: Thu Nov 29 08:59:22 2018 +0000
Make explicit dependency to num
-diff --git a/Make b/Make
-index 550dc6a..8aa1309 100644
---- a/Make
-+++ b/Make
-@@ -9,7 +9,7 @@ src/logger.ml
- src/munify.mli
- src/munify.ml
- src/unitactics.mlg
--src/unicoq.mllib
-+src/unicoq.mlpack
- theories/Unicoq.v
- test-suite/munifytest.v
- test-suite/microtests.v
diff --git a/Makefile.local b/Makefile.local
new file mode 100644
index 0000000..88be365
@@ -24,21 +11,3 @@ index 0000000..88be365
+++ b/Makefile.local
@@ -0,0 +1 @@
+CAMLPKGS += -package num
-diff --git a/src/unicoq.mllib b/src/unicoq.mllib
-deleted file mode 100644
-index 2b84e2d..0000000
---- a/src/unicoq.mllib
-+++ /dev/null
-@@ -1,3 +0,0 @@
--Logger
--Munify
--Unitactics
-diff --git a/src/unicoq.mlpack b/src/unicoq.mlpack
-new file mode 100644
-index 0000000..2b84e2d
---- /dev/null
-+++ b/src/unicoq.mlpack
-@@ -0,0 +1,3 @@
-+Logger
-+Munify
-+Unitactics
diff --git a/dev/ci/user-overlays/08764-validsdp-master-parsing-decimal.sh b/dev/ci/user-overlays/08764-validsdp-master-parsing-decimal.sh
new file mode 100644
index 0000000000..67f6f8610a
--- /dev/null
+++ b/dev/ci/user-overlays/08764-validsdp-master-parsing-decimal.sh
@@ -0,0 +1,18 @@
+if [ "$CI_PULL_REQUEST" = "8764" ] || [ "$CI_BRANCH" = "master-parsing-decimal" ]; then
+
+ ltac2_CI_REF=master-parsing-decimal
+ ltac2_CI_GITURL=https://github.com/proux01/ltac2
+
+ quickchick_CI_REF=master-parsing-decimal
+ quickchick_CI_GITURL=https://github.com/proux01/QuickChick
+
+ Corn_CI_REF=master-parsing-decimal
+ Corn_CI_GITURL=https://github.com/proux01/corn
+
+ HoTT_CI_REF=master-parsing-decimal
+ HoTT_CI_GITURL=https://github.com/proux01/HoTT
+
+ stdlib2_CI_REF=master-parsing-decimal
+ stdlib2_CI_GITURL=https://github.com/proux01/stdlib2
+
+fi
diff --git a/dev/ci/user-overlays/08829-proj-syntax-check.sh b/dev/ci/user-overlays/08829-proj-syntax-check.sh
new file mode 100644
index 0000000000..c04621114f
--- /dev/null
+++ b/dev/ci/user-overlays/08829-proj-syntax-check.sh
@@ -0,0 +1,5 @@
+if [ "$CI_PULL_REQUEST" = "8829" ] || [ "$CI_BRANCH" = "proj-syntax-check" ]; then
+ lambdaRust_CI_REF=proj-syntax-check
+ lambdaRust_CI_GITURL=https://github.com/SkySkimmer/lambda-rust
+ lambdaRust_CI_ARCHIVEURL=$lambdaRust_CI_GITURL/archive
+fi
diff --git a/dev/ci/user-overlays/08893-herbelin-master+moving-evars-of-term-on-econstr.sh b/dev/ci/user-overlays/08893-herbelin-master+moving-evars-of-term-on-econstr.sh
new file mode 100644
index 0000000000..dc39ea5ef0
--- /dev/null
+++ b/dev/ci/user-overlays/08893-herbelin-master+moving-evars-of-term-on-econstr.sh
@@ -0,0 +1,7 @@
+if [ "$CI_PULL_REQUEST" = "8893" ] || [ "$CI_BRANCH" = "master+moving-evars-of-term-on-econstr" ]; then
+
+ equations_CI_BRANCH=master+fix-evars_of_term-pr8893
+ equations_CI_REF=master+fix-evars_of_term-pr8893
+ equations_CI_GITURL=https://github.com/herbelin/Coq-Equations
+
+fi
diff --git a/dev/ci/user-overlays/08984-vbgl-rm-hardwired-hint-db.sh b/dev/ci/user-overlays/08984-vbgl-rm-hardwired-hint-db.sh
new file mode 100644
index 0000000000..12be1b676a
--- /dev/null
+++ b/dev/ci/user-overlays/08984-vbgl-rm-hardwired-hint-db.sh
@@ -0,0 +1,12 @@
+if [ "$CI_PULL_REQUEST" = "8984" ] || [ "$CI_BRANCH" = "rm-hardwired-hint-db" ]; then
+
+ HoTT_CI_REF=rm-hardwired-hint-db
+ HoTT_CI_GITURL=https://github.com/vbgl/HoTT
+
+ ltac2_CI_REF=rm-hardwired-hint-db
+ ltac2_CI_GITURL=https://github.com/vbgl/ltac2
+
+ UniMath_CI_REF=rm-hardwired-hint-db
+ UniMath_CI_GITURL=https://github.com/vbgl/UniMath
+
+fi
diff --git a/dev/ci/user-overlays/09165-ejgallego-recarg-cleanup.sh b/dev/ci/user-overlays/09165-ejgallego-recarg-cleanup.sh
new file mode 100644
index 0000000000..1e1d36d54a
--- /dev/null
+++ b/dev/ci/user-overlays/09165-ejgallego-recarg-cleanup.sh
@@ -0,0 +1,9 @@
+if [ "$CI_PULL_REQUEST" = "9165" ] || [ "$CI_BRANCH" = "recarg-cleanup" ]; then
+
+ elpi_CI_REF=recarg-cleanup
+ elpi_CI_GITURL=https://github.com/ejgallego/coq-elpi
+
+ quickchick_CI_REF=recarg-cleanup
+ quickchick_CI_GITURL=https://github.com/ejgallego/QuickChick
+
+fi
diff --git a/dev/ci/user-overlays/09733-gares-quotations.sh b/dev/ci/user-overlays/09733-gares-quotations.sh
new file mode 100644
index 0000000000..b17454fc4c
--- /dev/null
+++ b/dev/ci/user-overlays/09733-gares-quotations.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "9733" ] || [ "$CI_BRANCH" = "quotations" ]; then
+
+ ltac2_CI_REF=quotations
+ ltac2_CI_GITURL=https://github.com/gares/ltac2
+
+fi
diff --git a/dev/ci/user-overlays/09815-token-type.sh b/dev/ci/user-overlays/09815-token-type.sh
new file mode 100644
index 0000000000..4b49011de3
--- /dev/null
+++ b/dev/ci/user-overlays/09815-token-type.sh
@@ -0,0 +1,4 @@
+if [ "$CI_PULL_REQUEST" = "9815" ] || [ "$CI_BRANCH" = "token-type" ]; then
+ ltac2_CI_REF=token-type
+ ltac2_CI_GITURL=https://github.com/proux01/ltac2
+fi
diff --git a/dev/ci/user-overlays/09870-vbgl-recordops.sh b/dev/ci/user-overlays/09870-vbgl-recordops.sh
new file mode 100644
index 0000000000..bb14a8c204
--- /dev/null
+++ b/dev/ci/user-overlays/09870-vbgl-recordops.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "9870" ] || [ "$CI_BRANCH" = "doc-canonical" ]; then
+
+ elpi_CI_REF=pr-9870
+ elpi_CI_GITURL=https://github.com/vbgl/coq-elpi
+
+fi
diff --git a/dev/ci/user-overlays/09909-maximedenes-pretyping-rm-global.sh b/dev/ci/user-overlays/09909-maximedenes-pretyping-rm-global.sh
new file mode 100644
index 0000000000..01d3068591
--- /dev/null
+++ b/dev/ci/user-overlays/09909-maximedenes-pretyping-rm-global.sh
@@ -0,0 +1,21 @@
+if [ "$CI_PULL_REQUEST" = "9909" ] || [ "$CI_BRANCH" = "pretyping-rm-global" ]; then
+
+ elpi_CI_REF=pretyping-rm-global
+ elpi_CI_GITURL=https://github.com/maximedenes/coq-elpi
+
+ coqhammer_CI_REF=pretyping-rm-global
+ coqhammer_CI_GITURL=https://github.com/maximedenes/coqhammer
+
+ equations_CI_REF=pretyping-rm-global
+ equations_CI_GITURL=https://github.com/maximedenes/Coq-Equations
+
+ ltac2_CI_REF=pretyping-rm-global
+ ltac2_CI_GITURL=https://github.com/maximedenes/ltac2
+
+ paramcoq_CI_REF=pretyping-rm-global
+ paramcoq_CI_GITURL=https://github.com/maximedenes/paramcoq
+
+ mtac2_CI_REF=pretyping-rm-global
+ mtac2_CI_GITURL=https://github.com/maximedenes/Mtac2
+
+fi
diff --git a/dev/ci/user-overlays/09973-gares-elpi-2.1.sh b/dev/ci/user-overlays/09973-gares-elpi-2.1.sh
new file mode 100644
index 0000000000..9a6e25d893
--- /dev/null
+++ b/dev/ci/user-overlays/09973-gares-elpi-2.1.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "9973" ] || [ "$CI_BRANCH" = "elpi-1.2" ]; then
+
+ elpi_CI_REF=overlay-elpi1.2-coq-master
+ elpi_CI_GITURL=https://github.com/LPCIC/coq-elpi
+
+fi
diff --git a/dev/ci/user-overlays/10052-ppedrot-cleanup-logic-convert-hyp.sh b/dev/ci/user-overlays/10052-ppedrot-cleanup-logic-convert-hyp.sh
new file mode 100644
index 0000000000..9f9cc19e83
--- /dev/null
+++ b/dev/ci/user-overlays/10052-ppedrot-cleanup-logic-convert-hyp.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "10052" ] || [ "$CI_BRANCH" = "cleanup-logic-convert-hyp" ]; then
+
+ relation_algebra_CI_REF=cleanup-logic-convert-hyp
+ relation_algebra_CI_GITURL=https://github.com/ppedrot/relation-algebra
+
+fi
diff --git a/dev/ci/user-overlays/10069-ppedrot-whd-for-evar-conv-no-stack.sh b/dev/ci/user-overlays/10069-ppedrot-whd-for-evar-conv-no-stack.sh
new file mode 100644
index 0000000000..0e1449f36c
--- /dev/null
+++ b/dev/ci/user-overlays/10069-ppedrot-whd-for-evar-conv-no-stack.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "10069" ] || [ "$CI_BRANCH" = "whd-for-evar-conv-no-stack" ]; then
+
+ unicoq_CI_REF=whd-for-evar-conv-no-stack
+ unicoq_CI_GITURL=https://github.com/ppedrot/unicoq
+
+fi
diff --git a/dev/ci/user-overlays/10076-vbgl-canonical-disable-hint.sh b/dev/ci/user-overlays/10076-vbgl-canonical-disable-hint.sh
new file mode 100644
index 0000000000..2015935dd9
--- /dev/null
+++ b/dev/ci/user-overlays/10076-vbgl-canonical-disable-hint.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "10076" ] || [ "$CI_BRANCH" = "canonical-disable-hint" ]; then
+
+ elpi_CI_REF=canonical-disable-hint
+ elpi_CI_GITURL=https://github.com/vbgl/coq-elpi
+
+fi
diff --git a/dev/ci/user-overlays/10125-SkySkimmer-run_tactic_gen.sh b/dev/ci/user-overlays/10125-SkySkimmer-run_tactic_gen.sh
new file mode 100644
index 0000000000..4032b1c6b5
--- /dev/null
+++ b/dev/ci/user-overlays/10125-SkySkimmer-run_tactic_gen.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "10125" ] || [ "$CI_BRANCH" = "run_tactic_gen" ]; then
+
+ paramcoq_CI_REF=run_tactic_gen
+ paramcoq_CI_GITURL=https://github.com/SkySkimmer/paramcoq
+
+fi
diff --git a/dev/ci/user-overlays/10135-maximedenes-detype-anonymous.sh b/dev/ci/user-overlays/10135-maximedenes-detype-anonymous.sh
new file mode 100644
index 0000000000..bc8aa33565
--- /dev/null
+++ b/dev/ci/user-overlays/10135-maximedenes-detype-anonymous.sh
@@ -0,0 +1,6 @@
+if [ "$CI_PULL_REQUEST" = "10135" ] || [ "$CI_BRANCH" = "detype-anonymous" ]; then
+
+ unicoq_CI_REF=detype-anonymous
+ unicoq_CI_GITURL=https://github.com/maximedenes/unicoq
+
+fi
diff --git a/dev/doc/MERGING.md b/dev/doc/MERGING.md
index 3f1b470878..c9eceb1270 100644
--- a/dev/doc/MERGING.md
+++ b/dev/doc/MERGING.md
@@ -71,8 +71,9 @@ those external projects should have been prepared (cf. the relevant sub-section
in the [CI README](../ci/README.md#Breaking-changes) and the PR can be tested
with these fixes thanks to ["overlays"](../ci/user-overlays/README.md).
-Moreover the PR must absolutely update the [`CHANGES.md`](../../CHANGES.md) or
-the [`dev/doc/changes.md`](changes.md) file.
+Moreover the PR author *must* add an entry to the [unreleased
+changelog](../../doc/changelog/README.md) or to the
+[`dev/doc/changes.md`](changes.md) file.
If overlays are missing, ask the author to prepare them and label the PR with
the [needs: overlay](https://github.com/coq/coq/labels/needs%3A%20overlay) label.
diff --git a/dev/doc/archive/COMPATIBILITY b/dev/doc/archive/COMPATIBILITY
index a81afca32d..35a7f608de 100644
--- a/dev/doc/archive/COMPATIBILITY
+++ b/dev/doc/archive/COMPATIBILITY
@@ -1,192 +1,6 @@
Note: this file isn't used anymore. Incompatibilities are documented
as part of CHANGES.
-Potential sources of incompatibilities between Coq V8.6 and V8.7
-----------------------------------------------------------------
-
-- Extra superfluous names in introduction patterns may now raise an
- error rather than a warning when the superfluous name is already in
- use. The easy fix is to remove the superfluous name.
-
-Potential sources of incompatibilities between Coq V8.5 and V8.6
-----------------------------------------------------------------
-
-Symptom: An obligation generated by Program or an abstracted subproof
-has different arguments.
-Cause: Set Shrink Abstract and Set Shrink Obligations are on by default
-and the subproof does not use the argument.
-Remedy:
-- Adapt the script.
-- Write an explicit lemma to prove the obligation/subproof and use it
- instead (compatible with 8.4).
-- Unset the option for the program/proof the obligation/subproof originates
- from.
-
-Symptom: In a goal, order of hypotheses, or absence of an equality of
-the form "x = t" or "t = x", or no unfolding of a local definition.
-Cause: This might be connected to a number of fixes in the tactic
-"subst". The former behavior can be reactivated by issuing "Unset
-Regular Subst Tactic".
-
-Potential sources of incompatibilities between Coq V8.4 and V8.5
-----------------------------------------------------------------
-
-* List of typical changes to be done to adapt files from Coq 8.4 *
-* to Coq 8.5 when not using compatibility option "-compat 8.4". *
-
-Symptom: "The reference omega was not found in the current environment".
-Cause: "Require Omega" does not import the tactic "omega" any more
-Possible solutions:
-- use "Require Import OmegaTactic" (not compatible with 8.4)
-- use "Require Import Omega" (compatible with 8.4)
-- add definition "Ltac omega := Coq.omega.Omega.omega."
-
-Symptom: "intuition" cannot solve a goal (not working anymore on non standard connective)
-Cause: "intuition" had an accidental non uniform behavior fixed on non standard connectives
-Possible solutions:
-- use "dintuition" instead; it is stronger than "intuition" and works
- uniformly on non standard connectives, such as n-ary conjunctions or disjunctions
- (not compatible with 8.4)
-- do the script differently
-
-Symptom: The constructor foo (in type bar) expects n arguments.
-Cause: parameters must now be given in patterns
-Possible solutions:
-- use option "Set Asymmetric Patterns" (compatible with 8.4)
-- add "_" for the parameters (not compatible with 8.4)
-- turn the parameters into implicit arguments (compatible with 8.4)
-
-Symptom: "NPeano.Nat.foo" not existing anymore
-Possible solutions:
-- use "Nat.foo" instead
-
-Symptom: typing problems with proj1_sig or similar
-Cause: coercion from sig to sigT and similar coercions have been
- removed so as to make the initial state easier to understand for
- beginners
-Solution: change proj1_sig into projT1 and similarly (compatible with 8.4)
-
-* Other detailed changes *
-
-(see also file CHANGES)
-
-- options for *coq* compilation (see below for ocaml).
-
-** [-I foo] is now deprecated and will not add directory foo to the
- coq load path (only for ocaml, see below). Just replace [-I foo] by
- [-Q foo ""] in your project file and re-generate makefile. Or
- perform the same operation directly in your makefile if you edit it
- by hand.
-
-** Option -R Foo bar is the same in v8.5 than in v8.4 concerning coq
- load path.
-
-** Option [-I foo -as bar] is unchanged but discouraged unless you
- compile ocaml code. Use -Q foo bar instead.
-
- for more details: file CHANGES or section "Customization at launch
- time" of the reference manual.
-
-- Command line options for ocaml Compilation of ocaml code (plugins)
-
-** [-I foo] is *not* deprecated to add foo to the ocaml load path.
-
-** [-I foo -as bar] adds foo to the ocaml load path *and* adds foo to
- the coq load path with logical name bar (shortcut for -I foo -Q foo
- bar).
-
- for more details: file CHANGES or section "Customization at launch
- time" of the reference manual.
-
-- Universe Polymorphism.
-
-- Refinement, unification and tactics are now aware of universes,
- resulting in more localized errors. Universe inconsistencies
- should no more get raised at Qed time but during the proof.
- Unification *always* produces well-typed substitutions, hence
- some rare cases of unifications that succeeded while producing
- ill-typed terms before will now fail.
-
-- The [change p with c] tactic semantics changed, now typechecking
- [c] at each matching occurrence [t] of the pattern [p], and
- converting [t] with [c].
-
-- Template polymorphic inductive types: the partial application
- of a template polymorphic type (e.g. list) is not polymorphic.
- An explicit parameter application (e.g [fun A => list A]) or
- [apply (list _)] will result in a polymorphic instance.
-
-- The type inference algorithm now takes opacity of constants into
- account. This may have effects on tactics using type inference
- (e.g. induction). Extra "Transparent" might have to be added to
- revert opacity of constants.
-
-Type classes.
-
-- When writing an Instance foo : Class A := {| proj := t |} (note the
- vertical bars), support for typechecking the projections using the
- type information and switching to proof mode is no longer available.
- Use { } (without the vertical bars) instead.
-
-Tactic abstract.
-
-- Auxiliary lemmas generated by the abstract tactic are removed from
- the global environment and inlined in the proof term when a proof
- is ended with Qed. The behavior of 8.4 can be obtained by ending
- proofs with "Qed exporting" or "Qed exporting ident, .., ident".
-
-Potential sources of incompatibilities between Coq V8.3 and V8.4
-----------------------------------------------------------------
-
-(see also file CHANGES)
-
-The main known incompatibilities between 8.3 and 8.4 are consequences
-of the following changes:
-
-- The reorganization of the library of numbers:
-
- Several definitions have new names or are defined in modules of
- different names, but a special care has been taken to have this
- renaming transparent for the user thanks to compatibility notations.
-
- However some definitions have changed, what might require some
- adaptations. The most noticeable examples are:
- - The "?=" notation which now bind to Pos.compare rather than former
- Pcompare (now Pos.compare_cont).
- - Changes in names may induce different automatically generated
- names in proof scripts (e.g. when issuing "destruct Z_le_gt_dec").
- - Z.add has a new definition, hence, applying "simpl" on subterms of
- its body might give different results than before.
- - BigN.shiftl and BigN.shiftr have reversed arguments order, the
- power function in BigN now takes two BigN.
-
-- Other changes in libraries:
-
- - The definition of functions over "vectors" (list of fixed length)
- have changed.
- - TheoryList.v has been removed.
-
-- Slight changes in tactics:
-
- - Less unfolding of fixpoints when applying destruct or inversion on
- a fixpoint hiding an inductive type (add an extra call to simpl to
- preserve compatibility).
- - Less unexpected local definitions when applying "destruct"
- (incompatibilities solvable by adapting name hypotheses).
- - Tactic "apply" might succeed more often, e.g. by now solving
- pattern-matching of the form ?f x y = g(x,y) (compatibility
- ensured by using "Unset Tactic Pattern Unification"), but also
- because it supports (full) betaiota (using "simple apply" might
- then help).
- - Tactic autorewrite does no longer instantiate pre-existing
- existential variables.
- - Tactic "info" is now available only for auto, eauto and trivial.
-
-- Miscellaneous changes:
-
- - The command "Load" is now atomic for backtracking (use "Unset
- Atomic Load" for compatibility).
-
Incompatibilities beyond 8.4...
diff --git a/dev/doc/build-system.dune.md b/dev/doc/build-system.dune.md
index b1bfac8cc9..49251d61a1 100644
--- a/dev/doc/build-system.dune.md
+++ b/dev/doc/build-system.dune.md
@@ -22,7 +22,7 @@ If you want to build the standard libraries and plugins you should
call `make -f Makefile.dune voboot`. It is usually enough to do that
once per-session.
-More helper targets are availabe in `Makefile.dune`, `make -f
+More helper targets are available in `Makefile.dune`, `make -f
Makefile.dune` will display some help.
Dune places build artifacts in a separate directory `_build`; it will
diff --git a/dev/doc/changes.md b/dev/doc/changes.md
index 416253fad1..7221c3de56 100644
--- a/dev/doc/changes.md
+++ b/dev/doc/changes.md
@@ -1,3 +1,10 @@
+## Changes between Coq 8.10 and Coq 8.11
+
+### ML API
+
+- Functions and types deprecated in 8.10 have been removed in Coq
+ 8.11.
+
## Changes between Coq 8.9 and Coq 8.10
### ML4 Pre Processing
@@ -20,6 +27,15 @@ General deprecation
removed. Please, make sure your plugin is warning-free in 8.8 before
trying to port it over 8.9.
+Warnings
+
+- Coq now builds plugins with `-warn-error` enabled by default. The
+ amount of dangerous warnings in plugin code was very high, so we now
+ require plugins in the CI to adhere to the Coq warning policy. We
+ _strongly_ recommend against disabling the default set of warnings.
+ If you have special needs, see the documentation of your build
+ system and/or OCaml for further help.
+
Names
- Kernel names no longer contain a section path. They now have only two
@@ -83,6 +99,11 @@ Libobject
* `Libobject.superglobal_object`
* `Libobject.superglobal_object_nodischarge`
+AST
+
+- Minor changes in the AST have been performed, for example
+ https://github.com/coq/coq/pull/9165
+
Implicit Arguments
- `Impargs.declare_manual_implicits` is restricted to only support declaration
@@ -189,12 +210,6 @@ Termops
- Internal printing functions have been placed under the
`Termops.Internal` namespace.
-Notations:
-
-- Notation.availability_of_notation is not anymore needed: if a
- delimiter is needed, it is provided by Notation.uninterp_notation
- which fails in case the notation is not available.
-
### Unit testing
The test suite now allows writing unit tests against OCaml code in the Coq
diff --git a/dev/doc/critical-bugs b/dev/doc/critical-bugs
index c0a5b9095c..01c2b574a2 100644
--- a/dev/doc/critical-bugs
+++ b/dev/doc/critical-bugs
@@ -195,6 +195,18 @@ Conversion machines
GH issue number: ?
risk:
+ component: "virtual machine" (compilation to bytecode ran by a C-interpreter)
+ summary: primitive integer emulation layer on 32 bits not robust to garbage collection
+ introduced: master (before v8.10 in GH pull request #6914)
+ impacted released versions: none
+ impacted development branches:
+ impacted coqchk versions: none (no virtual machine in coqchk)
+ fixed in:
+ found by: Roux, Melquiond
+ exploit:
+ GH issue number: #9925
+ risk:
+
component: "native" conversion machine (translation to OCaml which compiles to native code)
summary: translation of identifier from Coq to OCaml was not bijective, leading to identify True and False
introduced: V8.5
@@ -207,6 +219,15 @@ Conversion machines
GH issue number: ?
risk:
+ component: primitive projections, native_compute
+ summary: stuck primitive projections computed incorrectly by native_compute
+ introduced: 1 Jun 2018, e1e7888a, ppedrot
+ impacted released versions: 8.9.0
+ impacted coqchk versions: none
+ found by: maximedenes exploiting bug #9684
+ exploit: test-suite/bugs/closed/bug_9684.v
+ GH issue number: #9684
+
Conflicts with axioms in library
component: library of real numbers
diff --git a/dev/doc/release-process.md b/dev/doc/release-process.md
index 60c0886896..189d6f9fa5 100644
--- a/dev/doc/release-process.md
+++ b/dev/doc/release-process.md
@@ -84,10 +84,18 @@
Coq has been tagged.
- [ ] Have some people test the recently auto-generated Windows and MacOS
packages.
-- [ ] Change the version name from alpha to beta1 (see
+- [ ] In a PR:
+ - Change the version name from alpha to beta1 (see
[#7009](https://github.com/coq/coq/pull/7009/files)).
- We generally do not update the magic numbers at this point.
+ - We generally do not update the magic numbers at this point.
+ - Set `is_a_released_version` to `true` in `configure.ml`.
- [ ] Put the `VX.X+beta1` tag using `git tag -s`.
+- [ ] Check using `git push --tags --dry-run` that you are not
+ pushing anything else than the new tag. If needed, remove spurious
+ tags with `git tag -d`. When this is OK, proceed with `git push --tags`.
+- [ ] Set `is_a_released_version` to `false` in `configure.ml`
+ (if you forget about it, you'll be reminded whenever you try to
+ backport a PR with a changelog entry).
### These steps are the same for all releases (beta, final, patch-level) ###
@@ -112,9 +120,17 @@
## At the final release time ##
-- [ ] Change the version name to X.X.0 and the magic numbers (see
+- [ ] In a PR:
+ - Change the version name from X.X.0 and the magic numbers (see
[#7271](https://github.com/coq/coq/pull/7271/files)).
+ - Set `is_a_released_version` to `true` in `configure.ml`.
- [ ] Put the `VX.X.0` tag.
+- [ ] Check using `git push --tags --dry-run` that you are not
+ pushing anything else than the new tag. If needed, remove spurious
+ tags with `git tag -d`. When this is OK, proceed with `git push --tags`.
+- [ ] Set `is_a_released_version` to `false` in `configure.ml`
+ (if you forget about it, you'll be reminded whenever you try to
+ backport a PR with a changelog entry).
Repeat the generic process documented above for all releases.
diff --git a/dev/incdir_dune b/dev/incdir_dune
index 9d0fee1fa2..9ba31167b9 100644
--- a/dev/incdir_dune
+++ b/dev/incdir_dune
@@ -1,16 +1,17 @@
#cd".";;
-#directory "_build/default/lib/.lib.objs/";;
-#directory "_build/default/clib/.clib.objs/";;
-#directory "_build/default/kernel/.kernel.objs/";;
-#directory "_build/default/library/.library.objs/";;
-#directory "_build/default/engine/.engine.objs/";;
-#directory "_build/default/pretyping/.pretyping.objs/";;
-#directory "_build/default/interp/.interp.objs/";;
-#directory "_build/default/parsing/.parsing.objs/";;
-#directory "_build/default/gramlib/.gramlib.objs/";;
-#directory "_build/default/proofs/.proofs.objs/";;
-#directory "_build/default/tactics/.tactics.objs/";;
-#directory "_build/default/printing/.printing.objs/";;
-#directory "_build/default/vernac/.vernac.objs/";;
-#directory "_build/default/stm/.stm.objs/";;
-#directory "_build/default/toplevel/.toplevel.objs/";;
+#directory "_build/default/lib/.lib.objs/byte/";;
+#directory "_build/default/clib/.clib.objs/byte/";;
+#directory "_build/default/kernel/.kernel.objs/byte/";;
+#directory "_build/default/library/.library.objs/byte/";;
+#directory "_build/default/engine/.engine.objs/byte/";;
+#directory "_build/default/pretyping/.pretyping.objs/byte/";;
+#directory "_build/default/interp/.interp.objs/byte/";;
+#directory "_build/default/parsing/.parsing.objs/byte/";;
+#directory "_build/default/gramlib/.gramlib.objs/byte/";;
+#directory "_build/default/proofs/.proofs.objs/byte/";;
+#directory "_build/default/tactics/.tactics.objs/byte/";;
+#directory "_build/default/printing/.printing.objs/byte/";;
+#directory "_build/default/vernac/.vernac.objs/byte/";;
+#directory "_build/default/stm/.stm.objs/byte/";;
+#directory "_build/default/toplevel/.toplevel.objs/byte/";;
+#directory "_build/default/plugins/ltac/.ltac_plugin.objs/byte/";;
diff --git a/dev/include_printers b/dev/include_printers
index 90088e40bf..d077075eeb 100644
--- a/dev/include_printers
+++ b/dev/include_printers
@@ -11,6 +11,7 @@
#install_printer (* universes *) ppuniverses;;
#install_printer (* univ level *) ppuni_level;;
#install_printer (* univ context *) ppuniverse_context;;
+#install_printer (* univ context *) ppaucontext;;
#install_printer (* univ context future *) ppuniverse_context_future;;
#install_printer (* univ context set *) ppuniverse_context_set;;
#install_printer (* univ set *) ppuniverse_set;;
diff --git a/dev/nixpkgs.nix b/dev/nixpkgs.nix
index f4786d9431..8dfe1e7833 100644
--- a/dev/nixpkgs.nix
+++ b/dev/nixpkgs.nix
@@ -1,4 +1,4 @@
import (fetchTarball {
- url = "https://github.com/NixOS/nixpkgs/archive/8471ab76242987b11afd4486b82888e1588f8307.tar.gz";
- sha256 = "06pp6b6x78jlinxifnphkbp79dx58jr990fkm4qziq0ay5klpxd7";
+ url = "https://github.com/NixOS/nixpkgs/archive/bc9df0f66110039e495b6debe3a6cda4a1bb0fed.tar.gz";
+ sha256 = "0y2w259j0vqiwjhjvlbsaqnp1nl2zwz6sbwwhkrqn7k7fmhmxnq1";
})
diff --git a/dev/top_printers.dbg b/dev/top_printers.dbg
index a6ecec7e33..82f2e79549 100644
--- a/dev/top_printers.dbg
+++ b/dev/top_printers.dbg
@@ -62,6 +62,7 @@ install_printer Top_printers.ppuni_level
install_printer Top_printers.ppuniverse_set
install_printer Top_printers.ppuniverse_instance
install_printer Top_printers.ppuniverse_context
+install_printer Top_printers.ppaucontext
install_printer Top_printers.ppuniverse_context_set
install_printer Top_printers.ppuniverse_subst
install_printer Top_printers.ppuniverse_opt_subst
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 74be300134..2859b56cbe 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -27,7 +27,6 @@ open Clenv
let _ = Detyping.print_evar_arguments := true
let _ = Detyping.print_universes := true
let _ = Goptions.set_bool_option_value ["Printing";"Matching"] false
-let _ = Detyping.set_detype_anonymous (fun ?loc _ -> raise Not_found)
(* std_ppcmds *)
let pp x = Pp.pp_with !Topfmt.std_ft x
@@ -65,6 +64,7 @@ let get_current_context () =
with Vernacstate.Proof_global.NoCurrentProof ->
let env = Global.env() in
Evd.from_env env, env
+ [@@ocaml.warning "-3"]
(* term printers *)
let envpp pp = let sigma,env = get_current_context () in pp env sigma
@@ -235,6 +235,15 @@ let ppnamedcontextval e =
let sigma = Evd.from_env env in
pp (pr_named_context env sigma (named_context_of_val e))
+let ppaucontext auctx =
+ let nas = AUContext.names auctx in
+ let prlev l = match Level.var_index l with
+ | Some n -> Name.print nas.(n)
+ | None -> prlev l
+ in
+ pp (pr_universe_context prlev (AUContext.repr auctx))
+
+
let ppenv e = pp
(str "[" ++ pr_named_context_of e Evd.empty ++ str "]" ++ spc() ++
str "[" ++ pr_rel_context e Evd.empty (rel_context e) ++ str "]")
diff --git a/dev/top_printers.mli b/dev/top_printers.mli
index cb32d2294c..2aa1808322 100644
--- a/dev/top_printers.mli
+++ b/dev/top_printers.mli
@@ -137,6 +137,7 @@ val prlev : Univ.Level.t -> Pp.t (* with global names (does this work?) *)
val ppuniverse_set : Univ.LSet.t -> unit
val ppuniverse_instance : Univ.Instance.t -> unit
val ppuniverse_context : Univ.UContext.t -> unit
+val ppaucontext : Univ.AUContext.t -> unit
val ppuniverse_context_set : Univ.ContextSet.t -> unit
val ppuniverse_subst : Univ.universe_subst -> unit
val ppuniverse_opt_subst : UnivSubst.universe_opt_subst -> unit