Subject: Re: [bug#52283] [PATCH 02/10] transformations: Add '--tune'.

From: zimoun <[email-masked]>
Date: Tue, 7 Dec 2021 16:52:31 +0100

Hi,

On Tue, 7 Dec 2021 at 15:52, Ludovic Courtès <[email-masked]> wrote:
> zimoun <[email-masked]> skribis:

> >> The test suite runs in the “baseline” package build anyway, so assuming
> >> the compiler works fine, skipping the test suite on tuned builds is
> >> okay.
> >
> > I miss if the test suite is effectively run somewhere?
>
> Yes, for the default/generic/baseline package, when not using ‘--tune’.

Assuming, the default/generic/baseline package is effectively built. :-)

I imagine the scenario: I develop a new simulation tool, I package it
for Guix, I share it; usually I run "guix shell -D" and do loop over
"make" and "make check", then deploy using "guix build --tune".  My
colleague fetches it and want to run it on another cluster, i.e., they
run "guix build --tune".  The test suite for the generic/baseline is
never run inside a clean environment.  And as we know, this isolated
part allows to detect many common issues; which are often source of
"it works for me, why does it not work for you?". ;-)

> > My questions are coming from Julia packages in mind, where the test
> > suite is the only way to know all is fine.  And many times, add System
> > Image for Julia had been discussed and basically this System Image is
> > precompilation (generic one or specialized for micro-architecture).
> > Therefore, maybe this new 'tune' transformation would fit the bill.
> > :-)
> >
> > https://docs.julialang.org/en/v1/devdocs/sysimg/
>
> According to this page, ‘--tune’ won’t be necessary here because Julia
> supports function multi-versioning for its “system image”:

Yes, but from my understanding, the "baseline" cannot provide an image
for all the micro-architectures, but only 'generic'.  Moreover, as you
described elsewhere, we cannot know for sure whether the machine that
hosts the daemon is able to run code for this specific
micro-architecture.  Anyway.  That's off topic. ;-)  Thanks for
explaining and let discuss elsewhere this Julia machinery. :-)

Cheers,
simon