Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opam package #23

Open
amahboubi opened this issue Oct 12, 2021 · 41 comments
Open

opam package #23

amahboubi opened this issue Oct 12, 2021 · 41 comments

Comments

@amahboubi
Copy link
Member

Hi @pi8027 ,
I have an opam switch with coq 8.13.1, and I get the following error message when trying to install your library with opam, following the instructions in the readme:

assia@tepoztlan:~/Repos/algebra-tactics$ opam install coq-mathcomp-algebra-tactics
Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting
@pi8027
Copy link
Member

pi8027 commented Oct 12, 2021

Hi @amahboubi,
it seems that you are using OPAM v1 (but then, there would be a problem with installing MathComp...). OPAM file generated by coq-community Templates requires OPAM 2.0 or later. The latest version of OPAM (2.1.0) may produce a better error message.

@pi8027
Copy link
Member

pi8027 commented Oct 12, 2021

Also, if your OPAM switch uses OCaml < 4.07.0, I suggest using OCaml >= 4.07.0. The latest available version of Coq-Elpi compatible with Coq 8.13.1 (coq-elpi.1.11.1) requires that. (Sorry for saying random suggestions. From what I see, it's difficult to guess what's going on in your OPAM switch.)

@amahboubi
Copy link
Member Author

Hi @amahboubi, it seems that you are using OPAM v1 (but then, there would be a problem with installing MathComp...). OPAM file generated by coq-community Templates requires OPAM 2.0 or later.

I am not:

assia@tepoztlan:~$ opam --version
2.0.5

@amahboubi
Copy link
Member Author

amahboubi commented Oct 14, 2021

But I can try to upgrade my opam to the latest version and come back. If you think that's really useful. But wouldn't that be surprising?

@amahboubi
Copy link
Member Author

Also, if your OPAM switch uses OCaml < 4.07.0, I suggest using OCaml >= 4.07.0. The latest available version of Coq-Elpi compatible with Coq 8.13.1 (coq-elpi.1.11.1) requires that. (Sorry for saying random suggestions. From what I see, it's difficult to guess what's going on in your OPAM switch.)

Sure, I understand. I can try to provide more information. I do not think that my OCaml version is guilty. Here is more info on the switch I tried to use for installing your work:

assia@tepoztlan:~$ opam list
# Packages matching: installed
# Name                      # Installed     # Synopsis
base                        v0.14.1         Full standard library replacement f
base-bigarray               base
base-threads                base
base-unix                   base
camlp5                      7.14            Preprocessor-pretty-printer of OCam
conf-findutils              1               Virtual package relying on findutil
conf-g++                    1.0             Virtual package relying on the g++ 
conf-gmp                    3               Virtual package relying on a GMP li
conf-m4                     1               Virtual package relying on m4
conf-perl                   1               Virtual package relying on perl
conf-perl-ipc-system-simple 1               Virtual package relying on perl's I
conf-perl-string-shellquote 1               Virtual package relying on perl's S
coq                         8.13.1          Formal proof management system
coq-coquelicot              3.2.0           A Coq formalization of real analysi
coq-elpi                    1.9.5           Elpi extension language for Coq
coq-equations               1.2.4+8.13      A function definition package for C
coq-extructures             0.2.2           Finite sets, maps, and other data s
coq-hierarchy-builder       1.1.0           High level commands to declare and 
coq-hott                    8.13            The Homotopy Type Theory library
coq-mathcomp-algebra        1.12.0          Mathematical Components Library on 
coq-mathcomp-analysis       0.3.7           An analysis library for mathematica
coq-mathcomp-bigenough      1.0.0           A small library to do epsilon - N r
coq-mathcomp-character      1.12.0          Mathematical Components Library on 
coq-mathcomp-field          1.12.0          Mathematical Components Library on 
coq-mathcomp-fingroup       1.12.0          Mathematical Components Library on 
coq-mathcomp-finmap         1.5.1           Finite sets, finite maps, finitely 
coq-mathcomp-real-closed    1.1.2           Mathematical Components Library on 
coq-mathcomp-solvable       1.12.0          Mathematical Components Library on 
coq-mathcomp-ssreflect      1.12.0          Small Scale Reflection
coq-mathcomp-zify           1.0.0+1.12+8.13 Micromega tactics for Mathematical 
cppo                        1.6.7           Code preprocessor like cpp for OCam
csexp                       1.3.2           Parsing and printing of S-expressio
dune                        2.8.1           Fast, portable, and opinionated bui
dune-configurator           2.8.1           Helper library for gathering system
elpi                        1.13.0          ELPI - Embeddable λProlog Interpre
ledit                       2.04            Line editor, a la rlwrap
num                         1.3             The legacy Num library for arbitrar
ocaml                       4.09.0          The OCaml compiler (virtual package
ocaml-base-compiler         4.09.0          Official release 4.09.0
ocaml-compiler-libs         v0.12.3         OCaml compiler libraries repackaged
ocaml-config                1               OCaml Switch Configuration
ocaml-migrate-parsetree     1.8.0           Convert OCaml parsetrees between di
ocamlfind                   1.8.1           A library manager for OCaml
ppx_derivers                1.2.1           Shared [@@deriving] plugin registry
ppx_deriving                5.1             Type-driven code generation for OCa
ppxlib                      0.14.0          Base library and tools for ppx rewr
re                          1.9.0           RE is a regular expression library 
result                      1.5             Compatibility Result module
seq                         base            Compatibility package for OCaml's s
sexplib0                    v0.14.0         Library containing the definition o
stdio                       v0.14.0         Standard IO library for OCaml
zarith                      1.12            Implements arithmetic and logical o

(I do not know how to render the underlined iterms but) I use an OCaml 4.09 compiler, coq 8.13.1 and coq-elpi 1.9.5.

@amahboubi
Copy link
Member Author

Let me know if you need more information.

@pi8027
Copy link
Member

pi8027 commented Oct 14, 2021

@amahboubi Could you try to upgrade coq-elpi to 1.11.1 by:

opam install coq-elpi.1.11.1

and then try opam install coq-mathcomp-algebra-tactics.0.1.0 again? (It may force you to remove Hierarchy Builder, but its version 1.2.0 should be compatible.)

@pi8027
Copy link
Member

pi8027 commented Oct 14, 2021

Let me know if you need more information.

The output of opam pin would be useful if there is any.

@pi8027
Copy link
Member

pi8027 commented Oct 14, 2021

mczify should also be 1.1.0. But, I expect there is no conflict with that.

@amahboubi
Copy link
Member Author

@amahboubi Could you try to upgrade coq-elpi to 1.11.1 by:

opam install coq-elpi.1.11.1

It doesn't work, failing with the same message:

ssia@tepoztlan:~$ opam install coq-elpi.1.11.1
Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting

@amahboubi
Copy link
Member Author

Let me know if you need more information.

The output of opam pin would be useful if there is any.

This one is empty:

assia@tepoztlan:~$ opam pin
assia@tepoztlan:~$ 

@amahboubi
Copy link
Member Author

May be @gares could have a clue, since the problem seems to also affect my upgrading coq-elpi?

@gares
Copy link
Member

gares commented Oct 15, 2021

No clue, I would try to make a clean switch and install in there just algebra tactics and see what happens.

@gares
Copy link
Member

gares commented Oct 15, 2021

I mean, see what the constraint solver says.

@pi8027
Copy link
Member

pi8027 commented Oct 15, 2021

Hmm, what about opam upgrade elpi coq-elpi coq-hierarchy-builder?

@amahboubi
Copy link
Member Author

Hmm, what about opam upgrade elpi coq-elpi coq-hierarchy-builder?

Same error message:

Sorry, no solution found: there seems to be a problem with your request.

@amahboubi
Copy link
Member Author

No clue, I would try to make a clean switch and install in there just algebra tactics and see what happens.

OK, will do that and report. Thank you both.

@amahboubi
Copy link
Member Author

Reporting live:

assia@tepoztlan:~/Repos$ opam switch create algebra-tactics/
[ERROR] The following local packages don't appear to be installable:
          - coq-mathcomp-algebra-tactics.dev

Do you want to create an empty switch regardless? [Y/n] Y
coq-mathcomp-algebra-tactics is now pinned to git+file:///home/assia/Repos/algebra-tactics#master (version dev)
Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting

@amahboubi
Copy link
Member Author

Now trying with a simple clean switch.

@amahboubi
Copy link
Member Author

I am tired. I am upgrading to opam 2.1 (I was still on 2.0.5). I have so far ignored the error messages ubutnu 20.4's package manager displayed when trying to upgrade opam (or even to report the pb to devs) but I guess I have tackle my head on it at some point...

@amahboubi
Copy link
Member Author

Keeping you posted, I now have a brand new opam version 2.1.0 (had to de-install manually opam-installer and opam-doc). But I have other issues:

assia@tepoztlan:~/Repos$ opam switch
#  switch                             compiler                    description
   /home/assia/Repos/algebra-tactics  
          /home/assia/Repos/algebra-tactics
   4.09.0                             ocaml-base-compiler.4.09.0  4.09.0
   belugo                             ocaml-base-compiler.4.10.0  belugo
→  current-coq                        ocaml-base-compiler.4.09.0  current-coq
   default                            ocaml-system.4.05.0         default
   itauto                             ocaml-base-compiler.4.11.1  itauto
   with-analysis-local                ocaml-base-compiler.4.05.0
          with-analysis-local
   with-coq                                                       with-coq
   with-smtcoq                        ocaml-base-compiler.4.09.0  with-smtcoq
assia@tepoztlan:~/Repos$ opam install coq-mathcomp-algebra-tactics
[WARNING] Opam package conf-perl-string-shellquote.1 depends on the following
          system package that can no longer be found: libstring-shellquote-perl
[ERROR] Package conflict!
  * Missing dependency:
    - coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.5
    no matching version
  * Missing dependency:
    - coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.6
    no matching version

No solution found, exiting

Continuing to investigate...

@amahboubi
Copy link
Member Author

OK, the system package issue is now fixed, but I still get the dependency error messages:

assia@tepoztlan:~/Repos$ opam install coq-mathcomp-algebra-tactics
[ERROR] Package conflict!
  * Missing dependency:
    - coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.5
    no matching version
  * Missing dependency:
    - coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.6
    no matching version

No solution found, exiting

@amahboubi
Copy link
Member Author

And I cannot force upgrade:

assia@tepoztlan:~/Repos$ opam upgrade elpi coq-elpi coq-hierarchy-builder
[ERROR] Package conflict!
  * Missing dependency:
    - coq-elpi >= 1.9.6 → elpi >= 1.13.1
    no matching version
  * Missing dependency:
    - coq-elpi >= 1.9.6 → elpi >= 1.13.5
    no matching version
  * Missing dependency:
    - coq-elpi >= 1.9.6 → elpi >= 1.13.6
    no matching version

Which I do not understand at all. So in the end I will try to create a fresh switch with my fresh opam...

@amahboubi
Copy link
Member Author

(I was not expecting to have to re-install the package manager and perl libs to be able to test these tactics :-/

@gares
Copy link
Member

gares commented Oct 19, 2021

The perl business is pulled in by camlp5, I've already complained... eventually I will get rid of it.

Sorry to keep you trying... Can you run opam show elpi so that I can see all the versions you do have at disposal?
You should see 1.13.7 (https://opam.ocaml.org/packages/elpi/).

@amahboubi
Copy link
Member Author

I also do not understand how to create fresh opam switches it seems, except if they are empty. Should that have worked?

assia@tepoztlan:~$ opam switch create clean-coq --empty
# Run eval $(opam env --switch=clean-coq) to update the current shell
environment
assia@tepoztlan:~$ eval $(opam env --switch=clean-coq)
assia@tepoztlan:~$ opam repo add coq-released https://coq.inria.fr/opam/released
[coq-released] synchronised from https://coq.inria.fr/opam/released
[NOTE] Repository coq-released has been added to the selections of switch
       clean-coq only.
       Run `opam repository add coq-released --all-switches|--set-default' to
       use it in all existing switches, or in newly created switches,
       respectively.

assia@tepoztlan:~$ opam install coq-mathcomp-algebra-tactics
[ERROR] Package conflict!
  * Missing dependency:
    - coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.5
    no matching version
  * Missing dependency:
    - coq-mathcomp-algebra-tactics → coq-elpi >= 1.10.1 → elpi >= 1.13.6
    no matching version

No solution found, exiting

@pi8027
Copy link
Member

pi8027 commented Oct 20, 2021

@amahboubi By following the same instruction, my OPAM (2.0.5 actually) could resolve dependencies. Did you run opam show elpi?

@pi8027
Copy link
Member

pi8027 commented Oct 20, 2021

Also, did you run opam update recently?

@amahboubi
Copy link
Member Author

Also, did you run opam update recently?

It is a fresh installation of opam with a fresh switch and a fresh opam repo add as displayed in my previous message. Anyway, I ran opam update which said no changes , as expected.

@amahboubi
Copy link
Member Author

amahboubi commented Oct 20, 2021

assia@tepoztlan:~$ opam show elpi

<><> elpi: information on all versions ><><><><><><><><><><><><><><><><><><><><>
name                   elpi
all-installed-versions 1.13.0 [current-coq]
all-versions           1.0.2  1.0.3  1.0.4  1.0.5  1.1.0  1.1.1  1.2.0  1.3.1
                       1.4.0  1.4.1  1.5.2  1.6.0  1.7.0  1.8.0  1.9.0  1.9.1
                       1.10.0  1.10.1  1.10.2  1.11.0  1.11.1  1.11.2  1.11.3
                       1.11.4  1.11.4-1  1.12.0  1.13.0  1.13.1  1.13.2
                       1.13.4  1.13.5  1.13.6  1.13.7

<><> Version-specific details <><><><><><><><><><><><><><><><><><><><><><><><><>
version      1.13.7
repository   default
url.src      "https://github.com/LPCIC/elpi/releases/download/v1.13.7/elpi-v1.13.7.tbz"
url.checksum
          "sha256=d106ce127ad10980369970c644a7be41809748448b26f2f3456d08abeff73fd6"
          "sha512=cb7b9442b47feefa6034ed37a0594dab6c5006fa4065dcf96248a8a611d104971386331c1e78ff07efd3e9eb2b7741fe2dcf7dac151d420a63a0abdbb30d51e6"
homepage     "https://github.com/LPCIC/elpi"
doc          "https://LPCIC.github.io/elpi/"
bug-reports  "https://github.com/LPCIC/elpi/issues"
dev-repo     "git+https://github.com/LPCIC/elpi.git"
authors      "Claudio Sacerdoti Coen" "Enrico Tassi"
maintainer   "Enrico Tassi <[email protected]>"
license      "LGPL-2.1-or-later"
depends      "ocaml" {>= "4.04.0"}
             "camlp5" {< "7.99"}
             "ppxlib" {>= "0.12.0"}
             "re" {>= "1.7.2"}
             "ppx_deriving" {>= "4.2"}
             "ANSITerminal" {with-test}
             "cmdliner" {with-test}
             "dune" {>= "2.2.0"}
             "conf-time" {with-test}
synopsis     ELPI - Embeddable λProlog Interpreter
description
          ELPI implements a variant of λProlog enriched with Constraint
          Handling Rules,
          a programming language well suited to manipulate syntax trees with
          binders.
          ELPI is designed to be embedded into larger applications written in
          OCaml as
          an extension language. (...)
assia@tepoztlan:~$ 

@amahboubi
Copy link
Member Author

Installing coq-elpi seems to be ok actually. In the same empty switch:

assia@tepoztlan:~$ opam install coq-elpi
The following actions will be performed:
  ∗ install ocaml-options-vanilla 1
  ∗ install ocaml-base-compiler   4.12.1  [required by ocaml]
  ∗ install conf-gmp              3       [required by zarith]
  ∗ install conf-findutils        1       [required by coq]
  ∗ install base-bigarray         base
  ∗ install base-threads          base    [required by dune]
  ∗ install conf-perl             1       [required by camlp5]
  ∗ install base-unix             base    [required by dune]
  ∗ install ocaml-config          2       [required by ocaml]
  ∗ install ocaml                 4.12.1  [required by coq-elpi]
  ∗ install seq                   base    [required by re]
  ∗ install ocamlfind             1.9.1   [required by coq]
  ∗ install dune                  2.9.1   [required by coq, elpi]
  ∗ install camlp5                7.14    [required by elpi]
  ∗ install zarith                1.12    [required by coq]
  ∗ install stdlib-shims          0.3.0   [required by coq-elpi]
  ∗ install sexplib0              v0.14.0 [required by ppxlib]
  ∗ install result                1.5     [required by ppx_deriving]
  ∗ install re                    1.10.3  [required by elpi]
  ∗ install ppx_derivers          1.2.1   [required by ppx_deriving]
  ∗ install ocaml-compiler-libs   v0.12.4 [required by ppxlib]
  ∗ install cppo                  1.6.8   [required by ppx_deriving]
  ∗ install coq                   8.14.0  [required by coq-elpi]
  ∗ install ppxlib                0.23.0  [required by elpi]
  ∗ install ppx_deriving          5.2.1   [required by elpi]
  ∗ install elpi                  1.13.7  [required by coq-elpi]
  ∗ install coq-elpi              1.11.2
===== ∗ 27 =====
Do you want to continue? [Y/n] 

@amahboubi
Copy link
Member Author

@gares sorry, I overlooked your answer, but yes it seems fine, as I see elpi 1.13.7.

@gares
Copy link
Member

gares commented Oct 20, 2021

so, it seems installing coq-elpi works and you get coq 8.14. If you press Y and then, once finished, you opam install coq-mathcomp-algebra-tactics, it blows up?

@amahboubi
Copy link
Member Author

Amazing, it succeeded...

@amahboubi
Copy link
Member Author

So the problem is when I ask for installing coq-mathcomp-algebra-tactics from an empty switch, and not if we manually impose coq-elpifirst.

@gares
Copy link
Member

gares commented Oct 21, 2021

Something is very fishy here, looks like a bug in the constraint solver to me. I mean, it does no time out, it fails to find a solution!
It would be a very common "bug" of automated provers, which typically sacrifice completeness for speed... maybe constraint solvers are the same.

@gares
Copy link
Member

gares commented Oct 21, 2021

Would you try again passing --use-internal-solver? Maybe you happen to have an external solver installed (eg Z3...)

@amahboubi
Copy link
Member Author

Sure. Try again which command?

@gares
Copy link
Member

gares commented Oct 21, 2021

installing coq-mathcomp-algebra-tactics from an empty switch

That thing, which would be opam switch create ...; opam install --use-internal-solver coq-m-c-a-t

@gares
Copy link
Member

gares commented Oct 21, 2021

I could not find a way to query which solvers opam is using, that would also answer my question: are we talking about the same solver or you are using another one? (I don't have any extra solver installed)

@gares
Copy link
Member

gares commented Oct 21, 2021

You could also try to open an issue, (eg: ocaml/opam#4495 ), they were helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants