Skip to content

Latest commit

 

History

History
220 lines (161 loc) · 19 KB

File metadata and controls

220 lines (161 loc) · 19 KB

Umbrella Capability Readiness

This document projects the checked umbrella readiness source. It explains why broad capability rows remain reserved or when they are ready for promotion. It does not create public Objective-C 3.0 behavior claims.

Authoritative inputs:

  • docs/support/umbrella_readiness.json
  • docs/support/capability_matrix.json
  • docs/support/evidence_map.json
  • schemas/objc3c-umbrella-readiness-v1.schema.json

Consumer rule: Umbrella readiness may explain why a reserved umbrella row is blocked or ready for promotion; it cannot create support claims unless the capability matrix row itself is implemented with evidence.

runtime.object-model.full-realization

  • Current state: reserved
  • Target state: implemented
  • Readiness state: blocked
  • Intended public meaning: Objective-C 3.0 object metadata, class/category/protocol realization, property and ivar reflection, registration replay, debugger-grade reflection, source identity, and runtime query behavior are complete as an integrated runtime surface rather than a set of narrow owner rows.

Forbidden Overclaims

  • Full object-model runtime support from class graph source alone.
  • Debugger-grade reflection from private snapshots or generated manifests alone.
  • Objective-C 2 runtime compatibility.
  • Swift or C++ runtime mirroring.
  • Issue comments, PR bodies, or tmp reports as support evidence.

Prerequisite Rows

  • runtime.object-model.interface-method-table must be implemented: Interface method table behavior is a prerequisite for public object-model realization.
  • runtime.object-model.class-realization must be implemented: Class and metaclass graph behavior must remain implemented and evidence-backed.
  • runtime.object-model.category-protocol-registration must be implemented: Category attachment and protocol registration must remain implemented and evidence-backed.
  • runtime.object-model.property-ivar-reflection must be implemented: Property and ivar reflection must remain implemented and evidence-backed.
  • runtime.object-model.registration-replay must be implemented: Runtime registration reset and replay must remain implemented and evidence-backed.
  • runtime.object-model.bounded-query-snapshots must be implemented: Bounded runtime query snapshots must remain implemented and evidence-backed.
  • runtime.public-api.reflection must be implemented: Public C reflection API behavior is required before the umbrella can be public.

Readiness Requirements

Source Anchors

  • satisfied Class and metaclass graph runtime source remains the object-model realization owner. (path: native/objc3c/src/runtime/classes/class_graph.cpp)
  • satisfied Image registration and replay source remains the runtime registration owner. (path: native/objc3c/src/runtime/images/registration.cpp)
  • satisfied Public runtime reflection API source remains checked in and evidence-linked. (path: native/objc3c/src/runtime/public/objc3_runtime_reflection.h)
  • satisfied Combined object-model readiness contract ties class, metaclass, category, protocol, property, ivar, selector, reflection, and replay evidence to checked source anchors. (path: tests/tooling/fixtures/object_model_closure/full_realization_combined_readiness_contract.json)
  • satisfied Runtime public reflection exposes bounded debug-anchor identity records for class, category, protocol, property, ivar, and method rows. (path: tests/tooling/fixtures/object_model_closure/debug_anchor_identity_replay_contract.json)
  • satisfied Checked object-model debugger proof links source-map records, native line-table rows, debug-map runtime anchors, runtime reflection debug anchors, and value-inspection records. (path: tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)
  • satisfied The object-model debugger proof command now compiles the integrated object-model fixture through the canonical frontend path and validates the emitted manifest, source graph, object artifact, runtime inventory, artifact inspector, fail-closed debug-map boundary, bounded compiler-owned object-model source identity rows, and production source-map/native-line-table publication. (path: scripts/check_objc3c_object_model_debugger_proof.py)
  • blocked Full source-map publication beyond bounded identity rows, emitted native debug info, and debugger stepping integration must still be owned by the production artifact path. (blocker_id: object-model-debugger-source-identity)

Public Commands

  • satisfied Runtime object-model conformance remains replayable through the npm bridge. (command: npm run objc3c -- validate-object-model-conformance)
  • satisfied Public runtime reflection API remains replayable through the npm bridge. (command: npm run objc3c -- validate-public-runtime-reflection-api)
  • satisfied Object-model debugger source-map, line-table, debug-anchor, value-inspection linkage, production frontend artifact/runtime inventory proof, bounded compiler-owned object-model source identity rows, and source-map/native-line-table publication remain replayable through the npm bridge. (command: npm run objc3c -- validate-object-model-debugger-proof)
  • blocked Debugger-grade statement stepping over emitted native debug line tables must be completed on the production compiler artifact path. (blocker_id: object-model-debugger-source-identity)

Positive Fixtures

  • satisfied Class realization behavior fixture remains checked in. (path: tests/native/runtime/object_model/class_realization_contract.objc3)
  • satisfied Property and ivar reflection behavior fixture remains checked in. (path: tests/native/runtime/object_model/property_ivar_reflection_contract.objc3)
  • satisfied Combined class/metaclass/category/protocol/property/ivar/selector/reflection/replay fixture remains checked in. (path: tests/native/runtime/object_model/full_realization_combined_reflection_replay_contract.objc3)
  • satisfied Debugger-grade object inspection is covered by an integrated source-map, line-table, debug-anchor, and reflection replay fixture. (path: tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)

Negative Fixtures

  • satisfied Invalid category attachment remains rejected by checked negative evidence. (path: tests/tooling/fixtures/native/execution/negative/category_attachment_collision.objc3)
  • satisfied Private testing snapshots remain internal and cannot satisfy public reflection or debugger-grade support. (path: tests/tooling/fixtures/object_model_closure/full_realization_combined_readiness_contract.json)
  • satisfied Malformed object-model metadata remains fail-closed and cannot become reflectable support. (path: tests/tooling/runtime/protocol_category_invalid_metadata_probe.cpp)
  • satisfied Stale or blocked reset/replay generation evidence remains lifecycle rejection/provenance rather than umbrella support. (path: tests/tooling/runtime/deterministic_reset_replay_probe.cpp)
  • satisfied Foreign runtime compatibility and Objective-C 2 compatibility remain explicit non-goals until implemented by their own rows. (path: docs/support/hard_cutover_capability_truth.md)

Runtime Probes

  • satisfied Public reflection API probe remains checked in. (path: tests/tooling/runtime/public_runtime_reflection_api_probe.cpp)
  • satisfied Registration reset/replay generation probe remains checked in for lifecycle boundary evidence. (path: tests/tooling/runtime/multi_image_registration_reset_replay_probe.cpp)
  • satisfied Runtime-owned debug-anchor replay probe ties reflection rows to source/debug identity and missing/stale anchor boundaries. (path: tests/native/runtime/object_model/debug_anchor_identity_replay_probe.cpp)
  • satisfied Debugger value inspection proves runtime metadata through a checked source-map/debug-anchor replay fixture plus a canonical frontend artifact-inspector, bounded object-model source-identity, and source-map/native-line-table publication probe over the integrated object-model source. (path: tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)

Abi Governance Rows

  • satisfied Public reflection ABI is represented by the current public reflection API row. (capability_id: runtime.public-api.reflection)
  • satisfied Debugger-grade reflection ABI additions are governed through debug-anchor ABI v2, minimum reader ABI v2, caller snapshot-size negotiation, and append-only source/debug artifact fields. (path: tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)

Docs

  • satisfied Hard-cutover capability truth continues to state the reserved umbrella boundary. (path: docs/support/hard_cutover_capability_truth.md)
  • satisfied Object-model closure runbook remains checked in. (path: docs/runbooks/objc3c_object_model_closure.md)
  • satisfied Combined readiness test remains checked in to enforce lifetime, source-anchor, and negative-boundary evidence. (path: tests/tooling/test_runtime_object_model_full_realization_readiness.py)
  • satisfied Object-model debugger proof checker remains covered by fail-closed tests. (path: tests/tooling/test_runtime_object_model_full_realization_readiness.py)

Generated Output Boundary

  • Source truth allowed: false
  • Rule: Generated outputs may summarize checked source, fixtures, and matrix/evidence rows, but cannot satisfy object-model full-realization readiness by themselves.
  • Unsupported sources:
    • tmp/
    • generated markdown projections
    • issue comments
    • PR bodies
    • unlinked replay reports

Promotion Blockers

  • object-model-debugger-source-identity: Bounded runtime debug-anchor identity, replayable object-model value inspection, a canonical frontend artifact/runtime inventory probe, compiler-owned source identity rows, and production source-map/native-line-table publication now exist, but full debugger-grade object-model stepping is not yet complete on the production artifact path.
    • Full source-map publication beyond bounded object-model identity rows and emitted native debug info for the integrated object-model program.
    • Production debugger statement-stepping integration over emitted native debug info.

Final Promotion Criteria

  • The umbrella matrix row changes to implemented in docs/support/capability_matrix.json.
  • All required prerequisite rows remain implemented with evidence-map rows.
  • All readiness requirements are satisfied.
  • No promotion blockers remain.
  • Debugger-grade reflection and source identity are covered by public npm-bridge commands without relying on private snapshots or generated reports.

language.advanced-runtime-closure

  • Current state: reserved
  • Target state: implemented
  • Readiness state: blocked
  • Intended public meaning: Objective-C 3.0 blocks, ownership, ARC cleanup, errors, async/actors, cancellation, property behaviors, metaprogramming host boundaries, and interop runtime replay are complete as a combined runtime-backed language surface rather than isolated narrow rows.

Forbidden Overclaims

  • Advanced runtime closure from any single blocks, async, error, property, or macro row.
  • Cross-feature ownership correctness from generated reports alone.
  • Foreign runtime compatibility from interop package replay alone.
  • Broad runtime closure without integrated positive and negative fixtures.
  • Issue comments, PR bodies, or tmp reports as support evidence.

Prerequisite Rows

  • language.blocks.escape-capture-legality must be implemented: Block capture legality must remain implemented and evidence-backed.
  • runtime.blocks.copy-dispose-invoke must be implemented: Block runtime copy, dispose, and invoke helpers must remain implemented and evidence-backed.
  • runtime.blocks.byref-forwarding must be implemented: Byref forwarding behavior must remain implemented and evidence-backed.
  • language.arc-cleanup.integration must be implemented: ARC cleanup integration must remain implemented and evidence-backed.
  • runtime.errors.live-bridge-cleanup must be implemented: Live error bridge cleanup must remain implemented and evidence-backed.
  • runtime.concurrency.async-actors must be implemented: Async and actor runtime behavior must remain implemented and evidence-backed.
  • runtime.concurrency.actor-mailbox-isolation must be implemented: Actor mailbox isolation must remain implemented and evidence-backed.
  • language.metaprogramming.property-behavior-semantics must be implemented: Property behavior semantic materialization must remain implemented and evidence-backed.
  • runtime.metaprogramming.host-cache-boundary must be implemented: Macro host cache boundary behavior must remain implemented and evidence-backed.
  • runtime.modules.imported-runtime-packaging-replay must be implemented: Imported runtime packaging replay must remain implemented and evidence-backed.

Readiness Requirements

Source Anchors

  • satisfied Block runtime copy/dispose/invoke source remains checked in. (path: native/objc3c/src/runtime/blocks/block_invocation.cpp)
  • satisfied Task and actor runtime sources remain checked in. (path: native/objc3c/src/runtime/concurrency/task_runtime_operations.cpp)
  • satisfied Error bridge runtime source remains checked in. (path: native/objc3c/src/runtime/errors/error_bridge_operations.cpp)
  • satisfied Combined runtime closure is traceable through checked compiler-owned source graph, runtime-state, ABI, and debug-map contract records. (path: tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)
  • satisfied The #8199 validator checks canonical source/debug-map, native line-table, runtime-state, ABI, and compiler-owned source graph records for the combined runtime fixture. (path: tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_source_debug_map.json)

Public Commands

  • satisfied Block ARC runtime acceptance remains replayable through the npm bridge. (command: npm run objc3c -- test-runtime-acceptance-block-arc)
  • satisfied Concurrency runtime conformance remains replayable through the npm bridge. (command: npm run objc3c -- validate-concurrency-conformance)
  • satisfied Cross-lane runtime closure fixture and negative-matrix checks are replayable through the npm bridge. (command: npm run objc3c -- validate-advanced-runtime-closure)

Positive Fixtures

  • satisfied Escaping owned-object block copy/dispose fixture remains checked in. (path: tests/tooling/fixtures/native/execution/positive/escaping_owned_object_block_copy_dispose.objc3)
  • satisfied Live continuation runtime integration fixture remains checked in. (path: tests/tooling/fixtures/native/live_continuation_runtime_integration_positive.objc3)
  • satisfied A combined blocks, ownership, errors, async, actor, cancellation, property behavior, macro provenance, and package replay program exists. (path: tests/native/runtime/advanced_closure/combined_positive.objc3)

Negative Fixtures

  • satisfied Weak object capture mutation remains rejected by checked negative evidence. (path: tests/tooling/fixtures/native/weak_object_capture_mutation_negative.objc3)
  • satisfied Missing runtime replay proof remains rejected by checked negative evidence. (path: tests/tooling/fixtures/native/missing_replay_proof_rejected.objc3)
  • satisfied The #8199 negative matrix covers 17 cross-feature rejected or reserved cases, including ownership, blocks, async, actor mailbox payloads, cancellation, error, property/macro conflicts, package replay, and broad scheduler overclaim boundaries. (path: tests/native/runtime/advanced_closure/negative_matrix.contract.json)
  • satisfied The #8199 native artifact contract checks the combined fixture against the real direct-native compiler path and requires object, LLVM IR, manifest, runtime registration, runtime metadata, and error replay artifacts while preserving the unclaimed native link/run boundary. (path: tests/tooling/fixtures/advanced_runtime_closure/native_artifact_contract.json)

Runtime Probes

  • satisfied Combined runtime-state records tie blocks, ownership, async cancellation, actor mailbox, error bridge, property behavior, macro host cache, package replay, and source/debug records to checked owners without promoting the native executable umbrella. (path: tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)
  • blocked Native executable link/run for the full advanced-runtime umbrella fixture remains unclaimed. (blocker_id: advanced-runtime-native-link-run)

Abi Governance Rows

  • satisfied Block runtime ABI must remain represented by implemented block runtime rows. (capability_id: runtime.blocks.copy-dispose-invoke)
  • satisfied Combined block, async, error, actor, property, macro, and package replay ABI interactions are represented by the checked #8199 identity contract. (path: tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)

Docs

  • satisfied Hard-cutover capability truth continues to state the reserved umbrella boundary. (path: docs/support/hard_cutover_capability_truth.md)
  • satisfied Errors and result semantics remain documented as narrower rows. (path: spec/PART_6_ERRORS_RESULTS_THROWS.md)
  • satisfied Concurrency semantics remain documented as narrower rows. (path: spec/PART_7_CONCURRENCY_ASYNC_AWAIT_ACTORS.md)
  • satisfied The #8199 checker enforces combined runtime-state/source-graph/debug-map/ABI interaction coverage without promoting the umbrella row. (path: tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)

Generated Output Boundary

  • Source truth allowed: false
  • Rule: Generated outputs may summarize checked source, fixtures, and matrix/evidence rows, but cannot satisfy advanced-runtime closure readiness by themselves.
  • Unsupported sources:
    • tmp/
    • generated markdown projections
    • issue comments
    • PR bodies
    • unlinked replay reports

Promotion Blockers

  • advanced-runtime-native-link-run: Checked positive, runtime-state, source-graph, source/debug-map, ABI, native object/IR/manifest artifact, and 17-case negative-matrix proof exists, but native executable link/run for the full advanced-runtime umbrella fixture is not yet a public support claim.
    • Canonical native executable link/run acceptance for the integrated advanced-runtime umbrella fixture.
    • Public npm-bridge evidence that the integrated native executable path matches the checked #8199 contracts without promoting unsupported combinations.

Final Promotion Criteria

  • The umbrella matrix row changes to implemented in docs/support/capability_matrix.json.
  • All required prerequisite rows remain implemented with evidence-map rows.
  • All readiness requirements are satisfied.
  • No promotion blockers remain.
  • Combined runtime positive and negative programs prove cross-feature semantics through public npm-bridge commands.
  • Native executable link/run evidence exists for the integrated advanced-runtime umbrella fixture without relying on generated reports as source truth.