← Back to context

Comment by ryukoposting

3 years ago

> This seems totally misconceived to me as a basis for standardizing a language in 2022. You are optimizing for the few at the expense of the many.

Sure, but it's the same line of reasoning that made C relevant in the first place, and keeps it relevant today - some library your dad wrote for a PDP-whatever is still usable today on your laptop running Windows 10.

Because it's antiquated, it's also extremely easy to support, and to port to new and/or exotic platforms.

The library my dad wrote (lol) for the PDP-11 is probably full of undefined behaviour and won't work now that optimizers are using any gap in the standard to miscompile code.

  • > using any gap in the standard to miscompile code

    For code to be miscompiled, there has to be a definition of what correctly compiling it would mean, and if there were, it would not be undefined behavior.

    • Instead of "miscompiled" you can read "Doesn't do what it did on the PDP-11 with the compilers of the time".

    • The standard doesn't do that often, but it does sometimes. E.g. realloc to null which was previously defined, and is now UB :(

      1 reply →

  • What a useless and jaded assumption that code written in the past is bad.

    • I certainly didn't say it was bad. Just that it went outside the boundaries of a standard that was written 25 years later.

> PDP-whatever is still usable today on your laptop running Windows 10

No, it isn't. Go on. Go ahead and try

See it break in a million weird ways. (Or, for a start, it will have the K&R C format, which is a pain to maintain)

"If your computer doesn't have 8-bit bytes" at this day and age? It belongs in a dumpster, sorry.

(I think the only "modern" arch that does this is PIC, and even only for program data - where you're not running anything "officially" C89 or later)

  • When I first learned C, it was K&R, pre-ANSI with old style function parameters. It is trivial to convert to ANSI C. The truth is C has barely changed in decades.

  • You should take a look at plan9port - a bunch of userspace tools from Plan 9, carefully ported to Linux with few changes. Maybe that's not PDP-whatever, but it is Sun-whatever. Either way, it's code that was written decades ago for a dead architecture.