Skip to content

LANG-A: Track full Python 3.14 compatibility and a useful language profile #600

Open

Description

@ellainng

Purpose

Track A develops the independent interpreter toward full Python 3.14 language and builtin semantics, followed by explicitly qualified standard-library and pure-Python package coverage. Completion of the finite O1–O96 contract (#123) is the starting point, not a claim of complete Python compatibility.

Track B (#601) will build an application engine on this foundation. A useful intermediate A+ profile should enable real applications before every language/library gap is closed. Shared language/runtime prerequisites have one owning issue and evidence may satisfy both tracks.

Naming and delivery

LA-N identifies focused language deliverables; LB-N identifies application deliverables. These identifiers continue after the first seven items without creating another fixed-size O-series. Existing issues retain ownership of their scopes. Deliver a complete logical interpreter milestone locally, using focused Python and Chromium checks plus the complete local PR suite before publishing one feature branch and PR. Squash merge accepted work and reuse unchanged passing evidence.

First two batches — practical container APIs

These are finite slices of #116, with CPython 3.14.7 as the pinned semantic oracle. Each implementation includes source/reference cases, exact signatures, error/callback order, ownership and interruption coverage. Classes-source/1 admits owned protocols; core-source/1 admits the explicitly shared primitive cases.

Batch 1:

Batch 2:

Broader dict construction/update, enumerate/zip/reversed, aggregate/map/filter/sorted APIs, text methods and remaining hint/equality/hash families stay under #116. This initial batch does not close that issue.

Continuing language roadmap

Area Canonical owner Acceptance
Remaining container/builtin traversal APIs #116 Exact per-API signatures, ordering, aliasing, callbacks and resource behavior.
Exception subclasses, arguments, chaining, traceback fidelity, groups/except* #124 Ordinary and grouped control flow, original source frames and interruption.
repr/str/ascii/format, f-strings and t-strings #127 Finite format grammar, conversion/evaluation order, structured template values.
Context managers and pattern matching #121 Sync protocol cleanup and matching semantics, including failure paths.
Generators/comprehensions and binary/set/buffer APIs #120, #117 Close retained finite refusals; add exact protocol/API coverage.
Python 3.14 annotations and generics #125 Deferred annotation semantics, generic syntax and introspection.
Numeric completeness #184 Remaining exact numeric APIs and edge cases.
Coroutine/await and async protocols #34, shared with Track B Language semantics belong to conformance; host capabilities/application evidence belong to B.
Standard library #126 Start with json, math and selected utilities; qualify APIs individually, then maintain an explicit module/API gap register. Full stdlib support requires each remaining module to be resolved.
Real package uses #128 Pinned original and reduced source, exact entry points/closure/licenses, unchanged workload behavior.
Conformance inventory and residual gaps #99 and follow-up LA issues Reconcile every admitted/refused/unsupported grammar, builtin and library surface; create finite owners for uncovered gaps.
Independent interpreter candidate #36 Compatibility promise, reproducible assets, installed artifacts and supported-host evidence. Publication remains a separate decision.

Progress and completion gates

  • A1 — practical container API slice accepted (LA-1–LA-7 and the LA-6A/LA-7A follow-ups).
  • A2 — exceptions and formatting needed by ordinary reusable code accepted.
  • A+ — a documented useful language/library profile runs at least one pinned real pure-Python workload unchanged, including failure paths; prerequisite probes select the next APIs.
  • A3 — retained source-language, builtin and async semantic gaps reconciled against a versioned Python 3.14 reference inventory and implemented.
  • A4 — standard-library coverage reconciled by module/API with explicit supported-host differences; package uses remain measured rather than inferred.
  • A5 — full Python 3.14 support claim accepted only against the declared versioned scope, with no silent omission of intentional refusals, retained divergences or platform restrictions.

Report four separate indicators: versioned language-corpus results (fixed denominator; supported, divergent, refused and untested reported separately), exact builtin/API coverage, certified package workloads, and candidate/release gates. Stage counts and supported-name counts are not an overall Python-completion percentage.

Relationship and limits

Track B can consume A+ and proceed on independent scheduling/host work while A continues. Browser OS/process/native-extension restrictions must remain visible; they cannot be hidden inside a full-compatibility claim. The later C/Rust/Wasm backend (#40–#42) is independent of both tracks. No dependency/service, release upload, hosted deployment or new backend is selected by this tracker.

Initial language batches accepted — 2026-10-31

Two focused batches are accepted through squash merges #609, #610, #611, #612 and #613, #614, #615, #617, #619. The seven planned tasks and the iterator-owner / boundary-inventory follow-ups are complete.

All 16 corrected regression jobs pass. Evidence includes 330 container source/lifecycle tests, 194 class observations (189 semantic/error comparisons and five explicit refusals), 121 shared core cases, Node/Chromium drain/step/parked execution, nine runner tests, 20 installed-wheel offline checks and the unchanged eight execution resource cases. The global source audit records 136 owned refusal sites. The CI-discovered inventory omission is corrected by #619.

Final main is 015fa54, clean and synchronized, with final-main smoke and local wheel/installed-CLI/interpreter-startup checks passing. Completed branches are removed after dependent reconciliation; the unrelated code-cells stash is preserved.

This accepts the finite practical-container slice. User hints, missing definitions, dictionary-subclass view proxies, view set operations and the remaining #116 APIs stay open; general exception arguments remain #124. Track A #600 and application Track B #601 continue. #124/#125 are Ready after their recorded prerequisites closed. Candidate #36 and library/package/host/release gates remain separate.

Ordinary exception batches accepted — 2026-10-31

Two focused batches (three PRs followed by four) are accepted through squash merges #626–#630, #632 and #633.

The pinned CPython 3.14.7 corpus records 123 observations: 115 semantic/error comparisons and eight explicit refusals, with 24 cases shared by core-source/1. Both Node and Chromium pass drain, step and parked execution. The final 16-job regression run passes, alongside 518 focused exception/iteration/container/generator/execution tests, nine runner tests, 17 installed-wheel offline checks, and the 140-site source-refusal audit. Accounting revision 19 records the intended single-string identity change; the eight resulting execution observations remain stable through the remaining slices.

Final main is dd0613d, clean and synchronized, with wheel/installed-CLI/interpreter-startup smokes and the final-main CI smoke passing. Completed task branches are removed and the unrelated code-cells stash is preserved.

Remaining #124 work is exception groups/except* splitting/merging, general handler expressions/named tuple values, traceback objects/mutation, notes, and structured native exception constructors/fields/subclasses. User-class generator throw remains #120; multiple-argument/container/default native exception display families remain #127. The exact profile and runnable example are documented in the ordinary exception contract.

A2 remains open because the remaining exception contracts and formatting families are unfinished. A+ package qualification, broader source/builtin/async reconciliation, standard-library coverage and candidate #36 retain their separate evidence gates. Package certification and publication/deployment status are unchanged by these two language batches.

Handler expressions and notes accepted — 2026-11-01

Four focused squash merges #637, #638, #639 and #641 complete this batch:

The pinned CPython 3.14.7 exception corpus has 174 cases: 167 semantic/error comparisons and seven explicit refusals, with 39 cases explicitly shared by core-source/1. All six Node and six Chromium drivers pass. The general source corpus preserves its 408-case denominator and passes 378 supported comparisons plus 30 explicit refusals on both targets. These are finite corpus results, not an overall Python-completion percentage.

Exact API additions include BaseException.add_note(note, /) and inherited bound/unbound calls, lazy notes dictionary storage, replacement/deletion, string/list subtype identity, native append behavior and owned getter/setter/fallback failures. Handler calls, attributes, subscripts and tuple values evaluate lazily through verified modern-bytecode expression blocks. Classes-source/1 owns note callbacks; the shared core cases remain explicit. Logical teardown, cancellation and shared work/allocation budgets pass, including cyclic notes and suspended handler selection. Host summaries retain their copied diagnostic contract without executing note getters or formatting arbitrary manually stored notes.

All 16 corrected batch regression jobs pass. Local evidence includes 227 focused exception/source/lifecycle/verifier tests, nine runner tests, 26 isolated installed-wheel offline checks and the 138-site source-refusal audit. Accounting revision 20 records the intended handler-expression instructions/pool/validation costs in three composed cases and retains revision 19 counters; the note/acceptance slices preserve all eight resulting resource observations.

Final main is de363e3, clean and synchronized, with wheel/installed-CLI/interpreter-startup smokes and final-main CI passing. Each dependent retained its reviewed contents and focused diff during parent-squash reconciliation. The four task issues are closed and their Project items are Done; completed branches are removed and the unrelated code-cells stash is preserved.

Remaining #124 work includes exception groups/except* splitting/merging, traceback objects/mutation and note rendering/export, and structured native exception constructors/fields/subclasses. User-class generator throw remains #120; remaining representations/formatting remain #127. The exact exception contract and runnable example document the accepted profile.

A2 remains open. Package qualification, broader source/builtin/async reconciliation, standard-library coverage and candidate/release gates retain their separate evidence requirements. Certified package workloads and publication/deployment status are unchanged by this batch.

Native exception delivery plan — 2026-11-01

Two further focused batches continue #124 without waiting on the separate formatting/annotations gates.

Batch 1:

Batch 2:

Each slice requires pinned CPython 3.14.7 signatures, identity/error-order cases, explicit profile admission, owned lifecycle/budget checks and full PR CI. Runtime-generated enrichment is qualified separately from explicit construction/storage. Groups/except*, traceback objects, SyntaxError/Unicode structured families, remaining representations and the independent candidate/release gates remain open. Deliver as a three-PR batch followed by a five-PR batch; squash in dependency order.

Native exception batches accepted — 2026-11-01

Two further Track A batches are accepted through eight focused, dependency-ordered squash merges.

Batch 1:

Batch 2:

All 16 final regression jobs pass. The automated CPython 3.14.7 exception corpus records 310 cases: 301 semantic/error comparisons and nine explicit refusals; 53 cases are explicitly shared with core-source/1. Node and Chromium pass every drain, step and parked driver. Two separately recorded macOS arm64 pinned-reference crash probes remain qualified divergences, outside successful differential counts; Node and installed offline Chromium check safe None behavior. These are finite corpus/API observations, not an overall Python-completion percentage.

Local acceptance includes 395 exception/source/lifecycle/qualification tests, nine runner tests, 53 isolated installed-wheel offline checks, the 139-site refusal audit and all eight unchanged deterministic execution resource observations. The isolated browser compatibility inventory passes 756 observations (717 supported, 35 deferred and four host-restricted), with its own denominator. Browser conformance retains its commands/matrix and now uses the existing 15-minute integration bound after two 12-minute cancellations interrupted the final compatibility command. Passing reviewed-content CI was retained through parent-squash reconciliation; duplicate ancestry-only runs were cancelled.

Final main is bd8b212, clean and synchronized, with local wheel/isolated installed-CLI/interpreter-startup smokes and final-main CI passing. All eight task issues are closed and Project items are Done; completed branches are removed and the unrelated code-cells stash is preserved. The exact API contract and native exception example record the accepted profile.

A2 and #124 remain open for groups/except*, traceback objects/mutation and note rendering/export, automatic attribute/import failure enrichment, and remaining structured native families including SyntaxError/Unicode. User-class generator throw and the two delegated NULL-payload qualifications remain #120; remaining representations/formatting remain #127. Package/library qualification, the broader language/async inventory and candidate #36 retain separate evidence gates. Certified package workloads and publication/deployment status are unchanged by these batches.

Runtime metadata and syntax exception delivery plan — 2026-11-01

Batch 1:

Batch 2:

Each slice requires CPython 3.14.7 reference cases, explicit source-profile admission, native ownership/interruption tests and full relevant PR CI. Groups/except*, traceback objects, Unicode families, parser diagnostics, broader formatting and candidate/release gates remain separately owned. Deliver as a three-PR batch followed by a five-PR batch, starting ready dependent work while prior CI runs and squash-merging passing work in dependency order.

Runtime metadata and syntax exception batches accepted — 2026-11-01

Two further Track A batches are accepted through eight focused, dependency-ordered squash merges.

Batch 1:

Batch 2:

All 16 final regression jobs pass. The pinned CPython 3.14.7 exception corpus records 438 cases: 430 semantic/error comparisons and eight explicit refusals, with 76 explicitly shared core-source/1 cases. All six Node and six Chromium drain/step/parked drivers pass. Four qualifications remain outside successful differential counts: two existing macOS arm64 pinned-reference delegated-return crash probes and two SyntaxError host differences. Native location rendering uses POSIX separators and signed 64-bit C long behavior on every interpreter host; the separate Windows expectations are derived from pinned implementation/configuration and do not certify Windows-native parity.

Final local evidence includes 582 focused function/exception/execution tests, 71 isolated installed-wheel offline checks and the 139-site source-refusal audit. Accounting revision 22 records the owned module-origin storage edge and associated work/bytes; all eight resulting deterministic execution resource observations remain stable through the syntax slices and final legacy follow-up. Passing reviewed-content CI was retained through parent-squash reconciliation; duplicate ancestry-only runs were cancelled.

Final main is 8533231, clean and synchronized, with wheel/isolated installed-CLI/interpreter-startup smokes and final-main CI passing. All eight task issues are closed and Project items are Done; completed branches are removed and the unrelated code-cells stash is preserved. The exact API contract, runtime metadata example and syntax exception example record the accepted profile.

A2 and #124 remain open for groups/except*, traceback objects/mutation, note rendering/export, write/delete attribute metadata, custom import provenance, parser-generated syntax fields, Unicode structured families and the declared host qualifications. User-class generator throw and the two delegated crash qualifications remain #120; broader displays/formatting remain #127. Package/library qualification, broader language/async reconciliation and candidate #36 keep their separate evidence gates. Certified package workloads and publication/deployment status are unchanged by these batches.

Unicode translation exception batch accepted — 2026-11-01

Three focused, dependency-ordered squash merges complete this finite #124 batch under Track A #600:

All 16 final regression jobs pass. The pinned CPython 3.14.7 exception corpus now records 543 cases: 535 semantic/error comparisons and eight explicit refusals, with 109 cases explicitly shared by core-source/1. Node and Chromium pass every drain, step and parked driver. Four existing host/crash qualifications remain outside successful differential counts. These are finite corpus/API observations, not an overall Python-completion percentage.

Local evidence includes 750 focused exception/function/operation/execution checks, nine runner tests, 83 isolated installed-wheel offline checks and the 139-site scope audit. All eight deterministic execution observations retain accounting revision 22. Parent-squash conflicts preserved the reviewed implementation and focused diffs; affected composition/translation checks and asset/scope audits passed after resolution. Passing implementation CI was retained through ancestry reconciliation.

Final main is d0b4462, clean and synchronized, with local wheel/isolated CLI/interpreter startup smokes and final-main CI passing. All three task issues are closed and Project items are Done; completed branches are removed and the unrelated code-cells stash is preserved. The exact exception contract and record translation example record the accepted surface.

A2 and #124 remain open for groups/except*, traceback objects/mutation, note rendering/export, remaining attribute/import/parser metadata, Unicode Encode/Decode structured families and the declared qualifications. User-class generator throw remains #120; broader representations/formatting remain #127. Package/library qualification and candidate #36 retain their separate evidence gates.

Unicode encoding and decoding delivery plan — 2026-11-01

Batch 1:

Batch 2:

Each finite slice requires pinned CPython 3.14.7 signatures, identity and validation-order cases, explicit profiles and retained boundaries, owned lifecycle/interruption/budget checks and full relevant PR CI. Begin ready dependent work while earlier CI runs; squash passing work in dependency order. Groups/except*, traceback objects, note export, automatic codec metadata and other remaining #124/#127 gates stay separately qualified. No publication or deployment is included.

Unicode encoding and decoding batches accepted — 2026-11-01

Two focused Track A batches are accepted through dependency-ordered squash merges.

Batch 1:

Batch 2:

All 16 jobs in the final reviewed-content regression run pass. The pinned CPython 3.14.7 exception corpus has 728 cases: 718 semantic/error comparisons and ten explicit refusals, including 173 explicitly shared core-source/1 cases. Node and Chromium pass every drain, step and parked profile/driver combination. Four existing host/crash qualifications remain outside these successful differential counts. These finite corpus/API observations do not measure overall Python completion.

Local validation includes 1,002 exception/function/operation/execution checks, nine runner tests, 106 isolated installed-wheel offline Chromium checks, the 139-site source inventory audit and asset/distribution/installed-CLI checks. All eight deterministic execution resource cases retain accounting revision 22. Passing unchanged-content CI was retained across squash reconciliation; only the two interrupted rendering jobs were retried, and redundant ancestry-only runs were cancelled. LA-36A restores the reviewed inventory without runtime changes; its committed scope/asset audits and retained full LA-36/LA-37 evidence cover the manifest-only correction.

Final main is 1153c0e, clean and synchronized, with final-main CI smoke passing. All seven task issues are closed and their Project items are Done; completed branches are removed and the unrelated code-cells stash is preserved. The exact exception contract, encoding example and decoding example record the adopted surface.

A2 and #124 remain open for groups/except*, traceback objects/mutation, note rendering/export, remaining attribute/import/parser metadata and automatic codec metadata, plus the declared qualifications. The latter has two named field-read boundaries in the corpus. User-class generator throw remains #120; general representations/formatting remain #127. Package/library qualification and candidate #36 retain their separate evidence gates. No publication or deployment occurred.

Runtime codec metadata delivery plan — 2026-11-01

Batch 1:

Batch 2:

Each slice requires CPython 3.14.7 identity/argument/span/reason cases, explicit source profiles, lifecycle/interruption/shared-budget evidence and relevant PR CI. Begin ready dependent work while earlier CI runs; squash passing work in dependency order. Wider codecs/error policies, groups/except*, traceback objects, note export and remaining native metadata stay separately owned under #124/#117. A2, package qualification and candidate/release gates remain open.

Runtime codec metadata batches accepted — 2026-11-01

Two focused Track A batches are accepted through six dependency-ordered squash merges.

Batch 1:

Batch 2:

All 16 jobs in the final reviewed-content regression run pass. Only a timed-out interpreter shard was retried; the other 15 passing results were retained. The same complete 96-check shard passes locally in 308 seconds. The pinned CPython 3.14.7 exception corpus records 852 cases: 844 supported semantic/error comparisons and eight explicit refusals, with 267 explicitly shared core-source/1 cases. Node and Chromium pass every drain, step and parked driver/profile combination. Five host/crash/cache qualifications remain outside successful differential counts; the added one-byte decoder snapshot identity qualification has the existing #117 owner. These finite observations do not measure overall Python completion.

Local evidence includes 1,244 focused exception/value/execution checks, 18 contract/asset/runner checks, 128 isolated installed-wheel offline checks and the 139-site scope audit. Final reconciliation passes 237 affected runtime checks and repeats all 128 offline checks. The audit caught and corrected an automatically restored obsolete UTF-8 inventory boundary before the reconciliation commit. All eight deterministic execution resource observations retain accounting revision 22. Reviewed contents and focused PR diffs were retained while appending parent squashes without rewriting shared history.

Final main is f3cbb47, clean and synchronized, with local wheel/isolated installed-CLI/interpreter-startup smokes and the final-main CI smoke passing. All six task issues are closed and Project items are Done; completed task branches are removed. The exception contract, runtime encoding example and runtime decoding example record the accepted surface.

A2 and #124 remain open for groups/except*, traceback objects/mutation, note rendering/export and remaining attribute/import/parser metadata. Wider codec/error-policy APIs and general bytes-cache identity remain #117; user-class generator throw remains #120; general representations/formatting remain #127. Package/library qualification and candidate/release gates retain their separate evidence requirements. No publication or deployment occurred.

Generic attribute mutation delivery plan — 2026-11-01

A focused stacked batch continues the remaining mutation metadata scope in #124:

Pinned CPython 3.14.7 reference cases, Node/Chromium drain/step/parked execution, interruption/shared budgets and PR CI qualify each finite slice. Other native/module/class mutation layouts, parser/import metadata, groups/except*, tracebacks and note export retain #124. General formatting retains #127; A2, library/package and candidate/release gates remain open. No publication or deployment is included.

Generic attribute mutation batch accepted — 2026-11-01

Five focused, dependency-ordered squash merges complete this finite Track A batch:

All 16 jobs in the corrected regression run pass. The pinned CPython 3.14.7 exception corpus records 940 scored cases: 929 supported semantic/error comparisons and 11 explicit refusals, with 267 cases explicitly shared by core-source/1. Every Node and Chromium drain/step/parked driver/profile combination passes. Six host/crash/cache qualifications remain outside successful differential counts. These finite corpus/API observations do not measure overall Python completion.

The exact additions cover name/obj selection for dictionary-free generic writes/deletions, read-only non-data attributes, empty slots, string-subtype names and explicitly replaced/reset instance dictionaries. Native object/type/module/method/super attribute wrappers validate native string content while preserving owned keys where adopted. Callback KeyError subclasses follow native mutation conversion; other owned hook/descriptor errors preserve their identities. Original-instance exact-string deletion fields retain two named shared-key/inline-storage refusals, and type-namespace subtype-key publication retains its hash gate. Other native/module/class mutation layouts remain separately qualified.

The additional crash qualification retains dictionary replacement from inside a key-comparison callback: 3 of 16 isolated pinned macOS arm64 probes exited with SIGSEGV (-11). Two Linux CI corpus invocations also crashed before case-identifying diagnostics existed. The input continues to pass safe interpreter and installed offline checks; automated reference runs exclude it. Failed reference processes now identify the fixture and exit code or timeout without suppressing the original failure.

Local acceptance includes the complete 940-case Node parked matrix, all newly adopted Chromium parked cases, 142 isolated installed-wheel offline checks, focused ownership/interruption/budget and original-frame checks, 11 diagnostic/runner checks and the 139-site scope audit. All eight deterministic execution resource observations retain accounting revision 22. Affected reconciliation checks and asset/scope audits pass; focused diffs and reviewed contents were retained without rewriting shared history. Passing corrected descendant CI supplies the batch evidence.

Final main is 06be41d, clean and synchronized, with local wheel/isolated installed-CLI/interpreter-startup smokes and final-main CI passing. All five task issues are closed and Project items are Done; completed branches are removed after immediate-dependent reconciliation. The exception contract and record mutation example record the accepted profile.

A2 and #124 remain open for groups/except*, traceback objects/mutation, note rendering/export, original-instance deletion fields, remaining native/module/class attribute/import/parser metadata and the declared qualifications. General formatting remains #127; generator throw and broader codec/bytes identity retain #120/#117. No new library or package workload is certified. Broader language/async/library reconciliation and candidate/release gates retain their separate evidence requirements. No publication or deployment occurred.

Module, class, callable and view metadata delivery plan — 2026-11-01

Two focused batches continue the remaining native attribute-mutation metadata scope in #124.

Batch 1:

Batch 2:

Each slice requires pinned CPython 3.14.7 identity/validation/callback-order cases, explicit source profiles, lifecycle/interruption/shared-budget checks and relevant PR CI. Begin ready dependent work while earlier CI runs; squash passing work in dependency order. Original-instance shared-key deletion metadata, type subtype-key publication, other native layouts, import/parser metadata, groups/except*, traceback objects and note export retain #124; broader formatting retains #127. A2, package/library and candidate/release gates remain open.

Module, class, callable and view metadata batches accepted — 2026-11-01

Two focused Track A batches are accepted through six dependency-ordered squash merges.

Batch 1:

Batch 2:

All 16 jobs in the final reviewed-content regression run pass. The first implementation also has its own complete passing regression run. Superseded ancestor runs were cancelled to release queued capacity; passing descendant coverage supplies their batch evidence.

The pinned CPython 3.14.7 exception corpus adds 282 cases and now records 1,222 scored cases: 1,211 supported semantic/error comparisons and 11 explicit refusals, with 267 cases explicitly shared by core-source/1. Every Node and Chromium drain/step/parked profile combination passes. Six existing host/crash/cache qualifications remain outside successful differential counts. These finite corpus/API results do not measure overall Python completion.

Exact additions distinguish populated missing-name failures from empty native fields on read-only descriptors/non-data attributes. Module, function, callable and view failures preserve adopted key identity; missing class deletions canonicalize subtype names to exact strings without hash/format callbacks. Dictionary comparison KeyError subclasses become fresh AttributeErrors while other owned callback errors preserve identity and dispatch order. Existing source profile boundaries remain explicit.

Local acceptance includes 1,661 focused exception/class/execution checks, the complete 1,222-case Node parked matrix, every newly adopted Chromium parked case, 164 isolated installed-wheel offline checks, 18 asset/runner/reference-diagnostic checks and the 139-site source audit. All eight deterministic execution resource observations retain accounting revision 22. Affected checks and engine/scope audits pass after conflict resolution. Focused diffs and reviewed contents were preserved through ordinary parent-squash merges without rewriting shared history; redundant ancestry-only CI was skipped after successful batch coverage.

Final main is c04de41, clean and synchronized, with local wheel/isolated installed-CLI/interpreter-startup checks and final-main CI smoke passing. All six task issues are closed and Project items are Done. Completed branches are removed after immediate-dependent reconciliation; the unrelated code-cells stash is preserved. The exception contract, namespace cleanup example and callable/view example record the accepted surface.

A2 and #124 remain open for groups/except*, traceback objects/mutation, note rendering/export, original-instance shared-key deletion, remaining native attribute/import/parser metadata and the declared qualifications. Type subtype-key publication retains its hash boundary; broader representations/formatting and remaining container/codec APIs retain #127/#116/#117. Library/package qualification, broader language/async reconciliation and candidate/release gates retain their separate evidence requirements.

Scalar, container, generator and iterator metadata delivery plan — 2026-11-01

Two focused batches continue the remaining native attribute-mutation metadata scope in #124.

Batch 1:

Batch 2:

Each slice requires pinned CPython 3.14.7 identity/validation/error-selection cases, explicit source profiles, lifecycle/interruption/shared-budget checks and relevant PR CI. Start dependent work while earlier CI runs; squash passing PRs in dependency order. Frames/code/cells, other native attribute/import/parser metadata, original-instance shared-key deletion, groups/except*, traceback objects and note export retain #124; broader formatting and container/codec APIs retain their existing owners. A2, library/package and candidate/release gates remain open.

Value, generator and iterator mutation batches accepted — 2026-11-01

Two focused Track A batches are accepted through nine dependency-ordered squash merges.

Batch 1:

Batch 2:

The complete corrected regression run passes all 16 jobs. The pinned CPython 3.14.7 exception corpus adds 519 scored cases and now records 1,741: 1,730 supported semantic/error comparisons and 11 explicit refusals, with 267 explicitly shared core-source/1 cases. Every Node/Chromium drain, step and parked profile combination passes. Six existing host/crash/cache qualifications remain outside those counts. These finite observations do not measure overall Python completion.

The exact additions cover selective name/obj fields for missing versus read-only scalar/container/buffer attributes, direct storage descriptors, generator state/name mutation and adopted native iterator layouts. Original receiver/string-subtype key identity survives args replacement; generator names retain string subtypes. Native object wrappers and direct source syntax agree. Subtype dictionaries, owned hooks and existing core admission remain explicit.

Local acceptance includes 2,167 exception/class/execution checks, all 1,741 Node parked cases, every newly adopted Chromium parked case, 192 isolated installed-wheel offline checks, the complete 44-check browser shard locally in 485.824 seconds, and the 139-site source audit. The eight deterministic execution resource observations remain unchanged. Affected source/ownership, diagnostic/runner, script and asset/scope checks pass after parent-squash reconciliation; unchanged passing evidence was retained without rewriting shared history.

Two fixed-30-second Linux differential subprocess timeouts led to the bounded case-count deadline in LA-58A. Two 15-minute browser-job cancellations reached the final compatibility command after preceding checks passed; LA-58B retains all commands/shards with a finite 20-minute conformance limit and the existing 15-minute integration limit. The corrected complete workflow passes.

Final main is b6d280c, clean and synchronized, with local wheel/isolated installed-CLI/interpreter-startup checks and final-main CI smoke passing. All nine task issues are closed and Project items are Done. Completed branches are removed after immediate-dependent reconciliation; the unrelated code-cells stash is preserved. The exception contract, value failure example and iterator failure example record the accepted surface.

A2 and #124 remain open for frame/code/cell/property/super mutation layouts, direct scalar storage descriptors, original-instance shared-key deletion, other native/import/parser metadata, groups/except*, traceback objects/mutation and note export. Wider formatting, container/iterator/codec APIs, user-class generator throw, library/package qualification and candidate/release gates retain their existing owners.

Reflective mutation milestone accepted — 2026-11-02

One complete milestone was implemented and validated locally, then pushed as a single feature commit and squash merged. All 678 shared local PR-check IDs pass, including all 388 Node checks, all 274 Chromium conformance checks and nine browser integrations. The final exception unit run passes 2,257 tests; isolated installed-wheel offline acceptance passes 215 checks, including original dynamic diagnostics, retained owner cycles, Stop/Restart and reduced-profile updates. The global source audit records 140 owned refusal sites. All eight deterministic execution resource observations retain revision 22. Failed local browser module-loading attempts were retried in one runner, with one residual check isolated to one worker; other successful evidence was retained.

The pinned CPython 3.14.7 exception corpus now records 1,828 cases: 1,808 supported semantic/error comparisons and 20 explicit refusals, with 267 explicitly shared core-source/1 cases. Every Node/Chromium drain, step and parked profile combination passes. Six existing host/crash/cache qualifications remain outside successful differential counts. These are finite corpus/API observations, not an overall Python-completion percentage.

Missing frame/code/cell/frame-locals-proxy/property/super attributes preserve the original receiver and reflected string-subtype key independently of args. Read-only attributes and direct int/float/complex storage descriptors leave native name/obj fields absent; writable cell/property fields and numeric subclass dictionaries retain their behavior. Custom key hash/equality on the reflective layouts and frame tracing/jumping retain explicit refusals. The exact contract and runnable example are in docs/interpreter-exceptions.md and examples/interpreter_reflective_failures.py.

Final main is 56e19c1, clean and synchronized, with main smoke passing. Merge reused the complete local validation; the automatically triggered duplicate PR workflow was cancelled. #756 is complete and its Project item is Done. A2/#124 remain open for #757, original-instance shared-key deletion, other native/import/parser metadata, groups/except*, traceback objects/mutation and note export. Broader formatting, container/iterator/codec APIs, library/package certification and candidate/release gates retain their separate owners; no package workloads gain certification from this milestone.

Native attribute key milestone accepted — 2026-11-02

One complete milestone was implemented and validated locally, published as a single feature commit, and squash merged. All 678 shared local PR-check IDs pass on macOS arm64 with pinned CPython 3.14.7 and Node 24.19.0: Python/runtime/distribution checks, all 388 Node checks, all 274 Chromium conformance checks, nine browser integrations and browser preparation. Four browser worker-startup interruptions passed isolated one-worker retries; unchanged passing evidence was retained. The final descriptor-binding/type-snapshot browser cases pass, and isolated installed-wheel offline acceptance passes 223 checks. The automatically triggered duplicate PR workflow was cancelled; merge reused the local results.

The exception corpus adds 615 cases and adopts six former reflective-key refusals. It now records 2,443 cases: 2,387 supported semantic/error comparisons and 56 explicit refusals, with 267 explicitly shared core-source/1 cases. All Node and Chromium drain/step/parked profile combinations pass. Seven host/crash/cache qualifications remain outside successful differential counts. These finite results do not measure overall Python completion.

Existing setattr/delattr/native mutation wrappers now run owned key hash, equality and truth callbacks before selecting the actual stored descriptor, including aliases. Lookup errors are suppressed before storage or selective AttributeError fields; descriptor and dictionary errors retain their normal behavior, including independent storage hashing. Writable native fields, original key/receiver identity, callback-visible partial changes, source hooks/descriptors, original receiver-type capture and function-name subtype identity are covered. Parked collection, cancellation/close, shared limits, modules/dynamic source, suspended cleanup and offline Stop/Restart pass. The source audit retains 140 owned refusal sites and all eight revision-22 resource observations remain stable.

A first rejected native type-key comparison remains an explicit refusal after its effects. Sixteen isolated seeded probes produced two or three comparisons for the same int doc mutation, so that raw input earns no supported differential credit. #759 owns that qualification. The exact contract and runnable example record the accepted surface.

Final main is 5072ae1, clean and synchronized; its automatic main smoke passes. The merged feature branches are removed. #757 is complete and its Project item is Done. A2/#124 remain open for #759, original-instance shared-key deletion, other native/import/parser metadata, groups/except*, tracebacks and note export. Exact builtin/API coverage above does not add a certified package workload; library/package and candidate/release gates retain their existing owners.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions