Announcement

Collapse
No announcement yet.

C++11 & The Long-Term Viability Of GCC Is Questioned

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

  • #61
    Android bootloader can be "unlocked" by pressing certain buttons while booting. Just saying ..

    Comment


    • #62
      Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.

      Comment


      • #63
        Originally posted by linux5850 View Post
        Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.
        It can rebuild all of FreeBSD, and most of Debian. The only packages that it fails on are those that rely on non-standard GCC extensions: the kernel is one of those packages. But every release gets better, more extensions get support. (There's actually a patch set out right now to both llvm/clang and the kernel that allow clang to build the kernel, so it IS possible) It won't be too long, probably 2 releases from now, when you CAN build all of debian or gentoo, kernel included, with clang without any patches necessary.
        All opinions are my own not those of my employer if you know who they are.

        Comment


        • #64
          Originally posted by linux5850 View Post
          Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.
          I built my whole system from sources using just Clang ... and with Gentoo (when I used it; not-so-long-ago) I compiled *most* of it (can't remember exact numbers, but grub and linux kernel weren't on the list *for sure*)

          Regards.

          Comment


          • #65
            Originally posted by linux5850 View Post
            Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.
            Even if it couldn't, it can build 21000 of 24000 3rd party applications in FreeBSD ports.



            Those remaining 3000 may have inter-dependencies, so it may not have failed on every single one of those remaining 3000.

            Comment


            • #66
              Nonsense

              Nonsense I say.

              - C++: static analyzers
              - code re-formatters,
              - syntax highlighters

              These functions should be done by a separate standalone tool for each task, that is the UNIX/POSIX way of doing things, not the compiler or the compiler backend. A C compiler should produce assembler output, nothing else.

              Ofcause full C++11 support is a nice thing to have. But there is no hurry, the C++11 standard is still new.

              Comment


              • #67
                Originally posted by skies View Post
                Nonsense I say.

                - C++: static analyzers
                - code re-formatters,
                - syntax highlighters

                These functions should be done by a separate standalone tool for each task, that is the UNIX/POSIX way of doing things, not the compiler or the compiler backend. A C compiler should produce assembler output, nothing else.

                Ofcause full C++11 support is a nice thing to have. But there is no hurry, the C++11 standard is still new.
                To follow the UNIX/POSIX way of doing things GCC should consist of at least three modules: front-end, optimizer, back-end. Where you have standalone language specific front-ends and hardware specific back-ends processing/producing an IR. To allow more code sharing and aggressive optimization you may also want to split Linker, Link Time Optimizer, Code Generators.

                This is the idea behind LLVM, a compiling library implementing dozens separate components. It simplifies the job of writing compilers. For example, it took only about two weeks to implement a OpenGL/GLSL JIT compiler using LLVM.

                Try to do the same with GCC. Static analyzers, re-formatters, highlighters are just the icing on the cake...

                Comment


                • #68
                  Originally posted by log0 View Post
                  This is the idea behind LLVM, a compiling library implementing dozens separate components. It simplifies the job of writing compilers. For example, it took only about two weeks to implement a OpenGL/GLSL JIT compiler using LLVM.
                  You mean the one that still isn't fully working after like, a year? RADEON_LLVM?

                  Comment


                  • #69
                    Originally posted by XorEaxEax View Post
                    I mentioned GPL and Apple's licence incompability since they are both copy-left. As for FreeBSD's base system, they are (for ideological reasons) purging their base system of GPL licenced code. https://wiki.freebsd.org/GPLinBase
                    As opposed to Google's "no GPL in userspace" policy which isn't ideological at all.

                    Comment


                    • #70
                      Originally posted by carewolf View Post
                      No, no and no.

                      Maybe I am biased being an actualWebKit developer, but there is no such process happening at any level, and you obviously have misunderstood what WebKit2 is since it is simply a new API for WebCore, not a new project or replacement for any code except interface code.

                      KHTML -> WebCore
                      WebKit(1) old API for WebCore, used by Chromium, Qt and iOS
                      WebKit2 new API for WebCore, used by Safari and Qt.
                      I thought that we were talking about WebKit, not WebCore.

                      Originally posted by linux5850 View Post
                      Can Clang/LLVM rebuild a whole distro like Gentoo from source? If not it's still a toy.
                      We are gradually working toward fixing that. It is not a high priority project though.

                      Originally posted by vertexSymphony View Post
                      I built my whole system from sources using just Clang ... and with Gentoo (when I used it; not-so-long-ago) I compiled *most* of it (can't remember exact numbers, but grub and linux kernel weren't on the list *for sure*)

                      Regards.
                      Linux, GRUB and glibc are the main things that won't build with Clang. Recent versions of binutils will not build with Clang either. That is due to a bug in Clang.

                      Originally posted by skies View Post
                      Nonsense I say.

                      - C++: static analyzers
                      - code re-formatters,
                      - syntax highlighters

                      These functions should be done by a separate standalone tool for each task, that is the UNIX/POSIX way of doing things, not the compiler or the compiler backend. A C compiler should produce assembler output, nothing else.

                      Ofcause full C++11 support is a nice thing to have. But there is no hurry, the C++11 standard is still new.
                      Go write separate utilities for each and get back to us.

                      Comment

                      Working...
                      X