Re:Rust: Not So Great For Codec Implementing
by sitkack on Tuesday August 01, 2017 @08:56PM
(#14906963)
I would like a declarative language for laying out the heap, stack, objects, etc. Why have one ABI and not an ABI configuration protocol? Would love to share data structures between languages w/o having to write serializers.
Re:Rust: Not So Great For Codec Implementing
by krallja on Wednesday August 02, 2017 @12:38AM
(#14907965)
You can't just wake up and decide to be Don Box like that!
Re:Rust: Not So Great For Codec Implementing
by sitkack on Monday August 14, 2017 @12:28AM
(#15006579)
I am going to out Box, Don Box!
Re:Rust: Not So Great For Codec Implementing
by aidenn0 on Wednesday August 02, 2017 @01:15AM
(#14908113)
As a counterpoint, PowerPC has at least 3 mutually incompatible ABIs for C.
Re:Rust: Not So Great For Codec Implementing
by cryptonector on Wednesday August 02, 2017 @12:40PM
(#14912101)
But generally there's only one per-OS, so it's not that bad. C++ ABIs are per-compiler, or worse, per-{compiler, version}, with few exceptions (Windows).
Still, I think a public and stable ABI with fine-grained control of binary elements is a critical aspect of a systems programming language.
Also, the linker contributes a lot to making a systems language. E.g., being able to map globals to specific physical addresses. And, of course, either an ABI has to be dead trivial from a linker's perspective, of the linker has to be very intimate with it (think of symbol mangling). The linkers we use all evolved in a C world, and it shows. C w/ a really good link-editor and RTLD (I'm thinking of Illumos') is a much more advanced beast than C with plain old static linking. Even the ABI aspects of dynamic linking are simple, public, and stable.
A great systems programming language has to have a great linker story as well.