
Assorted links for Wednesday, April 2:
- Build systems à la carte: Theory and practice
Build systems are awesome, terrifying – and unloved. They are used by every developer around the world, but are rarely the object of study. In this paper, we offer a systematic, and executable, framework for developing and comparing build systems, viewing them as related points in a landscape rather than as isolated phenomena. By teasing apart existing build systems, we can recombine their components, allowing us to prototype new build systems with desired properties.
- Erasure Coding in Windows Azure Storage
In this paper we introduce a new set of codes for erasure coding called Local Reconstruction Codes (LRC). LRC reduces the number of erasure coding fragments that need to be read when reconstructing data fragments that are offline, while still keeping the storage overhead low.
- Reproducible Builds
Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code.
- Getting to Deterministic Builds on Windows
This is a set of notes on getting to deterministic builds in C, C++ and Rust on Windows.
- Our Software Dependency Problem
Software dependencies carry with them serious risks that are too often overlooked. The shift to easy, fine-grained software reuse has happened so quickly that we do not yet understand the best practices for choosing and using dependencies effectively, or even for deciding when they are appropriate and when not. My purpose in writing this article is to raise awareness of the risks and encourage more investigation of solutions.