@@ -311,6 +311,7 @@ than mixing counts across environments.
311311| 30 | add the combined edge only for different delimiters | +6.84% ` slow ` , +0.54% ` typing ` | rejected |
312312| 31 | dispatch parent pops from one stack-head lookup | -0.41% ` slow ` , flat on ` typing ` | kept |
313313| 32 | replace nested-slider vectors with a bounded accumulator | flat on both focused pairs | rejected |
314+ | 33 | store edge depth differences as ` u8 ` | +1.50% ` slow ` , +0.18% ` typing ` | rejected |
314315
315316Every completed experiment is committed and pushed. ` results/ ` holds labelled
316317callgrind tables through ` exp13-linear-visible-width ` ; experiments that only
@@ -333,22 +334,17 @@ the percentages above predate exp25-31.
333334 ` compute_neighbours ` /` allocate_if_new ` that can be removed on an existing
334335 edge. Exp28 and exp31 show that exact parent-stack reductions pay; exp10
335336 shows that merely decomposing candidate construction does not.
336- 2 . ** Measure compact ` Edge ` metadata.** A historical search branch stores
337- depth differences as ` u8 ` ; current costs cap them at 40 but the enum carries
338- ` u32 ` . First check ` size_of::<Edge>() ` and generated code. A smaller enum only
339- matters if it reduces copying or the ` (Edge, &Vertex) ` neighbour/route
340- representation; alignment may erase the apparent saving.
341- 3 . ** Target real tree-sitter work on ` typing ` .** Exp27 proved capture-bucket
337+ 2 . ** Target real tree-sitter work on ` typing ` .** Exp27 proved capture-bucket
342338 lookup itself is negligible. Investigate query matching, syntax cursor
343339 traversal, or duplicated tree walking. Type highlights affect colour but,
344340 unlike comments and strings, appear not to affect content equality; a
345341 no-colour fast path is only valid after tracing ` AtomKind::Type ` through
346342 parsing, matching, and every output mode. Do not assume this from the name.
347- 4 . ** Consider phase-specific instrumentation.** The unmerged
343+ 3 . ** Consider phase-specific instrumentation.** The unmerged
348344 ` claude/codspeed-ci-setup-ahqufj ` benchmark separates parse and diff. Adapt
349345 it locally if whole-process profiles cannot distinguish a ` typing ` change;
350346 do not broaden the benchmark inputs beyond the two focused pairs.
351- 5 . ** Algorithmic splitting only with explicit output review.** Historical
347+ 4 . ** Algorithmic splitting only with explicit output review.** Historical
352348 pre-diff splitting and unique-atom branches can dramatically reduce graph
353349 work, but they change which optimal diff is selected. The current exact
354350 output oracle will reject them. Record such a proposal separately and seek
@@ -367,6 +363,8 @@ the percentages above predate exp25-31.
367363- Do not optimize capture classification alone (exp27: -0.03%, noise).
368364- Do not replace nested-slider scratch vectors with a bounded accumulator;
369365 those searches were flat on both focused pairs (exp32).
366+ - Do not compact edge depth fields to ` u8 ` ; pointer alignment preserves the
367+ neighbour-entry size and conversions regressed both pairs (exp33).
370368- Do not remove ` ChangeState::UnchangedDelimiter ` ; prior work found it is
371369 required and its removal panics.
372370
0 commit comments