Finally getting around to listening to the Wookash Podcast where...

Well, time for the 2x speed buff.
They use the word slices but it's the same thing, spans or slices. I also want the ease-of-use safety.
Seems like a big reason people struggle on C11 is MSVC.
Both of them are complaining that C23 is adding too much stuff and "forgetting the essence of C". Lol. Lmao.
It's a push-and-pull, but the implementers DO have ultimate power. But, there IS a
Sometimes, we get our legs cut by implementers and can't fix or change things. Other times, you bring people in with standards.
Nobody ackowledges a
They also acknowledge this with the enumeration situation. "It was broken, C23 fixed it" yeah, man. Now that can be backported!
... So, like. Should the Committee acknowledge that and work to standardize those extensions and come to a middleground, or do we just... keep shooting up with extension-drugs forever? I know stability is
You hate the Committee and the de-jure law, but you acknowledge that *NOBODY* is writing pure, fully-legal C. Do we just keep doing that for eternity?
The other part is vendors are complaining about needing to maintain extensions forever. They aren't
But maybe I'm just weird for observing that and trying to change it, hm.
Unfortunately, the Hates-C person is playing spoiler: "That's a new language. That's not C anymore!" And he's right! But ooooooOOOOH we gotta get rid of that shit, it's A W F U L. Worst design decision of any proglang!!!
we will never get rid of it. It will never change. Ugly functions will continue to be jaw-droppingly ugly, declarations will continue to look fucked up. That's just a core tenet of C that not even I would try to change.
I'm sorry.)
I would agree, but unfortunately VLAs have straight shooters in the Committee, dawg. You try to remove them and a small but very strong subsection of C people WILL
(This is a joke and a play on a meme format: nobody will actually come hurt anyone about VLAs, but removing them after being made optional is a thing. MSVC will
Odin manages this slightly differently than C does.
Yeah, that's awful. It's not a good way to do bounds, unfortunately!
C's standard library is its WEAKEST part. Very awful design, lots of shared, mutable, invisible state. Truly bad, very thread-antagonistic. Blowing it up and starting over would be very good stuff.
But then it's not C. :3
The printing stuff sucks, the time stuff is dated and sucks, the thread stuff still sucks (I'm working on it), the atomics have some guarantees but not all, the
It's all booty-ass-cheeks, so, you know. Blow it up, start all over again, make sure it's multi-threading aware (NO internal locks/shared data), stuff like that!
But these two get it, BOTH the C lover and the C hater directly describe why the implicit-malloc, 0-terminated,
(I also had this issue which is why I proposed SIZED thread attributes, but the Committee blew them all up and wanted null-terminated string ones only. So, even though these two people get it, other C
It's refreshing that even the younger C programmers understand how dogshit null-terminated is, though!)
There's hope for the youth yet.
Half-agree. Like, this is a complete true statement, but it's missing the "and we don't have good slices and everything's still a pointer".
Bill and Ryan will be happy to know that we've adopted this policy! ... But mostly for very new features/headers. Old stuff will still probably have the compressed names! stdbit.h has descriptive names, though.
"In Odin, I have atomic operations, but I don't have atomic types but I've been considering the types." This is actually the correct direction of how to design atomics. Atomic operations are the fundamental, hardware-mirroring,
C++ and C got this wrong in their designs, they started with atomic objects, but needed atomic "accesses" (operations).
It is, unfortunately,
Alas!
I mean... I guess? Once you have one, the others are free. This is more nitpicky and honestly a flavor remove than anything, and he says as much, but. Even if I was designing a new language from scratch, it seems so totally.. free?
"Remove the arrow operator, just make the dot operator do the dereference"
I mean. Kinda agree, but not really worth it now that the blood is already in the water. It's more important for C to do this than C++, cause no T&.
"Error handling in C?" Some disagreement between Ryan and Bill here. Ryan would might do implicit thread_local stuff, but Bill would do return types and keep it all locally. But Bill figures it's API stuff.
Buddy you don't know the half of it. There's excel files using C macros as a preprocessing step. It's fucking bananas out there.
I'm not touching it.
Everyone's got their own bugbears about it and I hate getting involved in the topic because it's asinine even to just pin down definitions. I'll keep my hot takes to myself!!
Big bit is how allocations work. Universal acknowledgement that arena-style
- always pass in your own already-allocated buffer, make user responsible for memory (by having conservative stdlib) (Ryan),
- just make heap parameter explicit (Bill)
the "Curse of Lisp" didn't happen (fully) to C because C's macro system isn't good. It's very weak and stupid and babyslop-awful levels of "this is only good for the simplest of transformations".
Compare this to, e.g., Rust's macro system,
Lisp is the same way, but turnt up to 11: you can't make
Macros are the way to paste over a lack of language features, but even for C you can't paste over all of C's defiencies with its
Honestly, not that wrong. Gustedt's and Seacord's books both do a lot to help with that, but like. It's still hard to talk about an interface and what it needs and what necessitates certain features.
As for the defer stuff: not anything I haven't heard before. More of the same "oh, what about my beautiful one-to-one, sequential, translation to assembly", which is not a good way to design either a compiler or a codebase.
