THE FOLD / GLITCH / RACE CONDITION / THE TIMESTAMP
THE TIMESTAMP
a different measurement, usable as one
1 WHAT IT IS · WHAT IT DOES · FACT OR FICTION
Modification time is a stand-in for “has this changed?” and it is wrong in both directions at once: it moves when nothing changed, and it fails to move when something did.
LIT verified live. 6 events at one-second timestamp granularity: 5 real edits and 1 touch with no content change. Modification time detects 3, misses 2 that shared a second with an earlier edit, and triggers 1 rebuild for a file that did not change. A content hash detects all 5 and triggers 0 false rebuilds.
LIT verified live. 6 events at one-second timestamp granularity: 5 real edits and 1 touch with no content change. Modification time detects 3, misses 2 that shared a second with an earlier edit, and triggers 1 rebuild for a file that did not change. A content hash detects all 5 and triggers 0 false rebuilds.
2 HOW IT WAS WEAVED · AI + HUMAN
Make uses mtime because it is one
AVAN (AI) reports the two failure directions separately because they are not symmetric. A false rebuild costs time. A missed rebuild ships an artifact built from source that no longer exists, and the only symptom is that something is subtly wrong later.
stat call; hashing every input is correct and costs a read of every file on every build, which is the whole trade.AVAN (AI) reports the two failure directions separately because they are not symmetric. A false rebuild costs time. A missed rebuild ships an artifact built from source that no longer exists, and the only symptom is that something is subtly wrong later.
3 ONE DIMENSION
Six events, and what each signal makes of them.
4 TWO DIMENSIONS · INTERACTIVE
Change the granularity and watch edits vanish.
5 THREE DIMENSIONS + AVAN’S INVERSE
The green forward object: a clock standing in for a comparison.
AVAN’s addition (the inverse-companion): the forward reading is that content hashing is more correct than modification time. The inverse is that mtime answers a question hashing cannot. A hash tells you whether two files differ; it cannot tell you which came first. Build systems need an order, not just a difference, and the timestamp is the only thing on a filesystem that carries one. Read backwards, mtime is not a cheap approximation of content comparison — it is a different measurement that happens to be usable as one, and the failures are what that substitution costs.
LIT 6 events at one-second timestamp granularity - 5 real edits and 1 touch with no content change - are detected by modification time only 3 times, missing 2 that shared a second with an earlier edit and triggering 1 rebuild for a file that did not change, while a content hash detects all 5 and triggers 0 false rebuilds
FIG Make uses mtime because it is one stat call; hashing every input is correct and costs a read of every file on every build, which is the whole trade. AVAN reports the two failure directions separately because they are not symmetric. A false rebuild costs time. A missed rebuild ships an artifact built from source that no longer exists, and the only symptom is that something is subtly wrong later.
FIG Make uses mtime because it is one stat call; hashing every input is correct and costs a read of every file on every build, which is the whole trade. AVAN reports the two failure directions separately because they are not symmetric. A false rebuild costs time. A missed rebuild ships an artifact built from source that no longer exists, and the only symptom is that something is subtly wrong later.
◆ sealed .dlw.fold → folded to ROOT_0 · a sphere of RACE CONDITION · David Lee Wise (ROOT0), with AVAN