𝔖 Bobbio Scriptorium
✦   LIBER   ✦

Achieving Incremental Compilation through Fine-grained Builds

✍ Scribed by TIM COOPER; MICHAEL WISE


Book ID
101239640
Publisher
John Wiley and Sons
Year
1997
Tongue
English
Weight
166 KB
Volume
27
Category
Article
ISSN
0038-0644

No coin nor oath required. For personal study only.

✦ Synopsis


Traditional programming environments represent program source code as a set of source files. These files have various 'dependencies' on each other, such that a file needs recompilation if it depends on a file which has changed. A 'build tool' is used to process these dependencies and bring the application 'up-to-date'. An example of a build tool is the UNIX 'make'. This paper examines what happens when the dependencies used by the build tool are expressed between functions (or objects) rather than between files. Qualitative differences arise from the difference in granularity. The result is an effective incremental compilation programming environment, based on the C++ language. It is called 'Barbados', and is fully implemented. The environment resembles an interpreter in that changes to source code appear to be immediately reflected in all object code, except that errors are reported early as in compiled systems. Incremental compilation is not a well-used technology, possibly because the 'fine-grain build' problem is not well understood. Nevertheless, incremental compilation systems do exist. The advantages of the system described here are that it works with relatively standard compilation technology, it works for the C++ language including the preprocessor, it is an elegant solution and it is more efficient than competing algorithms.