Combined main CI run 29462319298 passes the former rare-sidecar tsan-unit and tsan-threadfuzz failures but still reports one race in tsan-nogil-corpus (shard 1/4), exact case cve/mc-tear-date-cache.js.
The reader is Object.dateMs and the writer is Object.setDateMs at the same Date payload word. Both source accesses use raw @atomicLoad/@atomicStore(f64, ...), but CI's newer Zig 0.17 dev compiler lowers the f64 read through __tsan_memcpy while recognizing the store as atomic. Local Zig dev.956 did not expose this compiler-version-sensitive lowering.
Scope / acceptance
- Store the exact IEEE-754 Date value bits in
std.atomic.Value(u64)and bit-cast at the accessor boundary. - Preserve NaN payloads, infinities, signed zero, Date semantics, sidecar layout, and the one-time rare-state publication protocol.
- Pass focused Date semantics and the exact TSan corpus case locally.
- Pass the replacement full-main TSan no-GIL corpus gate.