Half a month ago, Fedora put forward a new proposal, which hopes to “port Fedora to the modern C language standard”, and now the status of the proposal has been modified to “accepted”, which means that the proposal has been Approved by Fedora Engineering and Steering Committee (FESCo, Fedora Engineering and Steering Committee).

The proposal reads:

Back in 1999, a new revision of the C language standard removed some backward compatibility features, yet GCC still accepts these obsolete constructs by default. Support for these constructs confuses programmers and may affect GCC’s ability to implement features in future C language standards. It is expected that a future version of GCC (possibly GCC 14) will not support these legacy language constructs by default. The goal of this change is to prepare Fedora for the GCC transition.

The target deadline set by Fedora is before the release of Fedora 40 and GCC 14, both of which will be released in 2024 according to the development plan. The developer also mentioned that LLVM is also considering a similar move in 2023, so it will also benefit from these porting efforts. However, LLVM 16 may arrive on Fedora before this work is complete, and the LLVM team is currently working on other methods.

In the proposal, Fedora also mentioned some changes that this transition may bring, including removal of implicit function declaration, removal of implicit int, removal of old-style function declaration, new bool/true/false keywords , changing the meaning of ( ) in function declarations, and rejecting implicit conversions between integers and pointers as errors, etc.

This change will mainly affect open source software that is already rarely maintained. But for major open source projects already focused on targeting the modern C standard, this change shouldn’t have much impact. Specific details of this proposal can be found on the Fedora Wiki.

#Approved #Fedora #solve #problems #left #history #language #News Fast Delivery

Leave a Comment

Your email address will not be published. Required fields are marked *