| ▲ | slopinthebag 4 hours ago |
| Seems pretty impressive they rewrote the coreutils in a new language, with so little Unix experience, and managed to do such a good job with very little bugs or vulns. I would have expected an order of magnitude more at least. Shows how good Rust is, that even inexperienced Unix devs can write stuff like this and make almost no mistakes. |
|
| ▲ | nine_k 4 hours ago | parent | next [-] |
| 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 4 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. |
|
|
|
| ▲ | gblargg 2 hours ago | parent | prev | next [-] |
| Rewriting perfectly good code was a colossal mistake. |
| |
| ▲ | Cthulhu_ 5 minutes ago | parent [-] | | Not necessarily, but was the reasoning sound and have the tradeoffs been made? The website (https://uutils.github.io/) shows some reasonable "why"s (although I disagree with making "Rust is more appealing" a compelling reason, but that's just me (disclaimer: I don't like C and don't know Rust so take this comment as you will)), but I think what's missing is how they will ensure both compatibility and security / edge case handling, which requires deep knowledge and experience in the original code and "tribal knowledge" of deep *nix internals. |
|
|
| ▲ | twhitmore 3 hours ago | parent | prev [-] |
| [flagged] |