From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id 11B6E5D5 for ; Thu, 18 Jun 2020 09:23:01 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.73,526,1583190000"; d="scan'208,217";a="455353799" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 18 Jun 2020 11:23:00 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 26950E034D; Thu, 18 Jun 2020 11:23:00 +0200 (CEST) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 695AAE0349 for ; Thu, 18 Jun 2020 11:22:55 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=gabriel.scherer@gmail.com; spf=Pass smtp.mailfrom=gabriel.scherer@gmail.com; spf=None smtp.helo=postmaster@mail-qv1-f53.google.com IronPort-PHdr: =?us-ascii?q?9a23=3Am9YQZRby9ZUgh7XDhygb9t3/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZrsi/bnLW6fgltlLVR4KTs6sC17OL9fm/BSdZut6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCybL9vLBi6txjdu8sZjIdtN6o8xAbCr2dVde?= =?us-ascii?q?hR2W5mP0+YkQzm5se38p5j8iBQtOwk+sVdT6j0fLk2QKJBAjg+PG87+MPktR/Y?= =?us-ascii?q?TQuS/XQcSXkZkgBJAwfe8h73WIr6vzbguep83CmaOtD2TawxVD+/4apnVAPkhS?= =?us-ascii?q?EaPDMi7mrZltJ/g75aoBK5phxw3YjUYJ2ONPFjeq/RZM4WSXZdUspUUSFKH4Gy?= =?us-ascii?q?YJYVD+cZMulYoYvyqVsAoxW9GAeiGv/gxyRSiXPqx6A3yfgtHR3E0QEmAtkAsG?= =?us-ascii?q?7UrNLwNKoKUO661rLHzS/Cb/xI3Tf29ZXGfQwhof6SR7J/b9DRwlQoGgPKlFqf?= =?us-ascii?q?spblPzKL2eQJqWSb9PZvVeKxhG49tQ5xuCOixsgpiobTh4IVzkrI+jl+wIYwPN?= =?us-ascii?q?C1TlNwbtG4HpVKrS6aK5d2Td04Q2FuoCs3zrMItYO0cSYF1ZkpyRDSZ+KJfYWV?= =?us-ascii?q?7BztVOecLStmiXxldr+zmwq+/Emix+D4VcS51FlHojdZn9TSuX0ByRPe586aQf?= =?us-ascii?q?Vz+Ueh3CyA1wHV6uxcLkA0lLbbK548wrErjJYcrUPDHirulEXxkKCZbEAk+uyy?= =?us-ascii?q?5+TgeLXmqZmRPJJ3hAHmKqkihNCzDOAiPgUNX2WX4/qw2KDn8EHjQLhHgPs7mb?= =?us-ascii?q?TDvp/AP8QUvKu5DhdV0ok97xa/CC+r0NECknkGKFJJYQuHj5b0N13XLvD1Dfmy?= =?us-ascii?q?j06jkDdswPDGMbnhDYvXInffl7fheK5x609ayAUt0dBS/4xYBq0FLf7pWUL8tM?= =?us-ascii?q?bUAgEkPwGw2erqCNtw2psbWW2VA6+ZNK3SsUWP5uIqO+SMa5Uaty3nK/gk+fHu?= =?us-ascii?q?iWU1mUQBcqmpw5QXcm63Hu59LkWWZHrjmNYBEWMQsgUiS+zqjUWOUSRPaHaqQ6?= =?us-ascii?q?I8+jY7BZq6AojZQ4CthKWN3CO6Hp1NemBLEUuMEHftd4WcQfgAciOSIsl7kjwF?= =?us-ascii?q?T7etUYEh1Qv9/DP9np5gM+vPshcfvpJinIxx4PDSjjk28iF1FN6a2GGACWd5gj?= =?us-ascii?q?VbaSUx2fVQqEZny1qHmZNzg/FCGMYbs/xAWB07OJqa1Od6Bsr/QCrOe96ITBCt?= =?us-ascii?q?RdDwUmJ5dc4439JbOxU1IN6llB2WmnPyW+ZExYzOP4Q99+fn51a0Is98z3jc06?= =?us-ascii?q?x41gspR8JOMSutgastrlGPVb6MqF2QkuORTYpZxDTErT7Rwm+HvUUeWwl1A/2c?= =?us-ascii?q?ACIvI3DOpNG83XvsCr+jDbN9b1lEwM+Gb7JUM5jn0A4AS/DkN9DTJWm2njXoCA?= =?us-ascii?q?=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CwAgDzMetehjXbVdFmHQEBAQEJARIBB?= =?us-ascii?q?QUBggqDGVQzLIQkgRyCXoxsBR2LCYhhiBILAQMBDCMMBAEBhEACAgKCJQIcBwE?= =?us-ascii?q?ENBMCEAEBBQEBAQIBAwMEARMBAQEICwsIKYU1BicMgjspAYMNAQEBAQIBEhEdA?= =?us-ascii?q?RsUCQEDAQsGBQsNKgICIgERAQUBHAYTCBMHgwQBOYIRAQMOIA+qKYEEPYoydoE?= =?us-ascii?q?VBQEXgwIFgTMBFg+DFgoZKA1iA4E0AgEGEoEmgieKOA+BTD+BETaCLC4+glwCg?= =?us-ascii?q?UdFgmeCYASOeAsOlHCPRlooB4JdgQYEC4crjgSCXSCHfJZymzOUQg8jgUeBeDM?= =?us-ascii?q?aI1AxgjhQGQ2KCIQWGoNXhRSFREIwNwIGAQcBAQMJkH8BAQ?= X-IPAS-Result: =?us-ascii?q?A0CwAgDzMetehjXbVdFmHQEBAQEJARIBBQUBggqDGVQzLIQ?= =?us-ascii?q?kgRyCXoxsBR2LCYhhiBILAQMBDCMMBAEBhEACAgKCJQIcBwEENBMCEAEBBQEBA?= =?us-ascii?q?QIBAwMEARMBAQEICwsIKYU1BicMgjspAYMNAQEBAQIBEhEdARsUCQEDAQsGBQs?= =?us-ascii?q?NKgICIgERAQUBHAYTCBMHgwQBOYIRAQMOIA+qKYEEPYoydoEVBQEXgwIFgTMBF?= =?us-ascii?q?g+DFgoZKA1iA4E0AgEGEoEmgieKOA+BTD+BETaCLC4+glwCgUdFgmeCYASOeAs?= =?us-ascii?q?OlHCPRlooB4JdgQYEC4crjgSCXSCHfJZymzOUQg8jgUeBeDMaI1AxgjhQGQ2KC?= =?us-ascii?q?IQWGoNXhRSFREIwNwIGAQcBAQMJkH8BAQ?= X-IronPort-AV: E=Sophos;i="5.73,526,1583190000"; d="scan'208,217";a="455353737" X-MGA-submission: =?us-ascii?q?MDHMnLo99NoVD4xz8+8FhHBUvKzy02TOXWmAn5?= =?us-ascii?q?zVUIuvOJxfw2cQCdqzTmiyulUHutbaDLDC1+3FPxzZd2tcJlJJL8ut6C?= =?us-ascii?q?a6OIcag+7WL8T8Iar1FaezhmniBleCmtp968ZnzUFQfL8W76SXiRvKVW?= =?us-ascii?q?xg/mdDI/7vkAOQ2ZnbO5Z33A=3D=3D?= Received: from mail-qv1-f53.google.com ([209.85.219.53]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES256-GCM-SHA384; 18 Jun 2020 11:22:44 +0200 Received: by mail-qv1-f53.google.com with SMTP id er17so2424432qvb.8 for ; Thu, 18 Jun 2020 02:22:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Fp5CHBmKktGx4pElpjSI3Iq8wigrOkURsjs07oKki54=; b=AZrXb+uAnIAkMgTIWC7y0bhyBOC7A31ni8iFPpsYOB2runJ5MkibgWPucwVd5pG7Cj zSfOks8RwcJKXWnk6LReii/M05pEuBaWpdiR/riAiFlOps2C4ZOqvsbk7rgOMRLkxeVZ 4TZceuujBb5DAmiu2kDJoLFYIHwV/W+rzb2mzp5VyYAnwvtZFOn2YCAPCOkd0hKM0inZ I4Xkt2EQ+d7ypDDds/2DUPE2lcQCg+va0UhopwhAUqjwFf5Ryk9EjY83pOuT1hFaiBut icQTDlxN5ll6EU94RKjvWa8ZtGM5CuUlviH4VdhoY0MXQJ/YmfQbN5Zn7k32Yh62WD7q VmfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Fp5CHBmKktGx4pElpjSI3Iq8wigrOkURsjs07oKki54=; b=MMjCj/o47Fabaidtw+xRpYEyogbeN3FdRMhrkYl2fg82M4zCapOXo9dFxrvHQX8bHY msniFzwBwWHUFHdcpPLE/iw48/CUkwP+DqY38Bvg02NueWdwhVy9TwOvHXw5F3W9PrQC S5sOwya00a4A3EN5UN2rU+4609kksLfNwxV9z79631meLEUaC8EG7CIXX0XtAOwbeC6X zIqcvAlHR6qtlvLVOLwTAQURY5vq/Fq1iPpUlG7O1J5i+/CtSan4/Of3G2jrUiYsu+yS P4buouQIL7KnnwN6SKMmW5gmunL2aeOkqKZC9gX5VlUKTCRAe4F9wf1hxFonZhXjvhEW xHnA== X-Gm-Message-State: AOAM531KhI1s6ROYEPQM3yZCVxTxwc+FUyniP7SMJf+g3fISbrKD0qeV t86rxW1hFGH2M9bYclO1Lvohm8afZW3cvQJhin28Yg== X-Google-Smtp-Source: ABdhPJw1xv5AIrYM4rHFrBhbZjhoy8avhABDn1o9I2kG5BDN1y6/B4LvyCmWnEOEIM1Q578TTUtBHkFUCkBaoaWsBKI= X-Received: by 2002:a0c:f84c:: with SMTP id g12mr2728914qvo.31.1592472163620; Thu, 18 Jun 2020 02:22:43 -0700 (PDT) MIME-Version: 1.0 References: <29ef1edf-22e6-bcc3-bd98-dceccecf3420@inria.fr> <800d1d00-1fb8-1485-3022-c581753b3fba@inria.fr> <5b0a9f3f-6729-4e19-9f38-01d7d205c8d6@www.fastmail.com> In-Reply-To: <5b0a9f3f-6729-4e19-9f38-01d7d205c8d6@www.fastmail.com> From: Gabriel Scherer Date: Thu, 18 Jun 2020 11:22:05 +0200 Message-ID: To: =?UTF-8?B?TG91aXMgUm9jaMOp?= Cc: caml users Content-Type: multipart/alternative; boundary="000000000000a09c8d05a85851aa" Subject: Re: [Caml-list] 300$ Bounty for the feature compilation cache in opam Reply-To: Gabriel Scherer X-Loop: caml-list@inria.fr X-Sequence: 18175 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: --000000000000a09c8d05a85851aa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable For the record, upstream compiler developers have been discussing relocation again (largely because of esy's usecase). David Allsopp has a plan that looks interesting and could provide relocatability for the medium term, instead of relying on in-place path replacements. On Thu, Jun 18, 2020 at 11:10 AM Louis Roch=C3=A9 wr= ote: > I was happy to give 300USD of my personal money to push someone to work o= n > 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 swit= ch > 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 doin= g > 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 cach= e > for OPAM. The modifications in OPAM were minimal: opam would > just call a hook to build the package and install it, providing a checksu= m > 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 =C3=A0 03:53, Francois Berenger a > =C3=A9crit : > > 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 > > > --000000000000a09c8d05a85851aa Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
For the record, upstream compiler developers have been dis= cussing relocation again (largely because of esy's usecase). David Alls= opp has a plan that looks interesting and could provide relocatability for = the medium term, instead of relying on in-place path replacements.

On Th= u, Jun 18, 2020 at 11:10 AM Louis Roch=C3=A9 <louis@louisroche.net> wrote:
I was happy to give 300U= SD 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]. Th= e problem is that it doesn't handle relocation well. Because of paths c= ontained 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= 9;t work anymore.

To me the ideal solution wou= ld 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 p= ath of a similar length, but that's a trivial task.

<= /div>

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 ?=C2=A0It won't be 300$, but everybody will enjoy the feature in= the next=C2=A0= version.

As a side note, a long time ago, I had an implementa= tion of a binary=C2=A0cache for OPAM. The modifications in OPAM were minimal: opam would
ju= st call a hook to build the package and install it, providing a=C2=A0checksum of dependenc= ies and sources. The checksum would be used by an=C2=A0external tool (`ocp-bin`) to quer= y the local binary cache (or a remote=C2=A0server) and either re-install the package or bu= ild it and save it in=C2=A0the cache. Since it was written in 2013, not sure if it would s= till=C2=A0work = easily with current opam. Its code was used later to create=C2=A0opam-builder.
<= /div>
--
Fabrice LE= FESSANT
CEO Origin-Labs SAS & Dune Network
<= div>
Le=C2=A0jeu. 18 juin 2020 =C3=A0 03:53,= Francois Berenger <mlists@ligand.eu> a =C3=A9crit=C2=A0:
Cf.

--000000000000a09c8d05a85851aa--