summaryrefslogtreecommitdiff
path: root/README.pump
diff options
context:
space:
mode:
authormanosr <manosr@01de4be4-8c4a-0410-9132-4925637da917>2008-05-23 01:11:34 +0000
committermanosr <manosr@01de4be4-8c4a-0410-9132-4925637da917>2008-05-23 01:11:34 +0000
commit20033d718d1b14568499293c6c32048fcea4229d (patch)
tree3ae830cebbf9b6c2b68e04494546330e3ccd223b /README.pump
parent3d80fef9e14a57ea04654a0170ae048b5138e90c (diff)
downloaddistcc-20033d718d1b14568499293c6c32048fcea4229d.tar.gz
Minor documentation changes.
git-svn-id: http://distcc.googlecode.com/svn/trunk@369 01de4be4-8c4a-0410-9132-4925637da917
Diffstat (limited to 'README.pump')
-rw-r--r--README.pump37
1 files changed, 19 insertions, 18 deletions
diff --git a/README.pump b/README.pump
index c302ec7..13dab03 100644
--- a/README.pump
+++ b/README.pump
@@ -3,18 +3,18 @@ See README for basic information on distcc.
Distcc's "pump" mode improves on plain distcc by distributing not only
compilation but also preprocessing to distcc servers.
-The pump mode uses an include server process that exists during
-the build. The include server parses and analyzes source and
-header files. It runs on the workstation that initiates the build.
-The include server analyzes each header file only a few times,
-sometimes just once. In contrast, ordinary distcc invokes the
-preprocessor hundreds of times on average for each header file of a
-large build.
-
-With the pump mode, a static analysis algorithm inspects includes
-and computes their possible values according to an overapproximation
-semantics. The resulting dependency graph among header files is stored
-in the include server, which then acts as a cache for include
+The pump mode uses an "include server" process that runs during
+the build. The include server parses and analyzes source (including
+header) files. It runs on the workstation that initiates the build.
+The include server analyzes each header file only a few times during a build,
+sometimes just once. In contrast, during ordinary distcc operation,
+the preprocessor examines each header file multiple times, even hundreds of
+times for a large build.
+
+In pump mode, a static analysis algorithm inspects each #include directive
+and computes a superset of the possible values of its argument.
+The resulting dependency graph among header files persists during
+the lifetime of the include server, which then acts as a cache for include
analysis.
The include server compresses source files into a temporary directory
@@ -30,21 +30,22 @@ meaning on the workstation. Before compressing foo.h, the include
server therefore inserts a #line directive in foo.h, to inform the
preprocessor that the real location is /absolute/path.
-The distcc-pump client asks the include server for the list of
+The distcc client asks the include server for the list of
compressed files that constitute the transitive closure of the source
-file to be compiled. It then spools these files to a distcc-pump
-server. The distcc-pump server unpacks these files in the
+file to be compiled. It then spools these files to a distcc
+server. The distcc server unpacks these files in the
/server_temporary_path directory before preprocessing and compiling.
The server also rewrites include options, such as -I's, to reflect the
new locations of the files on the server. The .d and the .o files are
-both returned to the distcc-pump client.
+both rewritten as necessary to refer to client-side filenames and
+returned to the distcc-pump client.
-The pump mode is able to distribute compilations up to 10X faster than
+Pump mode is able to distribute compilations up to 10X faster than
plain distcc. But because building also involves linking and perhaps
generation of source files, the overall speed-up of the build time is
variable.
-The distcc-pump was developed to be used with large clusters of distcc
+The pump mode was developed to be used with large clusters of distcc
servers, providing hundreds of CPUs. With versions of gcc >= 4.1.1,
the distcc-pump will probably not show major performance gains using
clusters of less than ten CPUs. The preprocessor running on the