Announcement

Collapse
No announcement yet.

GCC 6.1 Compiler Officially Released With OpenMP 4.5, C++14 Default & Much More

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

  • GCC 6.1 Compiler Officially Released With OpenMP 4.5, C++14 Default & Much More

    Phoronix: GCC 6.1 Compiler Officially Released With OpenMP 4.5, C++14 Default & Much More

    Jakub Jelinek of Red Hat today announced the official release of the big GCC 6.1 compiler update!..

    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
    It's exciting to think about 16 years of C++ development finally hitting mainstream developer use.

    Comment


    • #3
      I wonder what's keeping clang developper to make c++14 the default standard too.

      Comment


      • #4
        Can you compare this to llvm/clang from git?

        Comment


        • #5
          Quite important part of the release notes:

          Value range propagation now assumes that the this pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop).


          Yeah, let's release something that breaks Qt5, great idea. Have fun with KDE, VLC, Mumnlr and various others breaking. And Chromium. I'm sure nobody will notice.
          Last edited by Fuchs; 27 April 2016, 01:40 PM.

          Comment


          • #6
            Originally posted by Fuchs View Post
            Quite important part of the release notes:

            Value range propagation now assumes that the this pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop). As a temporary work-around -fno-delete-null-pointer-checks can be used. Wrong code can be identified by using -fsanitize=undefined.

            Yeah, let's release something that breaks Qt5, great idea. Have fun with KDE, VLC, Mumnlr and various others breaking. And Chromium. I'm sure nobody will notice.
            They are non-conforming. It's their fault to rely on undefined behavior. But, anyway, it's not like it won't be possible to build them with the new GCC version, as your partial quote implies: the old behavior is just a flag away. And there are ways to detect such non-standard code.

            Comment


            • #7
              Originally posted by Fuchs View Post
              Quite important part of the release notes:

              Value range propagation now assumes that the this pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop).


              Yeah, let's release something that breaks Qt5, great idea. Have fun with KDE, VLC, Mumnlr and various others breaking. And Chromium. I'm sure nobody will notice.
              The full point states that
              • Value range propagation now assumes that the this pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop). As a temporary work-around -fno-delete-null-pointer-checks can be used. Wrong code can be identified by using -fsanitize=undefined.
              So you can still compile these projects. And it is these projects developers fault that they rely on undefined behavior. And GCC even gives you the tools to quickly find the undefined spots to fix them. And not doing the null check when it's unnecessary gives you some performance. And… stop whining

              Comment


              • #8
                Originally posted by Fuchs View Post
                Yeah, let's release something that breaks Qt5, great idea. Have fun with KDE, VLC, Mumnlr and various others breaking. And Chromium. I'm sure nobody will notice.
                Why would you want worse perfomance and to support non-standard behavior? Seems irrational.

                Comment


                • #9
                  Originally posted by Fuchs View Post
                  Quite important part of the release notes:

                  Value range propagation now assumes that the this pointer of C++ member functions is non-null. This eliminates common null pointer checks but also breaks some non-conforming code-bases (such as Qt-5, Chromium, KDevelop).


                  Yeah, let's release something that breaks Qt5, great idea. Have fun with KDE, VLC, Mumnlr and various others breaking. And Chromium. I'm sure nobody will notice.
                  It doesn't really break them. At least in Qt the null-checks of this are just assertions, extra protection in debug builds.

                  Comment


                  • #10
                    I've just managed to compile it under Gentoo. I've filtered Gentoo specific patches for gcc-5.3.0 and tweaked them for 6.1.0 but there is something wrong with poisoning system directories. During compiling, it tries to used poisoned getenv from its own libraries and croaks. I tried leaving 67_all_gcc-poison-system-directories.patch, but thing still poisons itself.

                    After that, I've cut out all extra patches and now it works, but it would be nice if someone could take a look at this and make gcc-6.1.0.ebuild soon...

                    Comment

                    Working...
                    X