I was happy to give 300USD of my personal money to push someone to work on this task. But I can't afford to pay a company to work on that task.

There is a script in the opam repo providing binary cache already[1]. The problem is that it doesn't handle relocation well. Because of paths contained in the cached content. For example if I install ocaml in a switch A, then in switch B, then delete the switch A, suddenly the switch B won't work anymore.

To me the ideal solution would be to extract the code of esy that is doing path replacements and use it in an opam hook. It would also require all switches to be installed in a path of a similar length, but that's a trivial task.

1. https://github.com/ocaml/opam/blob/4756ca1/shell/opam-bin-cache.sh

On Thu, Jun 18, 2020, at 17:00, Fabrice Le Fessant wrote:
opam is maintained by OCamlPro, why not contact them and get a quote ? It won't be 300$, but everybody will enjoy the feature in the next version.

As a side note, a long time ago, I had an implementation of a binary cache for OPAM. The modifications in OPAM were minimal: opam would
just call a hook to build the package and install it, providing a checksum of dependencies and sources. The checksum would be used by an external tool (`ocp-bin`) to query the local binary cache (or a remote server) and either re-install the package or build it and save it in the cache. Since it was written in 2013, not sure if it would still work easily with current opam. Its code was used later to create opam-builder.
--
Fabrice LE FESSANT
CEO Origin-Labs SAS & Dune Network

Le jeu. 18 juin 2020 à 03:53, Francois Berenger <mlists@ligand.eu> a écrit :
Cf.
https://discuss.ocaml.org/t/bounty-for-compilation-cache-in-opam/2482
for details.
--
Fabrice LE FESSANT
Chercheur en Informatique
INRIA Paris Rocquencourt -- OCamlPro
Programming Languages and Distributed Systems