To Save C, We Must Save ABI

(thephd.dev)

38 points | by gurjeet 3 days ago

5 comments

  • usrnm 1 hour ago
    The famous C dilemma: we want to be as close to the machine as possible, but don't want to change anything when the machine changes
    • pjmlp 5 minutes ago
      Because contrary to urban myths, C is a normal high level language like everything else.

      The Assembly like abilities have been growing as language extensions in specific compilers, not as part of ISO C.

      Going back to K&R C, inline Assembly or intrisics were not even available, all of that required using the Assembler directly.

    • tonyhart7 31 minutes ago
      so what they gonna do ??
  • aw1621107 39 minutes ago
    Previous submissions with comments:

    - 2023-06-10, 64 points, 16 comments: (https://news.ycombinator.com/item?id=36249253)

    - 2022-03-13, 175 points, 129 comments: (https://news.ycombinator.com/item?id=30660528)

  • codeflo 43 minutes ago
    Thousands of words that boil down to "intmax_t isn't ABI-stable". Who knew? (Everybody.)
    • aw1621107 26 minutes ago
      I think that's somewhat overly reductive. A significant portion (maybe 1/3-1/2?) of the article is devoted to describing mechanisms by which an ABI could be evolved, including a new (?) mechanism implemented in the author's Clang fork and submitted to the C committee ([0] in the blog post, currently on revision 8 [1]). Sure, it isn't a perfect solution, but as the author says:

      > at least we’ll finally have the chance to have that discussion [about breaking ABI] with our communities, rather than just being outright denied the opportunity before Day 0.

      [0]: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2901.htm

      [1]: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3913.htm

      • uecker 0 minutes ago
        The mechanism actually does not solve the problem it claims to solve.
  • jdw64 1 hour ago
    But the industry ultimately runs on compatibility, so I get why they do it. But if compatibility breaks, wouldn't hardware vendors die out? If you look at PLC and other hardware manufacturers, they're not even using modern coding. They're still running on old code. They say it's 'safe and certified code,' but in reality, it's just legacy code.

    Because in hardware, programmers, aside from researchers, are often paid much less and work in worse conditions compared to their software counterparts. At a software company, code is the product itself. But in manufacturing, software is treated as a cost attached to machines worth billions of dollars. While equipment and sensors keep getting updated and more expensive, the people connecting everything are seen as a cost cutting target. So hardware programmers generally have good job security, but their salaries aren't high. In that situation, asking them to learn something new instead of sticking with the old ways usually gets resistance, because they're not being properly compensated for that learning

    • mschuster91 46 minutes ago
      > In that situation, asking them to learn something new instead of sticking with the old ways usually gets resistance, because they're not being properly compensated for that learning

      And on top of that... these things are battle tested, often running machinery that isn't just worth millions of dollars but runs goods worth orders of magnitude more. Stuff breaking because some new shiny thing has been introduced... no one bats too much an eye when Reddit's UI is missing a widget here and there because someone pushed vibecoded garbage to prod again, but a car manufacturing line? A chemical plant that needs to operate 24/7 so that nothing solidifies in pipes, wrecking the entire facility to the point you need to fully dismantle it?

      When this kind of consequences are in the air, everyone is much much more conservative, because no one wants to be left holding that bag.

      • jdw64 44 minutes ago
        Exactly. You're in the same industry as me. The moment you try to change something, if the production line stops, the losses are enormous—so everyone becomes conservative. That makes it even harder to change later... It's a really difficult problem
  • xyzsparetimexyz 48 minutes ago
    Yeah, well, that didn't happen