Skip to content

Reuse one function address order across SDK pages - #1610

Merged
gmh5225 merged 2 commits into
devfrom
codex/cache-function-page-order
Oct 21, 2026
Merged

gmh5225 merged 2 commits into
devfrom
codex/cache-function-page-order

Conversation

@Letenz

@Letenz Letenz commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Reference and warmup pagination repeatedly filtered and sorted the remaining function inventory for each page. Retain one stable address order per function-list revision and seek each page with a lower bound. Stateless access-width scans also build their order once per scan.

The cache checks the list revision, backing storage and count. Equal addresses retain the first listed identity; pages preserve the requested bounds and continuation. The same SDK implementation serves the worker and CLI.

Regression coverage checks complete paging, address zero, duplicate identities, limit clamping, storage replacement, and a revision change without an allocation or count change. It also asserts that successive pages reuse the same address-order storage. Existing reference, access-width and warmup invalidation cases protect callers.

An earlier local Windows Release comparison of this change together with asynchronous discovery and replica preparation reduced initial Functions filtering by about 89% over three paired runs. That is a combined result, not an isolated timing claim for this cache. The input identity, binary, paths and raw traces are not included.

Windows x64 Release: 11 focused SDK cases passed without skips, including the new complete-page/revision regression and existing access-width/warmup cases. A freshly linked real CLI and worker passed the two-size synthetic reference/width comparison. The modified C++ ranges and diff whitespace were checked. Full CTest and native Linux/macOS host runs were not performed locally. This PR is independent and targets dev; related worker and GUI changes are submitted separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants