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.

        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.

            https://wiki.freebsd.org/PortsAndClang

            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