Topic: system builds

topics > computer science > programming > Group: software maintenance

code generation
program module

configuration management
data caching
dependency analysis
deployable module or assembly
incremental development
object code linkers and loaders
programming environment
scripting language
software change management
software maintenance by patching
software management
version control


Modification of one module may require re-compilation or modification of other modules. The new system will need retesting for internal consistency and external effectiveness. Re-integration of large systems is a slow process unless modified modules can be identified with time stamps and cross references. Detailed analysis may reduce build times further. Recompilations can be anticipated or distributed.

For large projects, a system build and regression test may take hours or longer. If so, daily builds help keep a project going. (cbb 5/80 4/98)

Subtopic: builds are repeatable, incremental, and consistent actions up

Quote: avoid manual procedures; use scripts for repeatable command sequences; under source control [»huntA_2000]
Quote: in Vesta, every system build occurs from scratch; all files and procedures are immutable and immortal; builds are repeatable, incremental, and consistent [»heydA_2006]
Quote: a build consists of actions applied to sources and derived files (deriveds) [»heydA_2006]
Quote: a build is consistent if every derived file is up-to-date relative to its source files
Quote: a build is a series of tool invocations in a controlled naming environment; each invocation has a slightly different environment or binding; defines dot as the implicit, current environment [»heydA_2006]

Subtopic: incremental build up

Quote: MAKE in UNIX issues commands to keep the parts of a program consist after changes are made [»feldSI4_1979]
Quote: a useful utility is one that determines compilation dependencies and recompiles dependent modules [»laueHC_1979]
Quote: directory and software management by running commands according to file dates; e.g., print all files changed since last listing [»feldSI4_1979]
Quote: to 'make' a node N, 'make' all nodes on which it depends; if any were modified after N, update N [»feldSI4_1979]
Quote: Vesta is faster than Make on both scratch and incremental builds; much faster if several files change; low overhead [»heydA_2006]
Quote: Vesta is faster than make because a single test determines that libraries are up-to-date; avoids unnecessary file stats [»heydA6_2000]
Quote: Vesta should cache all calls, not just runtool calls

Subtopic: daily build up

Quote: at Microsoft, a program under development is built and smoke tested every day; reduces integration problems, helps to locate problems, and boosts morale [»mccoS7_1996]
Quote: fixing a broken build has top priority; the build happens everyday and a smoke test checks it; enforces discipline and keeps projects on track [»mccoS7_1996]
Quote: synchronize and stabilize -- daily builds, two or more milestones, frequent alpha and beta releases [»cusuMA10_1999]

Subtopic: dependency analysis up

Quote: a compilation dependency occurs when one module is used to compile another; if a module is recompiled, then so are all dependent modules [»laueHC_1979]
Quote: in source control, users should define dependencies between elements for warnings prior to changes and notification after changes [»leblDB5_1984]
Quote: maintain intermodule dependencies by augmenting a graph with factoring and filtering nodes; reduces recompilation size to one seventh of a header file-based scheme [»chamC4_1995]
Quote: a filtering node is a program to check an intermodule dependency; e.g., compare old and new callee set and invalidate on change; compilers may need to do this work anyway [»chamC4_1995]
Quote: for an application, identify the programs needed from the 'uses' hierarchy and include everything else that is used [»parnDL5_1978]
Quote: a DSEE system model describes the components, their build dependencies, and the build rules needed to recreate the system [»leblDB5_1984]
Quote: Vesta is a functional programming language for building systems [»heydA6_2000]
Quote: Vesta builds execute in an encapsulated environment, including the file system; every file system referent is recorded as a dependency; all file accesses use temporary build directories [»heydA_2006]
Quote: Vesta caches the results of expensive function calls with precise, dynamic, fine-grained dependencies
Quote: index function cache by primary dependencies; i.e., body of function, values of scalar arguments [»heydA6_2000]
Quote: function cache's secondary key is the names and values that the function call depends on

Subtopic: build environment up

Quote: configuration management includes the build environment as well as the source code; only use what is in your toolbox [»willC4_2001]

Subtopic: configuration model, makefile up

Quote: DSEE separates the program's makefile (system model) from the versions used (configuration thread); a build is a binary pool with a bound configuration thread (BCT) [»lubkD6_1991]
Quote: SCRAM defines a project using XML; e.g., the BootStrap document includes the source code servers [»willC4_2001]
Quote: SCRAM's Requirements doc lists the ToolDocs and versions used by a project [»willC4_2001]
Quote: a Vesta package is a collection of related files and a system model for building the package [»heydA_2006]

Subtopic: branch builds up

Quote: during development, 5ESS international software is one codeline; after release, multiple streams for unique customers and applications [»hoshJ7_1998]

Subtopic: data description up

Quote: description files for external objects allow separate compilation and strong type checking [»hansDR11_1979]

Subtopic: developer builds up

Quote: SCRAM defines a shared, central release area and multiple, developer areas; each developer area is an incremental change to a release area [»willC4_2001]
Quote: source and derived files come from the central release area unless they exist in the developer area [»willC4_2001]

Subtopic: rapid turnaround up

Quote: with development on Multics, system changes within ten minutes and sometimes seconds [»corbFJ_1979]

Subtopic: faster builds up

Quote: DSEE uses parallel builds to reduce system build time; up to 10x faster than serial builds [»leblDB11_1987]
Quote: build systems optimistically by precompiling out-of-date targets; median speedup was 1.7, mean was 8.3 [»bubeR2_1992]

Subtopic: distributed build up

Quote: in heterogeneous builds need to track intermediate results on foreign computers; otherwise communication costs are too high [»lubkD6_1991]

Subtopic: separate compilation up

Quote: separate compilation not necessary; can perform global analysis, C code generation, and recompilation of modified files [»zendO10_1997]
Quote: description files for external objects allow separate compilation and strong type checking [»hansDR11_1979]
Quote: Scade requires a pre operator for feedback values; enables separate compilation; i.e., execution order within a node is independent of the node's caller
Quote: a C++ template is like a macro that obeys the scope, naming, and type rules of C++; the generated code is like separately compiled code [»stroB_1991]

Related Topics up

Group: code generation   (30 topics, 593 quotes)
Group: program module   (10 topics, 336 quotes)

Topic: automation (15 items)
Topic: configuration management (25 items)
Topic: data caching (35 items)
Topic: dependency analysis (34 items)
Topic: deployable module or assembly (12 items)
Topic: incremental development (74 items)
Topic: object code linkers and loaders (31 items)
Topic: programming environment (46 items)
Topic: scripting language (27 items)
Topic: software change management (48 items)
Topic: software maintenance by patching (27 items)
Topic: software management (28 items)
Topic: timestamps (19 items)
Topic: version control
(34 items)

Updated barberCB 2/06
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.