guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: diverse double compilation: using $ORIGIN?


From: Ludovic Courtès
Subject: Re: diverse double compilation: using $ORIGIN?
Date: Sat, 11 Nov 2017 22:56:13 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Chris Marusich <address@hidden> skribis:

> Ricardo Wurmus <address@hidden> writes:
>
>> Since the GCC build procedure is performed at least two
>> times (once with the bootstrap compiler, and then again with the GCC
>> variant this produces), the resulting GCC binaries should be identical.
>>
>> Except that they are not.  One of the reasons is that the binaries
>> that Guix produces embed the target output directories.  This means
>> that the two compiler binaries that result from diverse double
>> compilation will *always* differ in at least the embedded paths, such
>> as paths to itself (e.g. to binaries in the libexec directory) and
>> paths to.
>
> What ever happened to the intensional model (i.e., a content-addressed
> store)?  If derivation outputs were content-addressed, this would not be
> a problem, right?

Indeed.

> Dolstra's thesis presented some ideas for how to rewrite self-references
> in derivation outputs under the intensional model.  I've casually looked
> into what happened with the intensional model since his thesis was
> written, but I don't really know why it hasn't been implemented.  All I
> know is that Dolstra and the Nix devs seem to have moved away from that
> idea; I never really learned the reason(s) why.

One problem is that it requires 100% reproducible builds; if something
doesn’t build reproducibly, you cannot get substitutes.

Another problem is… migration.  :-)

Now, fixed-output derivations are one way to retrofit bits of the
intensional model in the extensional model.  Perhaps we could do more in
that direction?

Ludo’.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]