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

pin-depends pinning speed #4315

Closed
NathanReb opened this issue Aug 18, 2020 · 3 comments · Fixed by #4399
Closed

pin-depends pinning speed #4315

NathanReb opened this issue Aug 18, 2020 · 3 comments · Fixed by #4399
Milestone

Comments

@NathanReb
Copy link

I recently tried to opam install a local package with every dependency pinned via the pin-depends field in its opam file and the opam install is significantly slowed down by the initial pinning process.

I tried the 2.1 alpha hoping it might have been improved by recent changes but it seems to have no effect.

Do you have any idea why this takes so long and/or if this can be easily improved? I suspect that cloning the repositories is what takes up most of the time but I also imagine running those in parallel could improve the situation.

@NathanReb
Copy link
Author

cc @avsm

@NathanReb
Copy link
Author

If you want to give this a try, here's the opam file that I used:

opam-version: "2.0"
synopsis: "duniverse generated lockfile"
maintainer: "duniverse"
depends: [
  "alcotest" {= "1.2.1"}
  "astring" {= "0.8.4+dune"}
  "cmdliner" {= "1.0.4+dune"}
  "cppo" {= "1.6.6"}
  "dune-configurator" {= "2.6.2"}
  "dune-private-libs" {= "2.6.2"}
  "findlib" {= "1.8.1+dune"}
  "fmt" {= "0.8.8+dune"}
  "fpath" {= "0.7.2+dune"}
  "logs" {= "0.7.0+dune"}
  "lwt" {= "5.3.0"}
  "mmap" {= "1.1.0"}
  "ocaml-migrate-parsetree" {= "1.7.3"}
  "ocaml-version" {= "2.6.1"}
  "ocamlfind" {= "1.8.1+dune"}
  "ocplib-endian" {= "1.1"}
  "odoc" {= "1.5.1"}
  "ppx_derivers" {= "1.2.1"}
  "re" {= "1.9.0"}
  "result" {= "1.5"}
  "seq" {= "base+dune"}
  "stdlib-shims" {= "0.1.0"}
  "tyxml" {= "4.4.0"}
  "uuidm" {= "0.9.7+dune"}
  "uutf" {= "1.0.2+dune"}
]
pin-depends: [
  [
    "alcotest.1.2.1"
    "git+https://github.com/mirage/alcotest.git#6ca7cc04ea07f5bd5b001fed4a0313d82e4b3cc0"
  ]
  [
    "astring.0.8.4+dune"
    "git://github.com/dune-universe/astring.git#baa4e7e2bf919293aac2c899786c2ac40757dd9b"
  ]
  [
    "cmdliner.1.0.4+dune"
    "git://github.com/dune-universe/cmdliner.git#4fc08affe26642b6285cedc1d2ca7ec03127caf3"
  ]
  [
    "cppo.1.6.6"
    "git+https://github.com/ocaml-community/cppo.git#51c598bf4a4732fdd9be1b16a5b26743ec4023d2"
  ]
  [
    "dune-configurator.2.6.2"
    "git+https://github.com/ocaml/dune.git#3e37ed0de8c57b7c59db9e1a5c3cf7aca4904430"
  ]
  [
    "dune-private-libs.2.6.2"
    "git+https://github.com/ocaml/dune.git#3e37ed0de8c57b7c59db9e1a5c3cf7aca4904430"
  ]
  [
    "findlib.1.8.1+dune"
    "git+https://github.com/dune-universe/lib-findlib#55b3374114ea425e8881e4758a06b02ba06aabb5"
  ]
  [
    "fmt.0.8.8+dune"
    "git+https://github.com/dune-universe/fmt#342fa6d95e847694b71f798ad55cb932b64d0d35"
  ]
  [
    "fpath.0.7.2+dune"
    "git://github.com/dune-universe/fpath.git#9402e6033c994ab3201be04c6f8e8a101e737ab9"
  ]
  [
    "logs.0.7.0+dune"
    "git://github.com/dune-universe/logs.git#4f141048f71b1d84b8e283086c62ca270aa13051"
  ]
  [
    "lwt.5.3.0"
    "git+https://github.com/ocsigen/lwt.git#ba43d08a484774545428fd9e5a7ba6a8fbb6440a"
  ]
  [
    "mmap.1.1.0"
    "git+https://github.com/mirage/mmap.git#46f613db11c00667764523ccbb3d63e53e1c666c"
  ]
  [
    "ocaml-migrate-parsetree.1.7.3"
    "git+https://github.com/ocaml-ppx/ocaml-migrate-parsetree.git#c5d4f6fce30d3eb699d79d288d0b265752ba64c5"
  ]
  [
    "ocaml-version.2.6.1"
    "git+https://github.com/ocurrent/ocaml-version.git#c1a46982e15b89bd07b304c7c3784496e2341d5f"
  ]
  [
    "ocamlfind.1.8.1+dune"
    "git+https://github.com/dune-universe/lib-findlib#55b3374114ea425e8881e4758a06b02ba06aabb5"
  ]
  [
    "ocplib-endian.1.1"
    "git+https://github.com/OCamlPro/ocplib-endian.git#6ee41bb7f8f2bef103bcf4e05ace57597c0d2316"
  ]
  [
    "odoc.1.5.1"
    "git+https://github.com/ocaml/odoc.git#b794961f43fa34c835e4bd21d2c76a734bfbe7bd"
  ]
  [
    "ppx_derivers.1.2.1"
    "git://github.com/ocaml-ppx/ppx_derivers.git#d6655353f647d33de12d215aaa477ba936febef3"
  ]
  [
    "re.1.9.0"
    "git+https://github.com/ocaml/ocaml-re.git#42c7f8899c9b1a4e011053487a97cf7eab312d5f"
  ]
  [
    "result.1.5"
    "git+https://github.com/janestreet/result.git#b0b9cd6e9cce8d2b7ad11127a6135540ec3f8a92"
  ]
  [
    "seq.base+dune"
    "git+https://github.com/c-cube/seq.git#6934813195285661cba3e017e7d3cd79d362bb2f"
  ]
  [
    "stdlib-shims.0.1.0"
    "git+https://github.com/ocaml/stdlib-shims.git#d32f70e5bec8255903e9b27f89c49da812ad9b6e"
  ]
  [
    "tyxml.4.4.0"
    "git+https://github.com/ocsigen/tyxml.git#35435ed1ed2424119da82c794aa9ad0fbfeddd9f"
  ]
  [
    "uuidm.0.9.7+dune"
    "git://github.com/dune-universe/uuidm.git#fa124fd3c0a82f7005fdac982e520c9c066488c4"
  ]
  [
    "uutf.1.0.2+dune"
    "git://github.com/dune-universe/uutf.git#66ddef1cf88fa0806095fb262b3a47b32a85b54d"
  ]
]

@rjbou rjbou added this to the 2.1.0~beta3 milestone Sep 22, 2020
@rjbou
Copy link
Collaborator

rjbou commented Oct 27, 2020

Thanks for the very good example!

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

Successfully merging a pull request may close this issue.

2 participants