News for hackers. Stuff that matters.
Re:Rust: Not So Great For Codec Implementing by adrianratnapala on Tuesday August 01, 2017 @04:42PM (#14905110)
On particular platforms they have nailed down the C++ layout enough to make this possible. I think windows did it for COM (or DCOM?). But in general you are right.

On of the most infuriating things about fancy languages is the way they all have their own ABIs. I mean it's nice that they support special features through those ABIs, but standardized vtables and dictionaries would take us a long way.

And Kudos to Microsoft for having a second crack at getting that right with .Net.

Re:Rust: Not So Great For Codec Implementing by cryptonector on Tuesday August 01, 2017 @06:20PM (#14905983)
Yes, that's right, and multiple compilers support the Windows C++ ABI. You still couldn't write portable C++ in C or assembly (or anything else not C++). Does anyone write C or assembly to that ABI? Probably not, though to be fair that's probably in large part because if you're going to do that you might as well write in C++ :^)

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.

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).
Re:Rust: Not So Great For Codec Implementing by pjmlp on Wednesday August 02, 2017 @02:38AM (#14908427)
> And Kudos to Microsoft for having a second crack at getting that right with .Net.

IBM did it first with TIMI for AS/400.

Also Microsoft is now in their third crack at getting it right with UWP (based on COM).