Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Facing Strange Error Trying to install VST

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Facing Strange Error Trying to install VST


Chronological Thread 
  • From: Agnishom Chattopadhyay <agnishom AT cmi.ac.in>
  • To: coq-club AT inria.fr
  • Cc: Andrew Appel <appel AT princeton.edu>
  • Subject: Re: [Coq-Club] Facing Strange Error Trying to install VST
  • Date: Mon, 28 Sep 2020 07:58:25 -0500
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=agnishom AT cmi.ac.in; spf=Pass smtp.mailfrom=agnishom AT cmi.ac.in; spf=None smtp.helo=postmaster AT mail.cmi.ac.in
  • Ironport-phdr: 9a23:u37EQxZubodA+QXKRRfAqGz/LSx+4OfEezUN459isYplN5qZrsq/bnLW6fgltlLVR4KTs6sC17OJ9fq+EjdRqb+681k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRoLerpBIHSk9631+ev8JHPfglEnjWwba5wIRmsswnct8YajIVmJ60s1hbHv3xEdvhMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTDQhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlTwKPCAl/m7JlsNwjbpboBO/qBx5347Ue5yeOP5ncq/AYd8WWW9NU8BMXCJDH4y8dZMCAOUPPelar4fzqVgAowagCwawH+7g0CNEi2Xs0KEmz+gsEwfL1xEgEdIUt3TUqc34ObsdUeCzzanI1jXDb/RT2Tzg9oXIcgouoe2QXbJ3acre01QgFwPFj1qKqY3uIjSY2f4Cs2id7upgTuKvi2kiqwxqvjevw8YshpPTiY0J0FzE9CN5zZ8zKNalR0F1fcSqH4FMtyGGKYR2WMUiTnl2tSs71rEIt522cSgIxZkoxBPSZfKKf5SI7x/iUOufITV1inxmdb+9iBu8/0utx/PhWsSq1FtHsiRInNnOu34C0RHY98aJSvx4/ki72DaP0Rje6u5FIUAolarbNoUuzqQsmZoUtETPBij2l1nsg6+TckUo4O+o6/7oYrn+vJCcLZN7igH/MqQwhMO/Gv00Mg8TX2iF5+u8zqHj8lPiQLlQgP02iK/Uu43ZK8QDvqO1HhJZ34Y55xqhADqr084UkWcaIF5fZR6KjJTlN0nQLPzkCfqzmVehnTdxy/zbP7DsA4/BI3fAnbrnYL1z8VRTyBApwtBa/59UCq8OIPb0WkLpsdzXFB45Mwiuz+n7DdV915kSVniTDaODMaPSt0eE5uMpI+aSeI8YoCvxJ+Ul6vL0k3M0llwQcbO30ZcKcny0A/drL1mBbXrpmNgBEGMKvgQkTOztjV2PSSRcZ3m0X6I9/TE7CIWmDYLYS4+xhbyB3T23EYdKaWxcC1CMF2/kd5+YVPcUdCKSPshhnyQYWrimUo8tzA2htAvny7V8NefU4S0ZtZf71Ndv/eHTlBcy9SZ1D8uHyW2NQXt0zSs0QGo927k6qkhgwH+C17J5irpWD499/fRMBy41M5/Hz+t/Q/vyUx7dec+ARFa3S8TuVTg+SNMqw9gLS014GpOrhVbC2Xz5UPcui7WXCclsoern1H/rKpM4ki6ejfhzvxwdWsJKcFaeqOt6/gnXCZTOlhzAxa2vdOIV12jM8jXalDfcjARjSAd1FJ79czUfa0/R9Iqr40rDS/mlDLVhOwAHyMjQcvIWOO2stk1PQbLYAPqbe3i4wj7iDhOJgLqHKovsKT0Q

By the way, I re-ran the installation script after running `opam repository remove coq-released --all` and this time it worked fine.

On Mon, Sep 28, 2020 at 5:14 AM Michael Soegtrop <MSoegtrop AT yahoo.de> wrote:
Dear Andrew,

 > (Personally I find this a bit mysterious, as I would have thought that
 > this is exactly the purpose of opam itself, but apparently opam needs
 > some help.)

The issue is that the version and prerequisite dependencies given in an
opam file are not fully tested, and probably are not feasible to test in
their generality.

If you have an opam package with 5 dependencies, the accepted version
set for each dependency might be say 5 versions. So testing if the
information in an opam package is accurate would require testing 5^5 =
3125 different combinations of package versions - each on multiple
systems, compilers, .... Typically opam CI tests just one of these
combinations. Some of these might not be allowed by version restrictions
in the dependencies, but the allowed number can still be large.

Which combination of package versions you get with an "opam install"
<some-package> might change dramatically from one day to another. There
might be a package in your dependencies which only has an older version
which via a chain of version requirements restricts a lot of other
packages to an older version - opam telling you that you need Coq 8.7 is
not that rare. An update of this one package will lead to a lot of
packages changing their version and in the end might break things. So
what works one day might not work a week later.

Furthermore installing two opam packages with a common dependency can
lead to additional restrictions on the versions of dependencies which
will lead to a combination of package versions which is tested with
neither package. When installing 80 opam packages (as the Coq platform
does) these effects can get very substantial.

On top of this comes the dependency on operating systems (especially the
many Linux distributions), compiler versions and computer hardware (an
opam install can take > 8 GB of RAM while 4 and 8 GB is still quite common).

Are there ways out of this? Well it is not that easy. One could restrict
the dependency specification in opam packages to version combinations
which are actually tested in CI. But this would make the dependencies so
stiff that one could not install a larger Coq system any more because
installing many packages would lead to unsolvable dependency conflicts.
One would need a generic algorithms to find the sweet spot in package
dependencies between testability and flexibility. Since already solving
dependencies for a known set of version restrictions is a NP-complete
problem [5][6], I have little hope that we will have this soon.

The idea behind the Coq platform [1][2][3] is to solve this problem by
forcing at least all major dependencies in the Coq ecosystem into the
same release cadence as Coq itself. Each author of a package provided in
the Coq platform is expected to provide a version of the package which
is compatible with the latest version of Coq and all other packages in
the Coq platform in a reasonable time. This restricts the number of
versions combinations to test to *one* while (hopefully) maintaining
enough flexibility - or better enough structure - to not lead to
unsolvable dependency restrictions. As you can see in the opam patch
repository for the Coq platform 8.12 beta1 release [4] even finding this
one set of versions requires patches to the opam database.

So yes, opam needs some help but not on its technical side - it is an
excellent package manager - but on organizing the Coq opam package
database in a way which makes testing it a technically feasible problem.
Once we have this, a simple "opam install" should also work fine for
most users and the scripts provided by the platform should just be a
small extra to simplify the setup for beginners.

Best regards,

Michael

[1] https://github.com/coq/platform/blob/v8.12.0%2Bbeta1/charter.md
[2] https://github.com/coq/platform/blob/v8.12.0%2Bbeta1/README.md
[3] https://github.com/coq/platform/releases/tag/v8.12.0%2Bbeta1
[4] https://github.com/coq/platform/tree/master/opam/packages
[5] http://opam.ocaml.org/doc/External_solvers.html
[6]
https://hal.archives-ouvertes.fr/file/index/docid/149566/filename/ase.pdf



Archive powered by MHonArc 2.6.19+.

Top of Page