On Tue, Oct 25, 2022 at 10:05:52AM -0400, Ben Cotton wrote: > https://fedoraproject.org/wiki/Changes/PortingToModernC. Line-by-line review: > == Summary == > Back in 1999, a new revision of the C standard removed several > backwards compatibility features. However, GCC still accepts these > obsolete constructs by default. Support for these constructs is > confusing to programmers and potentially affect GCC's ability to > implement features from future C standards. Miro already hinted at this, but to be explicit: this Summary does not actually give the information that should be in a summary. It provides some history that maybe belongs in the Detailed Description part. This part should say something like """gcc compiler will start rejecting some long-deprecated constructs in C and implement some other backwards-incompatible changes. Packages and build systems for user programs must be adjusted to be compatible, or opt-out of the change by specifying …. The following constructs are now disallowed by default: implicit function declarations, implicit int type declarations, old-style K&R function parameter declarations, and in addition functions declared with no parameters will now accept no instead of any parameters, and new 'bool', 'true', 'false' keywords have been introduced.""" (I assume this is about gcc, not clang. But please be explicit.) > == How To Test == As discussed by others, this needs to explain how to opt-in for early testing, and also how to opt-out in packages, how to opt-out as a user (if the default touches users), etc. > == User Experience == > User experience does not change. "The new default for C standard is -c99. Users who want to use an older standard need to specify something like -c89." (???) > == Dependencies == > To avoid regressing the porting effort, GCC as the system compiler > needs to reject obsolete constructs by default. This is expected for > GCC 14, to be released as part of Fedora 40 in Spring 2024. > > == Contingency Plan == > * Contingency mechanism: Upstream GCC will probably accept obsolete > constructs longer in case distributions like Fedora cannot port to > modern C in time. Hmm, this sounds ominous, like if GCC might stop accepting old C syntax altogether. Isn't this just a question of specifying the right standard in compilation options? > == Documentation == > This section will be updated once more documentation of the porting > effort will become available. > > == Release Notes == > Probably not needed because no user visible impact is intended. It's not clear from the description: what about users who compile programs? Zbyszek _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue