@@ -313,6 +313,25 @@ mechanically, not by discipline.
313313 callable) — documented + round-trip tested. bt_kit refactored onto it.
314314 test-bt 31 / test-bt-frozen 29, all green; frozen path unregressed.
315315
316+ - ** Warmup + first-use JIT (2026-07-11, fcee3ec/1cdd216/2459642):** Sam's
317+ FREEZE.md feedback implemented. ` cppyy_kit.first_use() ` instruments kit-owned
318+ entry points — one-time, suppressible (RCLCPPYY_JIT_NOTICE=0), LLM-actionable
319+ notice naming the exact warmup() to call; ` bt_kit.warmup() ` /
320+ ` pcl_kit.warmup() ` + generic runner. Measured: first live tick 678→98 ms,
321+ pcl showcase frame-0 630→4 ms; ** best-case cold start = freeze + warmup
322+ (~ 85 ms bringup + ~ 0.9 s one-time init, then everything fast)** . The cost
323+ itself is NOT reducible in cppyy 3.5 (Clang front-end template
324+ instantiation; -O0 identical; PCH is AST-only, carries no thunk codegen) —
325+ relocate (warmup) or eliminate (L2 native plugin) are the answers, both
326+ shipped. FREEZE.md §4 now answers the "what remains" question directly.
327+ - ** README + backlog batch (2026-07-11, 0d34cbd/5130cf7/1784625, merged
328+ 1d01170):** README "Kits" section with measured-numbers table + quick-run;
329+ primitive-sequence conversion fixed (root cause deeper than expected: rclpy
330+ uses list/array.array representations per element type — octet/boolean/
331+ string sequences were also broken; bulk std::vector[ T] ( field ) construction,
332+ Float64MultiArray regression test; default suite now 8); checkout@v5 in
333+ both workflows (Node-20 deprecation gone).
334+
316335## Risks & mitigations
317336
318337- ** conda-forge cppyy behaves differently from the pip wheel** (cling resource
0 commit comments