Announcement

Collapse
No announcement yet.

Fedora Linux Cleared To Pursue Its Modern C Porting

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fedora Linux Cleared To Pursue Its Modern C Porting

    Phoronix: Fedora Linux Cleared To Pursue Its Modern C Porting

    Proposed last month was a Fedora 40 change proposal for "porting Fedora to modern C" that amounts to tightening its C language legacy support. This change focused on ensuring packaged C code is compliant with strict C99 compilers has now been signed off on by the Fedora Engineering and Steering Committee (FESCo)...

    https://www.phoronix.com/news/Fedora-Modern-C-Approved

  • #2
    "Strict C99". An almost a quarter of a century old standard, nobody had the guts to pull the trigger on until now. I hope people that think we don't need Rust, that C and C++ are perfectly fine are reading this.

    Comment


    • #3
      Modern C.
      23 year old standard.

      Couldn't they go straight away C11?

      Comment


      • #4
        Originally posted by bug77 View Post
        "Strict C99". An almost a quarter of a century old standard, nobody had the guts to pull the trigger on until now. I hope people that think we don't need Rust, that C and C++ are perfectly fine are reading this.
        What does C++ have to do with this article? Are you one of those people that think C and C++ are the same thing?

        Comment


        • #5
          During the voting it was raised that perhaps moving forward Fedora should be even more aggressive in targeting newer C standards, so we'll see if that happens moving forward.
          While I understand porting away from C is non-trivial, if they're going to be putting in this much effort to modernize (and don't think it's not a massive effort to do so) then they might as well take the extra step and modernize all the damned way to some specified memory safe language. I am not necessarily saying Rust. There's more out there that fill this category than just Rust so don't start jumping on the Rust high horse for advocacy. I don't particularly care which one it is.

          C is getting more than a little stale, whether it's a modern version or not. C is an important language to learn, but only to be able to read and maintain, not to write new projects if at all possible. The NSA published a very well argued essay about this subject, including addressing the effort involved along with the applicability of appropriateness, just recently. Yes I know... I just said a dirty word to the tin-foil-hat-brigade. Get over it. The NSA probably doesn't even know you exist nor does it likely even care. They are tasked with defending as well as exploiting defenses, and their essay on memory safety is well worth the careful read. Bring your reading comprehension glasses and lemon powered intellect.

          https://media.defense.gov/2022/Nov/1...ORY_SAFETY.PDF

          Comment


          • #6
            C99 is the ugliest C standard by far. I do not like it. The really old legacy features that predate even C89 can for sure go onto greener pastures, though.

            Comment


            • #7
              Originally posted by bug77 View Post
              "Strict C99". An almost a quarter of a century old standard, nobody had the guts to pull the trigger on until now. I hope people that think we don't need Rust, that C and C++ are perfectly fine are reading this.
              That just shows how stable C is. Look at that, the standard they're throwing out is ANSI C, which in many ways was transitional between pre-standard C and "modern" C. At that time, all those newfangled languages didn't exist yet (Python came in 91, JavaScript in 95, Java and OCaml in 96). We must continue writing C for all eternity, because otherwise there is not enough potential for disastrous bugs.

              Comment


              • #8
                Originally posted by stormcrow View Post
                While I understand porting away from C is non-trivial, if they're going to be putting in this much effort to modernize (and don't think it's not a massive effort to do so) then they might as well take the extra step and modernize all the damned way to some specified memory safe language.[/URL]
                I think you are missing the point.
                The point is to make sure all packages in Fedora will build with GCC14. So not porting just Fedoras own in-house application, but all code that are packaged.
                And it would be pretty unreasonable to suggest that the Fedora-developers should port the pretty large portion of C-code in libjava in OpenJDK to something other than C, but they can at least help make sure it builds and works with GCC14 (if it does not already) when it comes along, and drop packages where upstream has lost interest in keeping the code compiling post-GCC14.

                Comment


                • #9
                  Originally posted by piotrj3 View Post
                  Modern C.
                  23 year old standard.

                  Couldn't they go straight away C11?
                  Yup if they take on the task to check hundreds of upstream packages for compability to C99 they should do the same the kernel did and jump straight to C11 compability.

                  It will save time when the next compiler cleanup is around the corner.
                  Last edited by erniv2; 16 November 2022, 02:44 PM.

                  Comment


                  • #10
                    Originally posted by piotrj3 View Post
                    Modern C.
                    23 year old standard.

                    Couldn't they go straight away C11?
                    Remember standards are a thing...

                    POSIX standard (POSIX.1-2001, SUSv3) dictates C99. The SUSv4 and POSX.1-2017 haven't bumped the ANSI C version since.

                    Is there anything you really want to use in C11 or do you just prefer the bigger number?
                    Last edited by kpedersen; 16 November 2022, 02:55 PM.

                    Comment

                    Working...
                    X