I had actually done a writeup on it, and thought I had lost it
I had actually done a writeup on it, and thought I had lost it. I found it, dated 2/15/2002: --- Consider that any D app is completely specified by a list of .module files and the tools necessary to compile them. Assign a unique GUID to each unique .module file. Then, an app is specified by a list of .module GUIDs. Each app is also assigned a GUID. On the client's machine is stored a pool of already downloaded .module files. When a new app is downloaded, what is actually downloaded is just a GUID. The client sees if that GUID is an already built app in the pool, then he's done. If not, the client requests the manifest for the GUID, a manifest being a list of .module GUIDs. Each GUID in the manifest is checked against the client pool, any that are not found are downloaded and added to the pool. Once the client has all the .module files for the GUIDs that make up an app, they can all be compiled, linked, and the result cached in the pool. Thus, if an app is updated, only the changed .module files ever need to get downloaded. …
Original discussion20 years of Git227 source comments · at import