Ludovic Courtès <[email protected]> writes:
> Ricardo Wurmus <[email protected]> skribis:
>
>> R provides a function “Sys.which”, which embeds the full path to “which”
>> at configure time. The path it embeds is that of “which” *before*
>> grafts.
>
> Where’s that reference? I couldn’t find it:
You can see the reference (before commit
a8cd352304807ef60d06c35da07c5456f036688c) within an R session. If you
type “Sys.which” the code for “Sys.which” will be printed.
$ /gnu/store/hzc1fnrjv8ys399glbzmhds21fm9zzva-r-minimal-3.4.0/bin/R -e
'Sys.which' | grep /gnu/store
which <- "/gnu/store/ppyczjc1figwv6yb6brg938y49856avb-which-2.21/bin/which"
(The reference is the same as “guix build --no-grafts which”.)
> Normally the grafting code replaces all the store references, unless the
> reference is somehow obfuscated (which would be surprising here.)
Right. In the case of R, the environment for a package is serialized to
a possibly compressed data file (.Rdb) with an index (.Rdx).
“Sys.which” is part of the “base” package and I cannot find a plain text
reference to “bin/which” in the binaries for “base”.
I don’t know if we can (or should) disable compression for Rdb files.
--
Ricardo
GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
https://elephly.net