"C has a consistent & stable ABI." I am howling, y'all.
-
-
-
Replying to @cr1901 @stephentyrone
I can think of a couple: - On Windows, MSVC didn't have a stable ABI at all until very recently with the ucrt. stdcall and COM are the "stable" platform ABIs - On sysv x86-64 ABI platforms, the convention for _m256 depends on whether you have AVX
2 replies 0 retweets 17 likes -
Replying to @jckarter @stephentyrone
Re: Windows, you are correct and I totally forgot :P. But re: the AVX stuff, why is that a problem? Is using "AVX" versus "not using AVX" mutually exclusive? As opposed to "use AVX regs" for params is an optimization that can optionally be taken?
2 replies 0 retweets 0 likes -
"Stable" to me means "shared libraries will keep working if you link code generated against a previous ABI with the current ABI." Which I've only seen successfully done w/... *checks* C code, and nothing else :P? Rust in particular is quite partial to static libs right now :(
1 reply 0 retweets 0 likes -
Replying to @cr1901 @stephentyrone
You bring up the point that "stable ABI" is more than just about language guarantees; you do need "compiler promises to use compatible calling conventions in these circumstances", but you also need libraries to promise to stay within those circumstances
2 replies 0 retweets 4 likes -
C++ also supposedly has a stable ABI, for instance, but the language makes it very hard to stay within its confines. Rust seems similar, given that so many language features rely on compile-time specialization
2 replies 0 retweets 1 like -
Replying to @jckarter @stephentyrone
So basically, once you add generics, kiss your stable ABI goodbye :P? I really care about stable ABIs to the extent that Rust is punting on the issue of space savings and only upgrading dependencies as needed by encouraging making everything static and recompile all time time.
3 replies 0 retweets 0 likes -
Even recompiling my C++ dependencies once in a while due to an incompatible ABI change doesn't really bother me, because I don't have that many C++ libraries to worry about :). But C++ also doesn't change as fast as Rust. What do you mean by C++ ABI that "no one uses"?
1 reply 0 retweets 0 likes -
Replying to @cr1901 @stephentyrone
I mean that not many people seriously try to deliver C++ binaries that are stable across library and/or compiler versions. Many of the folks who do use a C shim layer
1 reply 0 retweets 0 likes
Or COM. In fact that’s most of the reason COM exists (the other being VB6 interop).
-
-
There's also this weird "object c"?
0 replies 0 retweets 2 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.