Consider a project involving a number of developers, each requiring the capability to build a test version of the software. The project consists of a mix of "common" program units and other program units trusted to work correctly and used by individual programmers. A suitable organization might be as follows:
Trusted "common" program units are compiled in a number of directories:
c:/usr/trusted1, c:/usr/trusted2, ... , c:/usr/trustedn.
Each user specifies a directory in which program units are compiled. Each directory contains a program unit catalog list file with the contents as follows:
myownwork.pc
/home/johndoe/trusted1/trusted.pc
/home/johndoe/trusted2/trusted.pc
:
:
/home/johndoe/trustedn/trusted.pc
where myownwork.pc is a developer's personal work catalog, and the trusted common program units are referenced by the trusted.pc program unit catalogs in their respective directories.
Since each developer has a private work catalog, concurrent compilations cannot interfere with each other. Further, shared concurrent compiler access to the trusted "common" program units is easier.