HN.zip

your C is not standard C

25 points by dverlaeckt80 - 6 comments
dzaima [3 hidden]5 mins ago
> gcc, however, always defines FLT_ROUNDS to 1

Well, considering that gcc doesn't support the FENV_ACCESS pragma, and as such all fesetround calls are always UB, it is valid for it to act as if the rounding mode never changes from the default :)

MisterTea [3 hidden]5 mins ago
As someone who loves and enjoys writing Plan 9 c, all I can say is "standard c", whatever that means these days, is a mess. Too many things to name ranging from the only two oss compilers being bloated monsters, post c99 additions being pointless, in-line asm ruining portability*, and POSIX can die in a fire (along with typewriter terminals.)

I have a friend who is currently on the C committee and is likely going to leave because of all the bad ideas which have both been implemented and going to be implemented.

* No, spamming a million ugly #ifdefs all over the source files is gross and hard to read. Split up the code dammit.

201984 [3 hidden]5 mins ago
>post c99 additions being pointless

Atomics are necessary nowadays though.

3836293648 [3 hidden]5 mins ago
As a part of the language? Are they really? You can do it all with library functions that just take regular int* (and so on).

Not that I'd want it, I like complex type systems, but I see it as philosophically consistent with C.

publicmail [3 hidden]5 mins ago
A library function written in what? Atomics also come along with memory ordering which isn’t otherwise expressible in the language, as in, there was no standard way to do a “load acquire” before, for example.
glouwbug [3 hidden]5 mins ago
Plan 9 inheritance is really nice. You can still use it with `gcc -fplan9-extensions`. It builds some nice polymorphic workflow an array of tagged enum void pointers