Home
News
MailingLists
Publications
Proposal
People
Tools
TraCE
Nix
XTC
Maak
BuildFarm
Support
Mailing list
IRC
Issues
Center for ST
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Imposing AMemory Management Discipline On Software Deployment
Trace
E. Dolstra, E. Visser, and M. de Jonge. *Imposing a Memory Management Discipline on Software Deployment.* In J. Estublier and D. Rosenblum, editors, 26th International Conference on Software Engineering (ICSE'04), pages 583--592, Edinburgh, Scotland, May 2004. IEEE Computer Society. ([[http://www.cs.uu.nl/research/techreps/UU-CS-2004-044.html][techrep]]) ----------+++ Abstract The deployment of software components frequently fails because dependencies on other components are not declared explicitly or are declared imprecisely. This results in an incomplete reproduction of the environment necessary for proper operation, or in interference between incompatible variants. In this paper we show that these deployment hazards are similar to pointer hazards in memory models of programming languages and can be countered by imposing a memory management discipline on software deployment. Based on this analysis we have developed a generic, platform and language independent, discipline for deployment that allows precise dependency verification; exact identification of component variants; computation of complete closures containing all components on which a component depends; maximal sharing of components between such closures; and concurrent installation of revisions and variants of components. We have implemented the approach in the Nix deployment system, and used it for the deployment of a large number of existing Linux packages. We compare its effectiveness to other deployment systems. -----------+++ Links * [[Nix][Nix Deployment System]] <!-- * Set PREV_SKIN = notitle -->