Titus Winters’ Post

View profile for Titus Winters, graphic

Senior Principal Scientist at Adobe

I just realized: we should start saying "build memoization" rather than "build caching." We aren't really talking about least-recently-used or time-to-live algorithms, we're talking about "don't bother recompiling this piece if none of its inputs changed." (It has been puzzling me that some people are so deeply fearful of "build cache" as a concept, and honestly I think it's mostly because most build systems have non-hermetic state scattered all over the place. Maybe a slightly more precise term for the type of caching we're concerned with would clarify the semantics in question.)

Gennadiy Civil

Senior Engineering Manager @ Google | Generative AI | Software Infrastructure | Developer Tooling | I build high performing engineering teams. #softwareengineering is a team sport

4mo

Valid point. However ... this would be one of those terms that everyone is using (correctly and incorrectly) and if you introduce a new word a fair number of people would say "you mean caching?" :-)

Darius Neațu

Software Engineer & Teaching Assistant

3mo

I don't have this problem in my project... usually the build caching is broken or barely helps 😞 😀 I also noticed that some teams don't understand the value of a powerful build system unless productivity actually drops near zero. Recently, I saw a build command which was unable to do a local build with less than 20GB on MAC with M2. Solution? Tweak the build config instead of redesign the build system (e.g., use cloud) - now it will work for another 2 months. I think we should also improve university courses to include build system concepts. At least in my university (Bucharest), every project has a 100-line Makefile, people are used to ignore non-code optimizations.

Like
Reply
Jared Wyles

Senior computer Scientist 2 at Adobe

4mo

Does the term really matter? I say this fully understanding why you are asking this question. I think that people are burnt by the idea of a cache from previous tech so they are hesistent to trust it. However add a new term and now you are fighting fear of change instead Absolutely agree that the concepts of a cache dont matter for build caching. Honestly i think the answer is it should just be so standard dor c++ that its completly transparent that there is no discusssion.

Like
Reply
Max Kanat-Alexander

Author: LinkedIn DPH Framework, "Code Simplicity,” Understanding Software”

4mo

I think the real problem that people run into is build systems that don’t know about all the environmental factors that can affect the build output. That is, there’s no way to know what the real inputs are.

David Max

Senior Software Engineer at Datadog

4mo

I feel like we already have other synonyms. When you do a clean build, what are you cleaning? You could say "the build cache," but you can also say that you are cleaning the object files/intermediate files/build artifacts from the cache/store/repository/directory, etc. Pick whichever synonym has your favorite connotation.

Like
Reply
Alexey Alexandrov

Principal Engineer / UTL at Google

4mo

CAS (for content-addressable storage) is another term

See more comments

To view or add a comment, sign in

Explore topics