> Our issue is a different one: Its about being able to reuse already > compiled binaries - keeping current behavior of rust binaries being > statically linked. > > While this looks like being the same as dynamic library support, it > is not: While for dynamic libraries you meet to ensure the very > correct version of a "crate" is loaded, for static linking with pre- > build binaries you only need to ensure this at build-time. (For guix, > of course, both would not be a problem, but I doubt we can make rust > people understand this. And other distros will still have the > problem.) That plus static libraries can't be grafted, which can be a problem when your programming language despite being touted as secure still allows large arrays of buggy behaviour. So while "statically linked, but reusable and I swear, it really is reproducible" might work for the time being, it is not a long-term solution.
One might be tempted to compare this to Go, which we also can't dynamically link, but the important difference here is that Rust is already being pulled in by core-updatesy stuff like GTK, so a bug in certain Rust software would affect *a lot* of Guix users whereas Go is mostly an ecosystem onto itself. (Note, though, that a Go update would need to go through staging – not an ideal situation either.) Regards, Leo