|
82 | 82 | // defining it produces more new failures than it fixes, the answer flips". |
83 | 83 | // |
84 | 84 | // The measurement settled the THIRD-PARTY half (2026-09-20, 60 member-target |
85 | | -// combinations): keeping it costs four members, each stopping at |
| 85 | +// combinations): keeping it costs members that stop at |
86 | 86 | // `#include <windows.h>` reached through `#if defined(_WIN32) || |
87 | 87 | // defined(__CYGWIN__)`. Upstream means "Win32 is available" by the name --- |
88 | | -// mimalloc says so in the guard's own comment, sqlite3 lists it under |
89 | | -// `SQLITE_OS_WIN`. A BORROWED NAME MEANS WHAT THE LENDER'S HISTORY MADE IT |
90 | | -// MEAN, not what the borrower intended by it. |
| 88 | +// sqlite3 lists it under `SQLITE_OS_WIN`. A BORROWED NAME MEANS WHAT THE |
| 89 | +// LENDER'S HISTORY MADE IT MEAN, not what the borrower intended by it. |
| 90 | +// |
| 91 | +// THE COUNT SAID FOUR AND IT WAS TWO. Corrected against the re-measurement on |
| 92 | +// 2026.9.21.2: `archive` and `sqlite3` read the name and both cleared. |
| 93 | +// `c-ares` and `mimalloc` were grouped with them because all four stopped at |
| 94 | +// `windows.h`, and a shared diagnostic is not a shared cause --- see the |
| 95 | +// emission site below. |
91 | 96 | // |
92 | 97 | // WITHDRAWING IT WAS TRIED TOO EARLY ONCE, AND BROKE THIS ECOSYSTEM'S OWN |
93 | 98 | // INSTALLED HEADERS. `openkal-musl`'s `bits/setjmp.h` and |
@@ -328,11 +333,30 @@ inline std::expected<Realisation, std::string> realise( |
328 | 333 | // `__CYGWIN__` IS WITHDRAWN HERE, AND THAT IS THE LAST STEP OF |
329 | 334 | // A SEQUENCE RATHER THAN A DECISION TAKEN ON ITS OWN. The |
330 | 335 | // 30-member measurement settled that the borrowed name costs four |
331 | | - // members (archive, sqlite3, mimalloc, c-ares stop at |
332 | | - // `#include <windows.h>` through `#if defined(_WIN32) || |
333 | | - // defined(__CYGWIN__)`; upstream means "Win32 is available" by |
334 | | - // it, as mimalloc's own guard comment says). The three steps, in |
335 | | - // the order they were taken: |
| 336 | + // members that stop at `#include <windows.h>` through |
| 337 | + // `#if defined(_WIN32) || defined(__CYGWIN__)`; upstream means |
| 338 | + // "Win32 is available" by it. The three steps, in the order they |
| 339 | + // were taken: |
| 340 | + // |
| 341 | + // THE COUNT WAS FOUR AND IT IS TWO, and recording the correction |
| 342 | + // matters more than the number. The re-measurement on this |
| 343 | + // release cleared `archive` and `sqlite3`; `c-ares` and |
| 344 | + // `mimalloc` remain, and neither was ever this name's doing: |
| 345 | + // |
| 346 | + // c-ares `#ifdef HAVE_WINDOWS_H`, and that macro is defined |
| 347 | + // by mcpp-index's own recipe in its Windows branch. |
| 348 | + // A recipe defect, the same shape as curl's |
| 349 | + // `HAVE_LINUX_TCP_H`. |
| 350 | + // mimalloc no longer reaches a header at all. It fails in the |
| 351 | + // code generator: "Target OS doesn't support |
| 352 | + // __builtin_thread_pointer() yet" --- LLVM does not |
| 353 | + // implement that builtin for the substitute triple's |
| 354 | + // OS. THE SUBSTITUTION HAS A COST BEYOND MACRO NAMES, |
| 355 | + // and this is the first measurement of one. |
| 356 | + // |
| 357 | + // All four were grouped by their DIAGNOSTIC. Grouping by |
| 358 | + // diagnostic is not grouping by cause, and a count collected that |
| 359 | + // way overstates what withdrawing the name can fix. |
336 | 360 | // |
337 | 361 | // 1. 2026.9.21.1 defined mcpp's own name beside the borrowed |
338 | 362 | // one; 2026.9.21.2 re-spelt it `__MCPP_TARGET_WINDOWS__`. |
|
0 commit comments