3 ms·
You can pin multiple versions of the same dependency, just not with the shitty ldd you're thinking of. Or avoid dynamic linking altogether. Rust lets you have
by anothernewdude 5y ago
You can pin multiple versions of the same dependency, just not with the shitty ldd you're thinking of.
Or avoid dynamic linking altogether.
Rust lets you have multiple versions of the same crate living in the same executable.
- humanrebar 5y agoStatically linking doesn't necessarily fix this. Nor does ensuring only one version is actually linked. The problem starts when different dependencies have different opinions about ABI-important details. Like layout of data structures, layout of v-tables, use of concurrency primitives, or even stack utilization. I don't have as much depth of knowledge in cargo (rustc probably can't avoid these problems). From what I can tell, it prefers resolving dependency sets per executable, which means it would be opting for the combinatorial explosion of compatibility sets problem. That's a valid tradeoff to select, though I am extremely skeptical that an organization with 30k Rust projects would find that dependency juggling is a non-problem.