Hi! On Fri, Jun 02, 2023 at 08:37:30AM +0200, Arsen Arsenović via Gcc-help wrote: > Alejandro Colomar via Gcc-help <gcc-help@xxxxxxxxxxx> writes: > > C89 is basically C99 with added broken stuff such as implicit int, > > implicit functions, and no stdint. Not "added" of course. This kind of misrepresentation hurts your arguments. > I don't think killing C89 is very useful. As you said, it's not too > different to C99; however, we shouldn't be promoting its deficiencies > into newer language standards (but you've seen the thread on that :-) ). We would first have to kill off support for K&R C. Which isn't going to happen any time soon either: it is there, maintenance cost is minimal, removing it would not buy us much at all (because we need to keep most of what you hope we might remove for supporting other languages). > > About doing something in the distros if upstream GCC doesn't do it: > > I believe breaking a package in Fedora, Debian, and Gentoo will be > > enough that most upstream projects will fix their bugs. I don't > > think packagers will have to do it themselves. I believe that > > patching distro's GCC to enable -Werror=... would already be a great > > step. > > I'm not sure it's a good idea to change behavior away from upstream > decisions in our downstream. Keep in mind, though, that we (Gentoo) > have CI infrastructure and developers already testing with stricter > flags. It already is painful that some distros ship severely patched GCC and their users complain to us. Changing defaults is WRONG: if people do not just ignore you after that lunacy everyone else can not rely on the default anymore, and has to specify the choice every time. > > Another point is that since this year, companies are already > > stopping using C because of being unsafe. That is just a fad. All computer languages are "unsafe", some are easier to make mistakes in than others, but experience and habit and yes, *good taste* of the programmer matter hundreds of times more. >> I don't believe C being > > unsafe, but C89 definitely *is*. I don't think keeping it around is > > doing anyone a favor. In my job, they're requiring Rust for newly > > written programs. I hope we help prevent continuing down that road. > > I'm afraid this won't convince folks. People treat C++ the same as > pre-standard C, It has as many sharp edges, yes! > I also don't see a significant difference between C89 (and some -Werror > flags) and C99 in this regard. -Werror is always *WRONG*. The compiler should not refuse to compile perfectly valid code. It only makes people annoyed and use "-w" more. People not reading the compiler warnings is a people problem. Solve that the usual way you do that in your organisation: gentle nudging, public shaming, whatever you do -- but do not punish innocent bystanders. (It is fine to change GCC to do an error instead of a warning when it has detected an actual problem, but not when it isn't sure, and never using -Werror.) > I'd like to note that I'm not advocating for the prolonged use of C89, > just for keeping compatibility where the cost is low (and I strongly > oppose forward-porting the messy parts of C89 into C99+ as GCC has done > so far). Yup. The cost (to users, including ourselves) from removing C90 far outweighs its benefits (mostly to GCC developers, and those benefits are extremely minor anyway). It is *normal* to deal with code twenty or thirty or more years old. Useful code has a long lifetime. </rant> :-) Segher