On 01-08-2022 14:49, Andrew Tropin wrote:
However this one is incorrect as it would lead (ice-9 string-fun) from the host Guile to be imported into the build environment, thereby making the result dependent on the version of Guile that is used “outside” (you may have seen a warning like “importing (ice-9 string-fun) from the host”.)Why so? I expected modules closure to be compiled on build side and provided to activation script via preset load-path.
This is true, and this causes the problem that Ludo' describes:
Two problems:
* (ice-9 string-fun) is part of Guile, so compiling it again is pointless (and potentially harmful, if ice-9/string-fun.scm contains a reference /gnu/store/.../some-target-specific-library.so)
* a form of non-determinism and non-reproducibility -- you are copying the modules from the Guile that 'guix' is run with, instead of always using the modules from the Guile that is defined inside Guix.
* additionally, maybe the inside-Guix and
what-Guix-is-compiled-with Guile expect different behaviour of
(ice-9 string-fun), causing bugs
Greetings,
Maxime.