Conversation
Carry declared instance-field types through extraction and result compaction into the shared Python type registry so chained calls through imported classes resolve their receiver types. Refs #1277 Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Copy inherited field-type pointer arrays into the writable registry arena before Python refines an existing field. Keep shared type objects intact and avoid retaining per-file scratch types in the sealed fallback. Add deterministic shared-state and later-overlay coverage, retaining the sequential Python field regression and adding a forced-parallel variant. Refs #1277 Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Memoize C expression evaluation, index repeated scope and registry queries, and report incomplete walks explicitly on memo or depth failure. Refs #1527 Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Preserve the arena-owned raw Module caller name so top-level resolutions join the extractor in both pipeline drivers. Add occurrence and ownership controls, including package modules and named lambdas. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Resolve symbols declared in __init__.py under their package while retaining the raw module identity for file and top-level caller nodes. Carry explicit language through registry callers, select Python package imports, preserve long exact names, and report scope allocation failures without partial output. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Capture ordered Python namespace facts and retain them through compact, spill, and versioned LSP surfaces. Reject unavailable metadata before incremental reuse and rebuild on Python namespace changes or deletion. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Use tracked zeroed storage for the parallel LSP failure array and release it with the matching memory class after worker joins. Share import-filter failure cleanup without changing fallback state. Keep existing raw-allocation allowances unchanged. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
|
Checkpoint and handover (2026-10-03 UTC) Published head: Ordered, typed Python namespace facts are published across 12 files with 16 new tests, unrun locally. Prerequisite: #2529. The strict codec is version 2; invalid encountered Python facts force a full rebuild, without claiming a universal audit of unchanged cached data. The re-export resolver is NOT enabled. Its separate design still needs namespace inventory/restore wiring, origin and edge policy, confident-occurrence reconciliation, failure propagation and the owning semantic-version change before implementation. Hosted snapshot at 2026-10-03 21:54:23 UTC: 3 queued. Confirm the required checks on this exact head before treating it as ready. No additional local build, test, lint, sanitizer, benchmark or CI runs were performed at this checkpoint, as requested. Earlier executed evidence remains historical; prepared tests and the newer source-reviewed changes must still be validated by the hosted gate. The campaign is paused at the maintainer’s request. Local monitoring has stopped; hosted jobs remain running. No merge was performed. Thanks for reviewing this change. |
Python incremental surfaces did not retain ordered imports, shadowing, or the state of
__all__. That leaves insufficient evidence to reuse namespace information safely across indexing passes.Capture versioned, ordered namespace facts and preserve them through compaction, spill storage, and the LSP surface codec. Keep a complete empty namespace distinct from unsupported syntax and failed capture. Validate stored facts and deep-copy decoded data before exposing it to callers.
Bump the index format so older indexes rebuild before the unchanged-file shortcut. Changes to a Python surface, Python deletion, or invalid metadata encountered during change admission conservatively force a full rebuild; ordinary body-only edits with unchanged surfaces retain closure repair.
This supplies durable metadata for the recovered re-export work; it does not enable new re-export resolution. Stacked on #2529 and its dependencies. This PR targets
main, so its diff includes those dependencies until they land.Parallel resolver error slots use matching tracked allocation and cleanup. Import-filter failures share cleanup while preserving the full-registry fallback. The existing raw-allocation allowances are unchanged.
Validation: bounded source reviews, clang-format 20 formatting, and diff/integrity checks. Builds, tests, compiler/syntax checks, sanitizer checks, revert proof, and local CI are UNRUN, as requested. GitHub CI is pending.