Announcement

Collapse
No announcement yet.

Zapcc Caching C++ Compiler Open-Sourced

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

  • Zapcc Caching C++ Compiler Open-Sourced

    Phoronix: Zapcc Caching C++ Compiler Open-Sourced

    Remember the Zapcc compiler that focused on lightning fast compiler times? It's now been open-sourced...

    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
    yes! finally , the faster compile times this will bring are very nice

    Comment


    • #3
      Amazing news. I've tried Zapcc in a few occasions and as they claim, it's *really* fast, say roughly 3x faster for my test codebase. My only complaint was that it proprietary.

      Comment


      • #4
        Are Zapcc's features likely to be upstreamed into clang?

        Comment


        • #5
          As someone who compiles on daily basis - I don't care about compiling times. I care about stability of executable and speed of given executable. So.... Pf...

          Comment


          • #6
            Originally posted by dimko View Post
            As someone who compiles on daily basis - I don't care about compiling times. I care about stability of executable and speed of given executable. So.... Pf...
            Agreed. I don't really see the problem here. Once the initial compilation on complete, only units dependent on subsequent changes get recompiled anyway.

            Unless people are perhaps working with broken build systems, are not forward declaring or using sloppy systems requiring .NET (ubt and Unreal Engine 4).

            That said, I have seen some terrible choices made by developers such as for test / debug iterations, simply committing to Git and allowing the build server to build the binary for i.e Android rather than actually getting the damn Android NDK working on their own machine. So frigging lazy.

            Good to see the project open-sourced in any case. It means people will actually use it

            Comment


            • #7
              How does it compare to ccache + gcc or ccache + clang? I'd sooner stick to a compiler I know and trust.

              Comment


              • #8
                AFAIK ccache only helps not recompiling files that don't need to be, which is what most build systems will avoid anyway. Zapcc does much more than that, even more than if you were using precompiled headers.
                Get real: When you work on a C++ project, especially using a legacy codebase, you won't only be working with .cpp files that requires only one translation unit to be recompiled. On those projects, change a single header used by half the project and you're in for one minute of compilation on a good quad core system, assuming that it's a small project.
                Plus, zapcc makes fresh compiling projects much faster. When e.g. you're using llvm-svn/mesa-git compile times matter.

                Last time I tried though I found out that LTO was not working sadly. That was for a 32-bit program, though, maybe it has been fixed anyway.

                Comment


                • #9
                  Originally posted by AsuMagic View Post
                  Get real: When you work on a C++ project, especially using a legacy codebase, you won't only be working with .cpp files that requires only one translation unit to be recompiled. On those projects, change a single header used by half the project and you're in for one minute of compilation on a good quad core system, assuming that it's a small project.
                  https://xkcd.com/303/

                  Comment


                  • #10
                    Originally posted by AsuMagic View Post
                    AFAIK ccache only helps not recompiling files that don't need to be, which is what most build systems will avoid anyway. Zapcc does much more than that, even more than if you were using precompiled headers.
                    Get real: When you work on a C++ project, especially using a legacy codebase, you won't only be working with .cpp files that requires only one translation unit to be recompiled. On those projects, change a single header used by half the project and you're in for one minute of compilation on a good quad core system, assuming that it's a small project.
                    Plus, zapcc makes fresh compiling projects much faster. When e.g. you're using llvm-svn/mesa-git compile times matter.

                    Last time I tried though I found out that LTO was not working sadly. That was for a 32-bit program, though, maybe it has been fixed anyway.
                    ccache works on the output of the preprocessor. If you change a globally included header, only the files which are affected by the change are recompiled. So ccache reduces compilation time even when e.g. make/ninja/... trigger a recompilation of the whole project.

                    Comment

                    Working...
                    X