Map
Index
Random
Help
Topics
th

Topic: system builds

topics > computer science > programming > Group: software maintenance



Group:
code generation
Group:
program module

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

Summary

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.