Remix.run Logo
nine_k 4 hours ago

Yes, it's the lack of Unix experience that's terrifying. So many of mistakes listed are rookie mistakes, like not propagating the most severe errors, or the `kill -1` thing. Why were people who apparently did not have much experience using coreutils assigned to rewrite coreutils?

aw1621107 4 hours ago | parent | next [-]

> Why were people who apparently did not have much experience using coreutils assigned to rewrite coreutils?

From what I understand, "assigned" probably isn't the best way to put it. uutils started off back in 2013 as a way to learn Rust [0] way before the present kerfuffle.

[0]: https://github.com/uutils/coreutils/tree/9653ed81a2fbf393f42...

nineteen999 3 hours ago | parent | next [-]

Yeah perhaps learning UNIX API's and Rust at the same time doesn't lead to a drop in replacement ready to be shipped in major distributions. Who whould have thunk it.

aw1621107 2 minutes ago | parent [-]

Strictly speaking it doesn't preclude eventually producing a production-ready drop-in replacement either, though evidently that needs a fresh set of eyes.

bpbp-mango 3 hours ago | parent | prev [-]

exactly this. I wrote one of them back then as a learning experience. some of the code I wrote is still intact, incredibly.

JuniperMesos 3 hours ago | parent | prev [-]

Why is it even possible to represent a negative PID, let alone treat the integer -1 as a PID meaning "all effective processes"? This seems like a mistake (if not a rookie mistake) in the Linux kernel API itself.

nine_k 2 hours ago | parent | next [-]

-1 is a special case, a way to represent a PID with all bits set in a platform-independent way. It's not very clean, and it comes from ancient times when writing some extra code and storing an extra few bytes was way more expensive.

dminik 2 hours ago | parent | prev | next [-]

It feels a bit like a "better is better" language hitting all of the quirks of a "worse is better" environment.

antonvs 2 hours ago | parent | prev [-]

Pretty much all the rough edges being discussed here are design mistakes in Linux or Unix, and/or a consequence of using an unsafe language with limited abstractions and a weak type system. But because of ubiquity, this is everyone’s problem now.