From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1gopac-0005Qk-CK for mharc-gwl-devel@gnu.org; Wed, 30 Jan 2019 08:07:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33119) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gopaZ-0005P6-5T for gwl-devel@gnu.org; Wed, 30 Jan 2019 08:07:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gopaV-0004M5-Qr for gwl-devel@gnu.org; Wed, 30 Jan 2019 08:07:34 -0500 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21015) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gopaT-0004KZ-3Z for gwl-devel@gnu.org; Wed, 30 Jan 2019 08:07:29 -0500 References: <87bm40qta0.fsf@elephly.net> <875zu7refm.fsf@elephly.net> <87womnptym.fsf@elephly.net> From: Ricardo Wurmus In-reply-to: Date: Tue, 29 Jan 2019 18:19:57 +0100 Message-ID: <874l9rpeiq.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: support for containers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: zimoun Cc: gwl-devel@gnu.org zimoun writes: > On Tue, 29 Jan 2019 at 12:46, Ricardo Wurmus wrote: >> zimoun writes: > >> > By inputs, do you mean data-inputs and package-inputs? >> >> Data inputs only. > > I understand that only the input files need to be part of the input hash. > However, I do not know if the output hash need to also contain the > tool hash and the input hash. > Therefore, when chaining (an input is another output), the store > should track the tools used, somehow. Ah, I understand now. > Maybe, it is what you are explaining with the quote: "we just hash the > inputs leading up to the output, excluding the output itself". Right, =E2=80=9Cinputs=E2=80=9D is very vague at this point. It should be = derived from the process and all of its data inputs (which are the result of other processes). As you can see this is analogous to Guix. I=E2=80=99m not clear on how exa= ctly this should be accomplished, to be honest. In Guix we have packages referencing other packages directly (through inputs or through the build system); this is all compiled down to derivations, which have clear inputs and outputs. In the GWL we have processes, which are linked through workflows. Processes compile to derivations that build scripts and the inputs to these derivations are only package derivations =E2=80=94 no data inputs, be= cause they only become important when the generated scripts are executed. We could start by assuming that the generated *script* of the current process (which references a particular package profile) is an input to the process=E2=80=99s output, as are the other data inputs, which have other processes scripts as inputs. We could thus cheaply hash the scripts =E2=80=94 since they contain referen= ces to the tools they use. -- Ricardo