On 07/13/2016 09:10 AM, Stefan Nuxoll wrote:
ABI stability is entirely dependent on compiler version, AFAIK.
Within the same version of rustc there should be no issues with
I suspect that may true in general, but I don't think it's promised, and
I don't really trust it. We need to be able to patch bugs and security
fixes, and it's really hard to tell what will change the ABI.
For instance, all reachable symbols are exposed in the dynamic library,
not just public ones. This is necessary for generics that are
instantiated elsewhere to get to their internals. So you'd have to make
sure that whatever you're patching doesn't change reachability.
Inline tags can also affect symbols, and I'm sure there are other things
that I'm not thinking of right now. I really think we should stay away
from this until Rust gets a true stable ABI.
of course whenever we upgrade rustc we'd need a mass rebuild of
rust package but we'd have to do the same thing with static linking.
With unstable dynamic libraries, we'd have to rebuild everything all at
once, and push them through bodhi together, with precise Requires tags
to keep them all in sync.
With static linking, we can relax a little. Only leaf packages have to
be rebuilt, and only if the update actually requires propagating, which
can be left to maintainer discretion. For instance, even a full rustc
rebase doesn't necessarily need to rebuild all rust packages. And since
there's no runtime dependency, the rebuilt packages can be pushed
through bodhi independently.