Skip to Content.
Sympa Menu

coq-club - [Coq-Club] sound incremental builds

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] sound incremental builds


Chronological Thread 
  • From: Abhishek Anand <abhishek.anand.iitg AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: [Coq-Club] sound incremental builds
  • Date: Fri, 17 Jul 2020 18:24:31 -0700
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=abhishek.anand.iitg AT gmail.com; spf=Pass smtp.mailfrom=abhishek.anand.iitg AT gmail.com; spf=None smtp.helo=postmaster AT mail-il1-f178.google.com
  • Ironport-phdr: 9a23:0b5JIx/pyyJI7/9uRHKM819IXTAuvvDOBiVQ1KB32u4cTK2v8tzYMVDF4r011RmVBNudsKIP17GempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffgRFiCCzbL5xIxm7ogvcvdQKjIV/Lao81gHHqWZSdeRMwmNoK1OTnxLi6cq14ZVu7Sdete8/+sBZSan1cLg2QrJeDDQ9LmA6/9brugXZTQuO/XQTTGMbmQdVDgff7RH6WpDxsjbmtud4xSKXM9H6QawyVD+/6apgVR3mhzodNzMh/27ZisJ+gqFGrhy/uxNy2JTbbJ2POfdkYq/RYdEXSGxcVchRTSxBBYa8YpMTAuUaPeZYrpL9p1sQohu9GAKhGOXvxSVOhnDrwKY31P4uHhrG3AwhBNIOsGrbrNbvOKgIV+C61q/IwijZY/NX2Df99IfIfwsuofGJR71wcM7RxVMzGAPCi1WdsIroNC6a2eoRqWaU9fZgVf6xhG49rQF8uiaiyMcyh4TUiY8bxU3J+Tt3zYorJtC1VEB2b966HJZfsyyXNZZ6T8E/TmxouCg3yL4LtJyncCQU1pgqxB3SZvKBfoOV7BzjU+ORLi15hHJjYL+wmxGy8VKmyuLiUsm01ExGoTRYndnRsH0Gyh/d6tCfR/dj4kus3SyD2gPT5+1ePEw5lKvWJ4Q8zrMylZcet1nIEDXsl0XslqCWc10p+ui25OTjZbXrvpqcOJV1igH6K6gum8i/DfkhPggAQmSW++ex2Kfs/U3+R7VKgfk2nbfDvJ/GIsQbo7a1Aw5T0ok99xayFymq3MgckHUdL19IeAiLg5XoNlzPOvz0EPWyjle0nDdu3f/GP7nhApvXLnjElbfsZaxy5FVcyAoy1tBf54xbCrIbLP3pXE/+rtrYAQIjPwy1wubnFNp925gRWWKKGKCZMafSvUWU6eIoJumAfJUVtyrlK/g5+/7uimc0lkMafamwxJcYdHS4Hul9LEiCenrtgtIBEX8QsQYkTezqjkeCUT9JaHqoUaI8/GJzNIXzBoDaA4upnbbJiCy8B9hdYn1MIlGKC3bhMYueDaQiciWXd+Zrkj0fVbWiA6Yn3Bei/FvzwbpmNerZ+WsRs5vl2J505vHcvR43/D1wSc+a1jfeHClPgmoUSmpuj+hEqktnxwLbiPUqs7ljDdVWoshxfEI6OJrblbIoDtnzXkfAeo7MRg/5EpOpBjY+St93yNgLMR4kR4eSyyvb1i/vOIc70qSRDcVtoK3Z1nn1Yc16ziSejfhzvxwdWsJKcFaeqOt6/gnXCZTOlhzAxamvfKUYmiXK8TXawA==

Suppose we have a directory X containing Coq files, possibly inside nested directories.
Suppose we have a standard Coq build system: all the Coq (.v) files are listed in X/_CoqProject, which is used to produce X/Makefile and then make is used to build all the .v files.
Suppose all Require Imports in the Coq files use fully qualified logical names.
During the normal development, files/directories may be added/updated/removed in X.
I want to avoid ever having to do clean builds (`make clean`) and still ensure soundness of the build.
The main reason is to save time: coq repos can be huge and proofs can take a lot of time to build.
By soundness, I mean that the build result (set of .vo files) is equivalent to the result of `make clean; git clean -xdf; coq_makefile ..; make`.
Below is an approach that I think works. I'd appreciate counterexamples or arguments why this is correct:
1) delete every .vo, .vio, .vos, .glob file that does not correspond to a .v file in X/_CoqProject.
2) reinvoke coq_makefile on X/_CoqProject to regenerate X/Makefile
3) `make`.


Thanks,



Archive powered by MHonArc 2.6.19+.

Top of Page