top | item 46985359

(no title)

Panzerschrek | 18 days ago

> Every ABI concern constrains future evolution permanently

Why caring about ABI stability? It's easier just to link anything statically. Benefits of dynamic linking are negligible or even negative and thus it doesn't have any sense to have headache maintaining ABI stability. That's exactly what Rust does.

discuss

order

ceteia|18 days ago

I think there are some smaller Rust ecosystems where they try to have some kind of ABI stability or dynamic linking. For instance, Bevy has some support for dynamic linking.

Edit:

Redox OS might be a better example, though its dynamic linking is for its Rust implementation of the C standard library.

https://www.redox-os.org/news/release-0.9.0/

> Relibc is also now key to our “stable ABI” strategy. The plan is for files to dynamically link against Relibc, which will provide a stable ABI for the dynamic linker. New POSIX functions will be added to Relibc, but none will be removed. That will leave us free to change the implementation of the services as Redox evolves, but still be able to run binaries compiled for older Redox versions.

kibwen|18 days ago

Almost by definition, you have ABI stability as long as all artifacts are compiled with the same version of the same toolchain on the same platform with all the same compiler flags. That's not enough to let you generally ship pre-compiled artifacts with the intent for users to dynamically link them, but it might be enough to let you leverage dynamic linking for hot-reloading within a single developer's workflow.