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

I'm not clear on why this is a C problem specifically, when it sounds like the author is really bothered by the lack of standardization in ABIs. Why would other languages not have this problem? At the assembly level, you still need to know which parameters go in which register and how the stack is laid out in memory. Rewriting the Linux kernel in Rust wouldn't change the way that software interrupts work, so how would it give you a Rust-native system call ABI? Am I missing something?


It's not a problem with C itself. But it's a problem that C, which has loosely defined ABI, is actually used as the standard ABI of the OS. And the OS is not only about system call, but about system libraries (window manager, ...), and interoperabiloty between languages


As noted very clearly in the article, the problem with using underspecified versions of C as the ABI is _also_ a problem for C the language, as it limits the possible evolution of C.


ABIs are only a problem in environments that use dynamic shared objects. But the reason why that's the case isn't obvious. So when in doubt everyone just scapegoats C. I suppose the strongest language can take the punches.


I guess the author would also complain that English is the primary form of communication online because of all the edge cases it has




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

Search: