lazy part21 indexing - #478
Merged
starseeker merged 11 commits intoAug 2, 2026
Merged
Conversation
starseeker
force-pushed
the
upstream/lazy-part21-indexing
branch
from
August 2, 2026 02:23
5d0dc88 to
4b8192a
Compare
Use modern target_link_libraries scopes so libraries publish their transitive requirements and executables keep theirs private. This preserves schema test linkage with current CMake versions.
Add a lazy Part 21 reader and instance manager that index records and resolve SDAI instances on demand. Include diagnostics, cache management, reference indexes, and baseline coverage for lazy reads.
Skip comments as opaque text during token searches so quoted text and string-control sequences within a comment cannot affect indexing.
Track in-progress instance loads and report recursive references instead of recursing indefinitely through a cyclic Part 21 graph.
Track indexed record bounds and expose the source-byte footprint of materialized instances in cache statistics. Avoid promoting batch-owned cache hits during reference resolution.
Retain record extents during indexing and provide stream-safe access to an instance's original Part 21 record without materializing it.
Permit callers to map known, attribute-compatible source keywords during object creation while preserving the original keyword in the lazy index.
Check cancellation while finding dependencies, pinning records, and resolving recursive references. Discard an object if cancellation interrupts its materialization.
Handle nested SCOPE constructs and export lists while indexing Part 21 records, preserving scope-owned source records and their references. Add scoped-record coverage.
starseeker
force-pushed
the
upstream/lazy-part21-indexing
branch
from
August 2, 2026 02:29
4b8192a to
0e091f0
Compare
The 35 AP209/AP214 crashes came from inverse resolution inspecting an instance still being materialized. The loader now defers such inverse passes until explicit attributes are complete, avoids partial duplicate inverse population, and guards invalid/null referrers. See src/cllazyfile/lazyInstMgr.cc:301 and src/cllazyfile/lazyRefs.h:90.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Various additions and changes to the stepcode cllazyfile code in response to testing it out with some fairly heavy duty conversion work.