Preface | p. vii |
Introducing Vesta | |
Introduction | p. 5 |
Some Scenarios | p. 6 |
The Configuration Management Challenge | p. 8 |
The Vesta Response | p. 9 |
Essential Background | p. 13 |
The Unix File System | p. 14 |
Naming Files and Directories | p. 14 |
Mount Points | p. 14 |
Links | p. 15 |
Properties of Files | p. 15 |
Unix Processes | p. 16 |
The Unix Shell | p. 17 |
The Unix Programming Environment | p. 18 |
Make | p. 20 |
The Architecture of Vesta | p. 21 |
System Components | p. 21 |
Source Management Components | p. 22 |
Build Components | p. 24 |
Storage Components | p. 27 |
Models and Modularity | p. 28 |
Vesta's Core Properties | p. 29 |
The User's View of Vesta | |
Managing Sources and Versions | p. 35 |
Names and Versions | p. 36 |
The Source Name Space | p. 36 |
Versioning | p. 37 |
Naming Files and Packages | p. 38 |
The Development Cycle | p. 40 |
The Outer Loop | p. 40 |
The Inner Loop | p. 41 |
Detailed Operation of the Repository Tools | p. 42 |
Version Control Alternatives | p. 44 |
Additional Repository Tools | p. 45 |
Mutable Files and Directories | p. 45 |
Replication | p. 46 |
Global Name Space | p. 46 |
A Replication Example | p. 48 |
The Replicator | p. 49 |
Cross-Repository Check-out | p. 50 |
Repository Metadata | p. 52 |
Mutable Attributes | p. 52 |
Access Control | p. 55 |
Metadata and Replication | p. 57 |
System Description Language | p. 59 |
Motivation | p. 59 |
Language Highlights | p. 60 |
The Environment Parameter | p. 62 |
Bindings | p. 63 |
Tool Encapsulation | p. 65 |
Closures | p. 67 |
Imports | p. 68 |
Building Systems in Vesta | p. 71 |
The Organization of System Models | p. 72 |
Hierarchies of System Models | p. 74 |
Bridges and the Standard Environment | p. 76 |
Library Models | p. 77 |
Application Models | p. 79 |
Putting It All Together | p. 80 |
Control Panel Models | p. 81 |
Customizing the Build Process | p. 84 |
Handling Large Scale Software | p. 88 |
Inside Vesta | |
Inside the Repository | p. 93 |
Support for Evaluation and Caching | p. 93 |
Derived Files and Shortids | p. 93 |
Evaluator Directories and Volatile Directories | p. 94 |
Fingerprints | p. 96 |
Inside the Repository Implementation | p. 98 |
Directory Implementation | p. 98 |
Shortids and Files | p. 100 |
Longids | p. 101 |
Copy-on-Write | p. 103 |
NFS Interface | p. 104 |
RPC Interfaces | p. 105 |
Implementing Replication | p. 105 |
Mastership | p. 105 |
Agreement | p. 106 |
Agreement-Preserving Primitives | p. 108 |
Propagating Attributes | p. 110 |
Incremental Building | p. 113 |
Overview of Function Caching | p. 113 |
Caching and Dynamic Dependencies | p. 115 |
The Function Cache Interface | p. 119 |
Computing Fine-Grained Dependencies | p. 120 |
Representing Dependencies | p. 120 |
Caching External Tool Invocations | p. 121 |
Caching User-Defined Function Evaluations | p. 123 |
Caching System Model Evaluations: A Special Case | p. 131 |
Error Handling | p. 132 |
Function Cache Implementation | p. 134 |
Cache Lookup | p. 135 |
Cache Entry Storage | p. 138 |
Synchronization | p. 139 |
Evaluation and Caching in Action | p. 139 |
Scratch Build of the Standard Environment | p. 139 |
Scratch Build of the Vesta Umbrella Library | p. 142 |
Scratch and Incremental Builds of the Evaluator | p. 144 |
Weeder | p. 147 |
How Deletion is Specified | p. 148 |
Implementation of the Weeder | p. 149 |
The Function Call Graph | p. 149 |
Concurrent Weeding | p. 152 |
Assessing Vesta | |
Competing Systems | p. 161 |
Loosely Connected Configuration Management Tools | p. 161 |
RCS | p. 162 |
CVS | p. 162 |
Make | p. 163 |
Integrated Configuration Management Systems | p. 165 |
DSEE | p. 165 |
ClearCASE | p. 167 |
Other Systems | p. 168 |
Vesta System Performance | p. 171 |
Platform Configuration | p. 172 |
Overall System Performance | p. 172 |
Performance Comparison with Make | p. 173 |
Performance Breakdown | p. 175 |
Caching Analysis | p. 177 |
Resource Usage | p. 178 |
Repository Performance | p. 180 |
Speed of File Operations | p. 181 |
Disk and Memory Consumption | p. 183 |
Speed of Repository Tools | p. 186 |
Speed of Cross-Repository Tools | p. 188 |
Speed of the Replicator | p. 189 |
Function Cache Performance | p. 190 |
Server Performance | p. 190 |
Measurements of the Stable Cache | p. 191 |
Disk and Memory Usage | p. 192 |
Function Cache Scalability | p. 192 |
Weeder Performance | p. 193 |
Interprocess Communication | p. 194 |
Conclusions | p. 197 |
Vesta in the Real World | p. 198 |
Vesta in the Future | p. 199 |
SDL Reference Manual | p. 203 |
Introduction | p. 203 |
Lexical Conventions | p. 204 |
Meta-notation | p. 204 |
Terminals | p. 204 |
Semantics | p. 205 |
Value Space | p. 205 |
Type Declarations | p. 206 |
Evaluation Rules | p. 207 |
Expr | p. 208 |
Literal | p. 209 |
Id | p. 209 |
List | p. 209 |
Binding | p. 212 |
Select | p. 213 |
Block | p. 214 |
Stmt | p. 215 |
Assign | p. 215 |
Iterate | p. 216 |
FuncDef | p. 216 |
FuncCall | p. 219 |
Model | p. 220 |
Files | p. 220 |
Imports | p. 224 |
File Name Interpretation | p. 227 |
Pragmas | p. 228 |
Primitives | p. 228 |
Functions on Type t_bool | p. 229 |
Functions on Type t_int | p. 229 |
Functions on Type t_text | p. 230 |
Functions on Type t_list | p. 232 |
Functions on Type t_binding | p. 234 |
Special Purpose Functions | p. 237 |
Type Manipulation Functions | p. 238 |
Tool Invocation Function | p. 239 |
Diagnostic Functions | p. 243 |
Concrete Syntax | p. 244 |
Grammar | p. 244 |
Ambiguity Resolution | p. 247 |
Tokens | p. 247 |
Reserved Identifiers | p. 249 |
The Vesta Web Site | p. 251 |
References | p. 253 |
Index | p. 257 |
Table of Contents provided by Ingram. All Rights Reserved. |