My brilliant idea for "any VLA type" was thwarted because of the stupid rules for array declarators in parameters goddamn I hate that language rule soooooooo much.
@thephd who is the ruler of the rules though, hm? Would it be perhaps you who proposes language features?
@thephd if you're being brilliant and the language is stopping you, clearly just change the language to allow you and everyone else to thrive
@gaycodegal Alas, backwards compatibility 😔

@thephd

@gaycodegal

C99 already had the option to make

void f(int[6]);

mean something distinct from

void f(int *);
void f(int[60]);

and decided that the backwards compatibility case for people writing in a constant number but not really meaning it, was more compelling than turning obviously-wrong declarations into errors

instead you need a new keyword (that is widely misunderstood and hated) if you want it to even be eligible for a warning

(in WG14's defence we more or less agreed "morally" to fix this per a proposal by @uecker but didn't get to it in the C23 cycle)

@erisceleste @gaycodegal @uecker Good ol' ancestors not saving us by choosing compat over boldness. Same situation where everyone complained to me about nullptr in C. But, when we had proposals before to mandate #define NULL (void*)0, to prevent the issues that obviously came up with ... functions and similar conceptual problems with not-exactly-constant-zero being used to initialize a pointer, they all got weak in the knees and rejected it.

So now, you have to do the "well, we have to simplify the situation by adding something new". And then people get all pissy when if they had ever put in the work to make 0 a less attractive option for the null pointer, or done even a deprecation 20 years ago we'd have a leg to stand on and a reason to fight for something today.

But they didn't.

So we don't.

@erisceleste @gaycodegal @uecker Call K&R whatever you want, but they were so on-the-ball with understanding that people in the future deserved better. They nuked-from-orbit the literal function declaration and definition syntax that had their name on it — from the very first standard version of C — by putting it in deprecated.

They understood it was better to look to the future rather than endlessly cling to what had been.

I wish people who worked with C today were even a smidgen as brave as those two.

@thephd @erisceleste @gaycodegal @uecker posts like this makes me wonder how feasible it would be to like. fork C. and turn it into a new C-like language unencumbered by historical artifacts

and before anyone brings up C++: no not like that

@eniko @thephd @erisceleste @gaycodegal @uecker plenty of people have forked C, that's called being a C vendor /s

forking C is probably extremely feasible, but it wouldn't solve the problem of C, The Abominable Beast That Permeates Our Computers, being A Complete And Utter Mess. which is why i have such mad respect for JeanHeyd and others' valiant fights to clean that shit up

@estroBiologist @thephd @erisceleste @gaycodegal @uecker yeah that's fair. taking your ball and going home won't fix C