Skip to content

Commit

Permalink
Update URLs in README.
Browse files Browse the repository at this point in the history
  • Loading branch information
yrnkrn committed Dec 20, 2019
1 parent 09cb4f0 commit 51132ba
Showing 1 changed file with 17 additions and 14 deletions.
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,43 +67,46 @@ To kill the zapccs server to free memory or replace with newly-built zapcc
### What is the typical acceleration of Zapcc?

Full builds are 2x-5x faster, see
* [WebKit](https://www.zapcc.com/demo-webkit)
* [ETL](https://baptiste-wicht.com/posts/2016/12/zapcc-cpp-compilation-speed-against-gcc-54-and-clang-39.html)
* [MKVToolNix](https://www.bunkus.org/blog/2018/06/speeding-up-mkvtoolnix-compilation-speed-with-zapcc)
* [A Performance-Based Comparison of C/C++ Compilers](https://colfaxresearch.com/compiler-comparison)

Typically re-compilation of one modified source file is 10x-50x faster, see [Boost.Math](https://www.zapcc.com/demo-incremental-build/).
Typically re-compilation of one modified source file is 10x-50x faster.

Acceleration depends on the complexity of the header files vs. the complexity of the source files. It can range from no acceleration at all for plain C projects where caching is disabled to x2-x5 for build-all of heavily templated projects, up to cases of x50 speedups in developer-mode incremental change of one source file.
As a reference number, Zapcc builds the LLVM `build-all` target about x2 faster compared to building LLVM using clang.

As a reference number, Zapcc builds LLVM build-all about x2 faster compared to building LLVM using clang.
Here are [ASCII movies comparing clang and zapcc](https://asciinema.org/~Zapcc) fully building [WebKit](https://webkit.org) and incremental building [Boost](https://www.boost.org).

### Is Zapcc Clang compatible?

Yes, zapcc is based on heavily-modified clang code.
Yes, zapcc is based on heavily-modified [clang](https://clang.llvm.org) code.

### Is Zapcc GCC compatible?

Yes, to the extent clang is gcc compatible.
Yes, to the extent clang is [gcc](https://gcc.gnu.org) compatible.

### My project does not compile with Zapcc!
### How zapcc works?

Please make sure first your project compiles successfully with Clang. If your project does not compile with Clang, Zapcc, being based on Clang, will not be able to compile any more than clang.
See [CATC 2017 presentation](/docs/zapcc/catc17-zapcc-an-accelerating-c-compiler.pdf) and [discussion at cfe-dev](http://lists.llvm.org/pipermail/cfe-dev/2015-May/043155.html).

### Are the sanitizers supported?

No.

### How zapcc is different from precompiled headers?
### Is zapcc different from precompiled headers?

Precompiled headers requires building your project to the exact precompiled headers rules. Most projects do not bother with using precompiled headers. Even then, precompiled headers do not cache as much as zapcc. Zapcc works within your existing build.
See [discussion at cfe-dev](http://lists.llvm.org/pipermail/cfe-dev/2015-May/043155.html).

Precompiled headers are currently ignored by Zapcc.

### How zapcc is different from C++ modules?

Modules are not yet standard, rarely used and do not support well legacy code and macros found in most existing C++ code, such as Boost. Modules require significant code refactoring in bottom-up approach everything or are slow. Even then, modules do not cache template instantiations and generated code that are specific to your code like zapcc does.
As of C++17, modules are not standard, rarely used and do not support well legacy code and macros found in most existing C++ code, such as Boost. Modules require significant code refactoring in bottom-up approach everything or are slow. Even then, modules do not cache template instantiations and generated code that are specific to your code like zapcc does.

### My project does not compile with Zapcc!

Please make sure first your project compiles successfully with Clang. If your project does not compile with Clang, Zapcc, being based on Clang, will not be able to compile any more than clang.

### Are the sanitizers supported?

No.

### How much memory does Zapcc use?

Expand Down

0 comments on commit 51132ba

Please sign in to comment.