Re: F40 proposal: Porting Fedora to Modern C (System-Wide Change proposal)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux