Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"C++" (C++ people would argue this is not a language issue and therefore out of scope for them, hence the quotes. I'm not implying this is a bad decision to make, simply saying it's the argument I've read before) doesn't really support binary libraries well either. Name mangling, object layout, exception handling, dynamic dispatch are all things that different compilers are not guaranteed to implement in the same way. There's a survey of some of the implementations of these features here: https://www.agner.org/optimize/calling_conventions.pdf , although it is a few years old now. This is to say nothing of differing implementations of functionality between different versions of the same compiler, which is of course possible.

Most binary C++ libraries I've dealt with either require you use the same compiler, or export a C interface through extern "C".

Rust doesn't really support shared objects from Rust to Rust at all, from what I can tell (caveat that I've never actually tried it). There's no stable ABI (https://github.com/rust-lang/rfcs/issues/600), and therefore the only way to go is via a C interface. So Rust is more or less in the same place, just with fewer compilers.



Fact is, they do exist, and in what concerns Apple and Microsoft platforms, we use them all the time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: