Skip to content

feat(LA-62): qualify native attribute mutation keys - #760

Merged
ellainng merged 1 commit into
mainfrom
feat/LA-62-native-mutation-keys
Nov 2, 2026
Merged

ellainng merged 1 commit into
mainfrom
feat/LA-62-native-mutation-keys

Conversation

@ellainng

@ellainng ellainng commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

String-subtype attribute keys could skip native lookup callbacks or be refused on reflective receivers. Native mutation now runs hash, MRO dictionary lookup, equality and truth conversion through owned execution. Successful and NotImplemented comparisons select the stored descriptor, including aliases; lookup errors are suppressed before storage or missing-name selection. Dictionary storage hashes independently, writable fields preserve their native behavior, and function names retain subtype identity.

The milestone covers scalar, container/buffer, callable, view/proxy, generator/iterator and reflective layouts, with module/dynamic/generator composition, original diagnostics, parked collection, cancellation/close and shared budgets. The exact contract and runnable recovery example are included.

Rejected native type-key comparisons retain an explicit refusal after the first visible rejection. Sixteen pinned CPython 3.14.7 seeded probes produced two or three comparisons for the same input; #759 owns that sparse-probe contract. The corpus records 2,443 cases: 2,387 supported semantic/error comparisons and 56 refusals, with 267 shared core cases. Seven qualifications remain outside successful differential counts. #124 and the broader A2 gate remain open.

Validation on macOS arm64 with pinned CPython 3.14.7 and Node 24.19.0:

  • All 678 shared local PR-check IDs: Python/runtime/distribution checks, 388 Node checks, 274 Chromium conformance checks and nine browser integrations, plus browser preparation.
  • All Node and Chromium drain/step/parked exception profiles; fresh final descriptor-binding/type-snapshot browser cases.
  • 223 isolated installed-wheel offline checks, including dynamic diagnostics, retained cycles and Stop/Restart.
  • Parked collection/cancellation/close, shared work/allocation limits, 16 seeded qualification probes, 140-site source-refusal audit and all eight revision-22 resource observations.

Four browser worker-startup interruptions passed isolated one-worker retries. Other passing checks were retained. The automatically triggered duplicate PR workflow was cancelled after these complete local results; merge reuses this validation.

Closes #757. Refs #600, #124, #759.

@ellainng
ellainng merged commit 5072ae1 into main Nov 2, 2026
2 of 18 checks passed
@ellainng
ellainng deleted the feat/LA-62-native-mutation-keys branch November 2, 2026 19:44
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.

LA-62: Qualify callback-bearing native attribute mutation keys

1 participant