5 ms·
A lot of the GNU tools have had dependencies on GNU-specific versions of classic tools because, for decades, the non-GNU versions sucked. Lots of hard-coded arb
by Karellen 5y ago
A lot of the GNU tools have had dependencies on GNU-specific versions of classic tools because, for decades, the non-GNU versions sucked. Lots of hard-coded arbitrary limits (line lengths, file sizes, command line option counts), quadratic behaviours, crashes, weird corner cases.
Edit - also, lack of updates. POSIX added a new feature to a tool 5 years ago? Well, the built-in tool that came with your classic Unix probably still doesn't support it yet. The GNU tool does though.
If your build system effectively relies on GNU `make` because 75% of the other `make` implementations out there either barf on your makefile, or don't run the build steps correctly, despite it being valid according to the spec; and GNU `make` has a bunch of features that are really powerful and would allow you do some complex things more easily, or even do them at all; then why not just actually rely on GNU `make` and use the extensions?
Similarly, the bundled `cc`s with classic Unices (if they were provided at all) frequently had weird bugs or poor code generation that would go unfixed for years. If `gcc` was the only compiler you could rely on a) your users having access to, and b) to correctly compile your code; and it has a bunch of really cool features that make your code smaller or faster or cleaner, it's hard to resist that. Your code is still portable, because `gcc` is portable, and Free.
- _jal 5y ago> Similarly, the bundled `cc`s with classic Unices (if they were provided at all It has been a generation since it was common for people to pay for Unix, and then pay more for shitty developer tools. That gcc has gone from savior to legacy in that time is a huge testament to the value the open source world has created. But I think people forget the bad old days pretty quickly.
- eschaton 5y agoThe thing is, you didn’t pay more for shitty developer tools. You paid more for good tools. The system compiler existed solely to enable kernel rebuilds prior to the advent of loadable kernel modules on most vendor UNIX platforms.
- gumby 5y agoSad to say there are still tons of those ancient systems in production use.
- pjmlp 5y agoHP-UX, Aix, Solaris and mainframes POSIX environments are still around. Additionally, embedded also has plenty of POSIX like OSes that arent' Linux based.
- hackerbrother 5y agoAIX is doing a lot better than HP-UX and Solaris are. In relative terms.
- Ericson2314 5y ago> That gcc has gone from savior to legacy in that time is a huge testament to the value the open source world has created I hope GNU can turn itself around, but because having n+1 competing FOSS implementations is a huge boost. I just fear it is not a sustainable situation. libgccjit and the new rust backend is a good sign.
- GoblinSlayer 5y agoThat's exactly an illustration that a few competitors is unhealthy for the ecosystem, and llvm isn't going to evolve as fast as it did.
- Ericson2314 5y agoIf LLVM vanquishes GCC, you mean?