How to Get Dependencies from /showIncludes
Our GNU make whitepaper mentions that, if you’re using Visual C with GNU make, you can use the /showIncludes compiler option to help generate .d files, much like you can with the -MD option to gcc. I...
View ArticleDerived Files in Repositories
Traditionally, users of source control systems are told that they should only put source files, not derived files, in their repositories. For example, you would check in your .c and .h files, but not...
View ArticleBinary Searching for Bugs
Normally, when debugging, I would recommend starting from first principles and trying to understand the problem’s root cause before doing anything else. Without a complete understanding of the bug,...
View ArticleBuild Determinism
I’ve written earlier about machine-independent builds, but let’s talk about a related issue: build determinism. A build or a build step is deterministic if I can run it multiple times and get the same...
View ArticleWindows vs. Unix File System Semantics
One of the challenges in implementing a cross-platform file system driver such as Cascade File System is dealing with the many differences, small and large, between how Windows, Linux, and Macintosh...
View ArticleThe Benefits of Small Commits
Unless there’s a specific reason why you can’t, I recommend that you commit code to your repository in the smallest possible atomic chunks. Look, it’s great that modern source control systems allow you...
View ArticleWhen Are Small Commits Bad?
I wrote previously on the topic of small commits. So when and why would I advise bunching small changes together into bigger ones, aside from the obvious case of changes that must be done atomically...
View ArticleContinuous Process Improvement
With the possible bankruptcy of the US Big Three automakers in the news, it’s interesting to think about the analogies between making cars and making software. There is no one single reason why the...
View ArticleThe Cost of Integration
I’d like to propose a fundamental law of configuration management: the cost of an integration increases over time. This is similar to the well-known software engineering observation that the cost of...
View ArticleThe Cost of Branching
I wrote previously on the cost of integration. I’d like to follow up by discussing a related topic, the cost of branching. Doesn’t integration imply branching? Not exactly: branching requires...
View Article
More Pages to Explore .....