From 07f08d25efe448e4fa8f3134bf9fe69e50907ed4 Mon Sep 17 00:00:00 2001
From: Ted Kremenek
Language independence: PTH files are (roughly) language
-independent. They work with any language that Clang's lexer can handle,
-including C, Objective-C, and (in the early stages) C++. This means development
-on language features at the parsing level or above (which is basically almost
-all interesting pieces) does not require PTH to be modified. Language independence: PTH files work with any language that
+Clang's lexer can handle, including C, Objective-C, and (in the early stages)
+C++. This means development on language features at the parsing level or above
+(which is basically almost all interesting pieces) does not require PTH to be
+modified.
-
Fast generation: PTH files can be generated in a small fraction +of the time needed to generate GCC's PCH files. Since PTH/PCH generation is a +serial operation that typically blocks progress during a build, faster +generation time leads to improved processor utilization with parallel builds on +multicore machines.
Despite these strengths, PTH's simple design suffers some algorithmic @@ -188,11 +195,11 @@ strengths via the use of copy-on-write pages, the approach itself can fundamentally dominate at an algorithmic level, especially when one considers header files of arbitrary size.
-Consequently, as alluded earlier, there are plans to potentially implement an -alternative PCH implementation for Clang based on the lazy deserialization of -ASTs. This approach would theoretically have the same constant-time algorithmic -advantages just mentioned but would also retain some of the strengths of PTH -such as reduced memory pressure (ideal for multi-core builds).
+There are plans to potentially implement an complementary PCH implementation +for Clang based on the lazy deserialization of ASTs. This approach would +theoretically have the same constant-time algorithmic advantages just mentioned +but would also retain some of the strengths of PTH such as reduced memory +pressure (ideal for multi-core builds).