@lizzy@polygon dbus at least somewhat makes sense even if quite badly designed and sadly used as a generic IPC, including for cases where you'd really need greater security than a bus can offer.
PAM is one I'm much more glad is gone on my machines.
But what really makes me wish for a time machine: C not having proper lists and instead having a reserved byte (NULL) to serve as terminator.
@lizzy@polygon Well even without generics, you could always have added a struct for lists in C, just that very few people do this and never in a standard way, and even once a standard would get adopted, there's a massive pile of C APIs that will take so many decades to change it might as well be forever.
Like consider that we're still trying to migrate to 64-bit time_t, a much more straightforward change.
@lanodan@polygon tbh this will be fixed in C29, it allows us to have proper generics (using macros and structural typing) and hence just:
#define vec(T) struct _Record { size_t len; T *data; }
or, in places where growth is necessary, using an additional capacity field and then doing the usual doubling of capacity to grow it for amortized O(1) insertion
@lanodan@lizzy just having a prefixed length for arrays baked into the language would've been so nice, aka fat pointers...
compilers could easily insert bounds checks, syscalls wouldn't depend on null terminated strings (recursive mkdir without modifying a string to insert random \0 anyone), etc