From d814cb6b20fc1f26b4df4c78f170adcc6ad71d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Fri, 31 Jul 2026 09:12:40 +0200 Subject: [PATCH] docs: record the measured #7109 timing in the #7121 changelog fragment The fragment shipped with no timing claim because the host was too loaded to make one at the time. Measured after merge: `08_string_concat`'s top-level `result += "x"` scaled to 3,000,000 iterations, timed by the program's own `Date.now()` delta over 20 INTERLEAVED pairs, goes 74 ms -> 69 ms (-6.8%) with distributions 72-79 ms vs 68-72 ms. Stated narrowly on purpose. 29 of the 39 workloads in the A/B compile to a byte-identical object, so this is a number about the top-level `+=` self-append idiom the canonical-Str lowering changes, not about the 321 selections #7109 converted. Claude-Session: https://claude.ai/code/session_018ZFER8EEg8K7ez2n6oDrT9 --- changelog.d/7121-module-init-repsel.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.d/7121-module-init-repsel.md b/changelog.d/7121-module-init-repsel.md index b974a9670c..6d7f1efabe 100644 --- a/changelog.d/7121-module-init-repsel.md +++ b/changelog.d/7121-module-init-repsel.md @@ -77,6 +77,13 @@ dispatch whose hot arm derives both handles with a bare write-barrier count are unchanged (9 and 3 in both arms) — canonical `Str` is tagged-at-rest and does not move storage. +Measured after the fact (#7123): that loop scaled to 3 000 000 iterations, timed +by the program's own `Date.now()` delta over 20 interleaved pairs on an M1 under +load, goes **74 ms → 69 ms (−6.8 %)**, distributions 72–79 ms vs 68–72 ms. It is +the only timing claim attached to this change, and it is confined to the idiom +the change targets — the other 29 of 39 workloads compile to a byte-identical +object. + ## Also `note_canonical_local` reported a hard-coded `RegionKind::Function` to