Announcement

Collapse
No announcement yet.

LLVM Clang 16 Defaulting To C++17 As The Default Standard

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

  • LLVM Clang 16 Defaulting To C++17 As The Default Standard

    Phoronix: LLVM Clang 16 Defaulting To C++17 As The Default Standard

    While LLVM 15.0 was just released this week with many new compiler features, a big change just merged for next spring's LLVM/Clang 16.0 release: C++17 with GNU extensions is now the default C++ and ObjectiveC++ version...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    This thread's gonna be interesting. Apple, GNU Extensions, and LLVM, oh my.

    Comment


    • #3
      This is the first time I heard of Objective-C++

      That is, I didn't know an aborted fetus could also have an abortion.

      Comment


      • #4
        What's all that fuss around C++ versions ?
        I know C++ is a mess, but do people really track bazzilion C++<pick_your_version> standards ?

        This seems to never end and in some cases ever preceding calendar year of its introduction.

        Which one of those is REALLY used and us not just either academic excerscise or betatest for some future language iteration ?
        Also, it doesn't look good for the language to have so many variants appearing so fast.
        Looks like terminal itch that C++ isn't able to reach, scratching itself to death...

        Comment


        • #5
          ... this change got reverted due to many testsuite errors: https://github.com/llvm/llvm-project...799749ba184910 (... that got fixed soon after by switching some targets back to gnu14.)
          Last edited by ms178; 08 September 2022, 04:35 AM.

          Comment


          • #6
            Originally posted by Brane215 View Post
            What's all that fuss around C++ versions ?
            I know C++ is a mess, but do people really track bazzilion C++<pick_your_version> standards ?

            This seems to never end and in some cases ever preceding calendar year of its introduction.

            Which one of those is REALLY used and us not just either academic excerscise or betatest for some future language iteration ?
            Also, it doesn't look good for the language to have so many variants appearing so fast.
            Looks like terminal itch that C++ isn't able to reach, scratching itself to death...
            The problem with c++ is it just have to have every cool feature they see in another language...

            Comment


            • #7
              Originally posted by Brane215 View Post
              What's all that fuss around C++ versions ?
              I know C++ is a mess, but do people really track bazzilion C++<pick_your_version> standards ?

              This seems to never end and in some cases ever preceding calendar year of its introduction.

              Which one of those is REALLY used and us not just either academic excerscise or betatest for some future language iteration ?
              Also, it doesn't look good for the language to have so many variants appearing so fast.
              Looks like terminal itch that C++ isn't able to reach, scratching itself to death...
              All C++ standards are in use. You have some programs, typically new projects, which use the latest standard for its new features and old projects which stay on a more or less older standard because they do not want to make the few necessary changes for a more recent standard (backward compatibility of C++ is not 100%). Now, maybe the oldest standard do not have that many users but there is likely a few older but still used programs no one wants to port which is still on them, similarly, minor versions, like C++14, may not have that many projects which adopted it and did not switched over to C++17 but there are still some. And when it comes to experimental future standards, yes, they are likely not much used in production, but you are going to have to support them in the future so…

              All this means C++ is a living language; it is definitely better than a dead thing that does not receive any update. All modern/major languages are regularly updated : Rust, Go, Python, Java… Even good old C!
              Last edited by ALRBP; 08 September 2022, 04:37 AM.

              Comment


              • #8
                Originally posted by ALRBP View Post
                All this means C++ is a living language; it is definitely better than a dead thing that does not receive any update. All modern/major languages are regularly updated : Rust, Go, Python, Java… Even good old C!
                Yes, but C++ is "living" in the same way that methastatic cancer is "living".
                Not much positive value there.

                Yes, Rust is developing, but in much more rational way. They don't do monthly updates of features that they managed to steal elsewhere...

                Comment


                • #9
                  Originally posted by Brane215 View Post
                  I know C++ is a mess, but do people really track bazzilion C++<pick_your_version> standards ?
                  When you end up with a language as widespread and critical within industry as C++ is, underlying almost every bit of software out there, then yes, you need a very disciplined standards system. Imagine if the Python 2 -> 3 fiasco happened every couple of years but also managed to take out every other language written in C++ basically.

                  But yes, I do feel a lot of interns and students make a bigger deal out of standard versions than they should. Often they only want to play / learn the newer parts of the latest standard in the hope that they don't need to learn any of the rest and still remain competitive within the industry. This tends to show quite quickly in many "fresh" candidates when I interview them.

                  Whereas I would recommend the opposite. Use the oldest standard you can. For example LLVM's dependence on 17 is going to make it more difficult to bootstrap on aging platforms. Just to put it into context, these aging platforms will still be in use long after we have retired.
                  Last edited by kpedersen; 08 September 2022, 05:02 AM.

                  Comment


                  • #10
                    Originally posted by Brane215 View Post
                    What's all that fuss around C++ versions ?
                    I know C++ is a mess, but do people really track bazzilion C++<pick_your_version> standards ?
                    Compiler writers track them. Programmers don't have to care that much. When something is added (for example support for threads or for filesystem operations) it needs to be added to the ISO standard document. Thus, a new version of that standard is required. Or do you have a better idea? How would you go about adding support for threads to the standard without introducing a new version of it?

                    Comment

                    Working...
                    X