Record verified retained entry producer gates and independent evidence
This commit is contained in:
@@ -687,3 +687,23 @@ general comparison. Compiler prologue observations and existing stack controls
|
||||
bound evidence only; this adds no universal heap or stack guarantee.
|
||||
Entry/metadata growth timing and the remaining scratch inventory require their
|
||||
own explicit decision before actual emitted-output acceptance can be enabled.
|
||||
|
||||
## 2026-09-25 — strengthen the existing retained-entry metric at named producers
|
||||
|
||||
The [entry producer contract](analysis-entry-producer-contract-20260925.md)
|
||||
preserves U's declared grammar events and the conservative M inventory. A new
|
||||
explicit route checks C+U+M before selected growth; old routes retain their
|
||||
timing. Prefer grammar scalar counts plus a prepaid projector quota to another
|
||||
unmetered AST-counting frontier. Seven-slot declaration envelopes already include
|
||||
synthetic bodies; actual nested fields/values contribute separately. Quota
|
||||
consumption neither recharges nor refunds M, and independent lengths/metadata
|
||||
must reconcile. No saturating correction may create a successful witness.
|
||||
|
||||
[Windows evidence](experiments/analysis-entry-producer-20260925/README.md)
|
||||
preserves both precompile latch fixes, the syntax-cap versus counting-scratch
|
||||
evaluator correction and the initial test-only Debug-bound compile failure.
|
||||
All six new tests pass with unchanged inherited dispositions and strict Clippy.
|
||||
Additional scalar state changes compiler frames, so old stack controls and
|
||||
actual prologues remain evidence requirements; a logical slot is not a native
|
||||
stack byte. Remaining independently bounded parser scratch requires an explicit
|
||||
scope decision, not an inferred universal heap-metering requirement.
|
||||
|
||||
+14
-3
@@ -57,7 +57,18 @@ preserved. [Packaged GUI evidence](reviews/prerelease37-native-gui-20260924.md),
|
||||
their bounded reviewed scopes. State label congestion, explicit transition-form
|
||||
Cancel and the preserved launcher refusals remain described in final validation.
|
||||
|
||||
## Local private text-producer checkpoint — 2026-09-25
|
||||
## Local private parser-producer checkpoints — 2026-09-25
|
||||
|
||||
The subsequent **29417130c71f70c4eaefe8ed4c879efba78eb72c** on
|
||||
`codex/analysis-entry-producers-956atf-20260925` adds the reviewed
|
||||
[retained-entry producer route](analysis-entry-producer-contract-20260925.md).
|
||||
Its [Windows evidence](experiments/analysis-entry-producer-20260925/README.md)
|
||||
passes six new cases and strict core Clippy. Full library remains failed at
|
||||
265 passed/16 inherited failed, preserving all275 prior outcomes, all16 failure
|
||||
bodies (numeric thread identifiers only normalized) and all ten stack controls. Formatting is
|
||||
unchanged. Initial test-only compilation failure is preserved. This source and
|
||||
packet also remain local-only under the server-storage publication blocker.
|
||||
Actual output verification/accepted ownership and public editing remain open.
|
||||
|
||||
Source **97a8703adc75467a7f8e75f5c6cb00ca542b707c** on
|
||||
`codex/analysis-text-producers-956atf-20260925` adds the separate private
|
||||
@@ -71,8 +82,8 @@ are preserved. Format remains the same inherited failure. Failure output is
|
||||
This source and evidence are local-only: Gitea rejected publication for server
|
||||
disk exhaustion. The last confirmed remote evidence commit is `b2ef3f54`;
|
||||
emission source `8d52dab9` is published separately. This checkpoint does not
|
||||
change the integrated preview. Entry producers, remaining scratch and actual
|
||||
output verification/accepted ownership are still incomplete.
|
||||
change the integrated preview. Remaining scratch policy and actual output
|
||||
verification/accepted ownership are still incomplete.
|
||||
|
||||
## Earlier local contribution checkpoint and evidence
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
*.md -text
|
||||
*.py -text
|
||||
*.txt -text
|
||||
*.json -text
|
||||
@@ -0,0 +1,70 @@
|
||||
# Independent retained-entry oracle
|
||||
|
||||
Basis: source97a8703adc75467a7f8e75f5c6cb00ca542b707c and accepted `harness/analysis-entry-producer-contract-20260925.md`. Counts are authored from literal grammar, not parser output. Only standalone literal string lengths/substrings were calculated; no compiler or parser executed. All sources below use UTF-8 and LF except the explicitly marked chain suffixes. Entry is `main.arcadia`.
|
||||
|
||||
Define ID1 through ID4 as36-character UUIDs `00000000-0000-0000-0000-000000000001` through `...0004`. `doc(body)` is exactly `arcadia 8;\nproject p "Project" id "ID1" {\nBODY\n}\n`, replacing ID1 with its UUID and BODY with the literal body. Source spans are half-open UTF-8 byte offsets. Use generous unchanged byte/token/reference/model policies for entry controls; bytes4096 suffices for these small fixtures and avoids previously established UUID/text preemption.
|
||||
|
||||
## Empty and three-file controls
|
||||
|
||||
E is `doc("")`,78 bytes, SHA256 `48fe360b7b5f57867086e7f6fa47c2913765c1261e558e7ebec688a1f842a65e`. Its significant tokens are exactly `arcadia`, `8`, `;`, `project`, `p`, quoted Project, `id`, quoted ID1, `{`, `}`: ten. U1 is the project event; there are no ordinary values, fields, lexical owners or projected declarations. C.entries1; M=F1+tokens10=11. New entry-mode syntax cap13 succeeds;12 refuses the complete projection/token-end reservation in main at raw default span0..0, ordinary diagnostic0..1, line1 column1. Complete resolver17/16 is a separate boundary; failure there uses project-header span11..73, pathmain, not the syntax0..1 location. Its peak is syntax13 plus four catalog slots; the final retained total returns to13. These are complete-project positives, with empty maps and description, aliasp/nameProject/schema8/ID1.
|
||||
|
||||
H is exactly:
|
||||
|
||||
```text
|
||||
main.arcadia = doc("include \"part.arcadia\";")
|
||||
part.arcadia = "include \"last.arcadia\";\r\n"
|
||||
last.arcadia = "//é\r\n"
|
||||
```
|
||||
|
||||
Source lengths101,25,6, total132. C.entries3, C.text180 (source132 + three12-byte keys +12-byte entry). Significant token counts13,3,0; raw scanner work24,5,2 is separate. U3 is project plus two includes; value maps, owners and projection are zero. M=F3+tokens16=19; combined syntax25. Main boundary reaches C3+U2+M16=21. Part adds U1 and three token-end slots, reaching25; last adds nothing. Syntax25 succeeds,24 refuses at part default span0..0 transported to0..1 (line1 column1). Full resolver29/28 remains separate and fails at main project-header11..73. Traversal is main/part/last; canonical output order last/main/part. Use roomy text4096; do not reuse the old phase-only byte214 cap with newly enabled text producers.
|
||||
|
||||
With an actual explicitly borrowed C0 guard, the corresponding syntax totals are E12 and H22. This is the explicit combined mode, not permission to reuse legacy separated checks. No extra field/file count is added at resolver transfer.
|
||||
|
||||
## Prefix producer refusals
|
||||
|
||||
Owner fixture body is exactly `oa_activity a "A" id "ID2" { }`, source141 bytes. Declaration start75. Immediately before its owner push: C1+F1+U2=4. Cap4 rejects that owner reservation before Vec mutation; raw attribution starts75, ordinary diagnostic75..76, line3 column1. Cap5 merely clears this prefix. A complete syntax needs29: tokens17, U2, owners1, values0, projection7, M26 plus C1.
|
||||
|
||||
Value fixture body is exactly `oa_activity a "A" id "ID2" { description ""; }`, source157 bytes. Description key begins137; empty quoted value149..151. Immediately before its first value-end insertion: C1+F1+U4+owner1=7. Cap7 rejects with raw value span149..151, ordinary diagnostic149..150, line3 column75. Cap8 merely clears this prefix. Full syntax needs37: tokens20, U4, owner1, value1, projection9=7+field1+value1; M32 and C1. A roomy complete syntax positive is required separately from the refused prefix.
|
||||
|
||||
Both aggregate messages are exactly `Source8 lowering entry limit exceeded.` with codeinvalid_source, no related diagnostics. These tests must check unchanged map/Vec on refusal through a finite observer or directly reviewed helper. A final error/count alone does not establish the before-mutation order.
|
||||
|
||||
## Combined syntax-only nested inventory
|
||||
|
||||
Exact complete source:
|
||||
|
||||
```text
|
||||
arcadia 8;
|
||||
project p "Project" id "00000000-0000-0000-0000-000000000001" {
|
||||
oa_activity a "A" id "00000000-0000-0000-0000-000000000002" { payload { items [@p, uuid "00000000-0000-0000-0000-000000000001", { flag true; }]; };
|
||||
oa_activity b "B" id "00000000-0000-0000-0000-000000000003" { }
|
||||
}
|
||||
node n id "00000000-0000-0000-0000-000000000004" { }
|
||||
}
|
||||
```
|
||||
|
||||
Include the final LF. Source344 bytes, SHA256 `83c53d51c2ebca01d5771a3d66cf57037b808f43f4c113daf3404736cdc1d69c`; actual one-file C=(entries1, occurrences0, text368). This is **syntax-only**: arbitrary payload and top-level node are not claimed semantically admissible. Do not unwrap full Project resolution as this fixture's positive control.
|
||||
|
||||
Declarations in ordinary preorder: a at75, b at223 nested inside a, n at289 at project level. Lexical owner occurrence indices are `[None, Some(0), None]`; count3 regardless of UUID uniqueness. Each declaration contributes seven projected envelope slots, including its synthetic body. The node's four-role header still contributes the same conservative seven, not six. The open-declaration coordination stack contributes no additional U/M.
|
||||
|
||||
| Actual Ast value | Start | End | Map insertion order |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| payload Record |145|221|6|
|
||||
| items Array |153|218|5|
|
||||
| @p Reference |154|156|1|
|
||||
| historical UUID |158|201|2|
|
||||
| array member Record |203|217|4|
|
||||
| true Atom |210|214|3|
|
||||
|
||||
All six keys are distinct. Three actual fields are payload, items, flag. Their keys begin137,147,205 respectively. Synthetic declaration bodies are not Ast values and add no seventh value/map entry. Ordinary reference @p contributes one value event, not a typed-reference work charge.
|
||||
|
||||
Significant-token inventory is ten project tokens plus seven a-envelope tokens, nineteen payload tokens, seven b-envelope tokens and six n-envelope tokens =49. The nineteen payload tokens, in order, are: `payload { items [ @ p , uuid "ID1" , { flag true ; } ] ; } ;`. Quoted UUID is one token. Nested declaration closure belongs to its own envelope; a's closure is already in its seven. No comments or EOF token are included.
|
||||
|
||||
U=project1+declarations3+fields3+values6=13. Projection P=declaration envelopes21+fields3+values6=30. M=F1+tokens49+value ends6+owners3+P30=89. Final combined C+U+M=103. Before the complete projection reservation, combined live total24=C1+F1+U13+values6+owners3; tokens49+P30 reserve79 atomically. Consequently syntax103 succeeds and102 refuses in main at default span0..0, transported0..1, before ends/header/field/value projection. Every earlier entry prefix is below102. Use byte4096 and roomy other policies.
|
||||
|
||||
Projected quota consumes7 at a, then payload field1, its Record value1, items field1, Array value1, Reference1, HistoricalUuid1, nested Record1, flag field1, Atom1; then7 at b and7 at n: total30, zero remaining. Quota subtraction does not change M. Map/owner counts are retained conservatively even when their temporary containers drop. No model admission or resolved-entry peak is asserted for this fixture.
|
||||
|
||||
## Internal and compatibility controls
|
||||
|
||||
Repeated value-map key replacement must reserve zero new M and preserve length; label it injected helper behavior, not a source occurrence. Too-small quota, leftover quota, checked arithmetic overflow and latched refusal are also explicit internal controls. Duplicate real fields fail the whole grammar parse, so no successful final BTree inventory discards a counted field. Do not salvage such a failure by refunding to manufacture a successful witness.
|
||||
|
||||
Use existing complete OA/SA fixtures for roomy whole-Project/Usage/numeric parity against the text-only route; the combined fixture above covers the specific retained inventory only. Preserve legacy/carried/text-only timings and policies, source bytes, actual guard lifetime, and all existing small-stack cases. These literals are independent expectations to guide tests, not runtime acceptance evidence.
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"baseline": "97a8703adc75467a7f8e75f5c6cb00ca542b707c",
|
||||
"baseline_archive_sha256": "252ea94e7c7f500a2afb3d0fa47c43a051f39d9c844328337289eea0c463becd",
|
||||
"checker_sha256": "792b2eff0a9288a73bad9495b05ca06927ca0717a176dce5913206ffa9731080",
|
||||
"inputs": 557,
|
||||
"unchanged_old_outcomes": 275,
|
||||
"added_passed": 6,
|
||||
"added_names": [
|
||||
"language::analysis_source::mixed::carried::entry_producer::explicit_zero_and_actual_owner_preserve_complete_oa_sa_and_old_routes",
|
||||
"language::analysis_source::mixed::carried::entry_producer::internal_overflow_latch_and_syntax_work_precedence",
|
||||
"language::analysis_source::mixed::carried::entry_producer::internal_reserve_and_mutate_helpers_leave_collections_unchanged",
|
||||
"language::analysis_source::mixed::carried::entry_producer::nested_inventory_and_prepaid_projection_quota",
|
||||
"language::analysis_source::mixed::carried::entry_producer::owner_and_value_refuse_at_the_original_producer",
|
||||
"language::analysis_source::mixed::carried::entry_producer::real_owner_syntax_and_resolver_boundaries_are_separate"
|
||||
],
|
||||
"full_passed": 265,
|
||||
"full_failed": 16,
|
||||
"identical_failure_blocks_after_pid_only_normalization": 16,
|
||||
"identical_fmt_sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d",
|
||||
"artifact": {
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-416e35542925bed6.exe",
|
||||
"bytes": 42898944,
|
||||
"sha256": "adb0bd907f614c512bc3883dfe9a88ca0e4268638d85f4899ad07a5c1d3ec4e9"
|
||||
},
|
||||
"environment": {
|
||||
"CARGO_TARGET_DIR": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/analysis-checked-save-target-20260913",
|
||||
"CARGO_BUILD_JOBS": "1",
|
||||
"CARGO_INCREMENTAL": "0",
|
||||
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
|
||||
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup",
|
||||
"RUSTFLAGS": null,
|
||||
"RUSTC": null,
|
||||
"RUSTUP_TOOLCHAIN": null,
|
||||
"ARCADIA_CODEC_LIFECYCLE_PHASE": null,
|
||||
"RUST_MIN_STACK": null
|
||||
},
|
||||
"receipts": {
|
||||
"entry-focused-2941713-1": {
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"exit": 0,
|
||||
"outcomes": 6,
|
||||
"listing": 0,
|
||||
"log_sha256": "fb1cb5d33b724c54687c56439b01fcf4d1c7a393dd08d9cd789702625acdad06",
|
||||
"result_sha256": "f8b1ad7859ae58f7b9cc618a22e603a922bb1d4ab4c73b84525c4267ea30a88b",
|
||||
"inputs_sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c",
|
||||
"launcher_sha256": "43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc"
|
||||
},
|
||||
"entry-full-2941713-1": {
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"exit": 101,
|
||||
"outcomes": 281,
|
||||
"listing": 0,
|
||||
"log_sha256": "47fef6f46d136be0e53f48f8ff03a96be73635fc4c3f57350c1e641ad44b01c4",
|
||||
"result_sha256": "0bbf4cc28d8832e0cdc4e674296db0b71c7da38a0ac1e3c7ecf34e9d19ab6a62",
|
||||
"inputs_sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c",
|
||||
"launcher_sha256": "43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc"
|
||||
},
|
||||
"entry-list-2941713-1": {
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"exit": 0,
|
||||
"outcomes": 0,
|
||||
"listing": 281,
|
||||
"log_sha256": "4552e8512731a2fb3dbaba02b671c32837018298b5d8b52057af7fa372f2f50e",
|
||||
"result_sha256": "5374aea8aba0790bcfb6fa4dee179a4c5ddc0df2efd602e876acbc8c84ae59d1",
|
||||
"inputs_sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c",
|
||||
"launcher_sha256": "43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc"
|
||||
},
|
||||
"entry-clippy-2941713-1": {
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"exit": 0,
|
||||
"outcomes": 0,
|
||||
"listing": 0,
|
||||
"log_sha256": "3f18ecfb5fac754c6660d217d1f87752ee99a321fff525a6113ff7deb6ee2baa",
|
||||
"result_sha256": "edb45b1706f09e89ab2f0584a9708ab7e808e7f1048bde2b1439c4f0d49d439d",
|
||||
"inputs_sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c",
|
||||
"launcher_sha256": "43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc"
|
||||
},
|
||||
"entry-fmt-2941713-1": {
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"exit": 1,
|
||||
"outcomes": 0,
|
||||
"listing": 0,
|
||||
"log_sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d",
|
||||
"result_sha256": "a7f1c7ec70ec4a6872dc8a387d1a8c5b3b424f125d21a59a6320b3c2ac17c772",
|
||||
"inputs_sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c",
|
||||
"launcher_sha256": "43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc"
|
||||
}
|
||||
},
|
||||
"scope": "Committed declared inputs, pinned baseline archive, raw logs and current artifact bytes; no Cargo/executable execution. Launcher semantics require independent source review."
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
# Independent entry-producer package readback
|
||||
|
||||
Pass for this finite evidence package; no unresolved material discrepancy. Reviewed source `29417130c71f70c4eaefe8ed4c879efba78eb72c` and the current artifact before releasing the source freeze. This audit used file reads, independent data comparisons and read-only Git. It did not execute archived helpers, Cargo, a compiler, debugger or product/test executable, and did not access the network.
|
||||
|
||||
The immutable archive is exactly **434,046 bytes / 53 unique members**, SHA256 `19a87583a8dc4c22f35999044de5cac2c2c97b04fb457d2c3df3f6d2c054c865`. CRC checks pass; every member name, byte count and SHA256 matches [manifest.json](manifest.json), whose SHA256 is `074fbdf32ef7012a31d56ed723f04813edc5b4c5ba2b9fed260b6f2f7610600c`. Names have no absolute paths or parent traversal. All 51 file-backed members equal their original local files; the other two members exactly equal immutable Git diffs from97a8703 to a629ae0 and2941713. All seven readable mirrors equal both archive and original review files.
|
||||
|
||||
The baseline full/list/fmt members also match the previously frozen text-producer archive, SHA256 `252ea94e7c7f500a2afb3d0fa47c43a051f39d9c844328337289eea0c463becd`. Independently checked all556 baseline and557 initial/final declared inputs against their respective immutable Git blobs. All557 final files also matched raw disk; HEAD was2941713 with no tracked changes. Focused/full/list bind the same current **42,898,944-byte** executable, SHA256 `adb0bd907f614c512bc3883dfe9a88ca0e4268638d85f4899ad07a5c1d3ec4e9`, independently reread without execution. This is declared-input/artifact concordance, not exhaustive compiler or undeclared-dependency provenance.
|
||||
|
||||
Reparsed all nine gate receipts and raw logs, checking log/input/launcher hashes, source stability, exact recorded outcomes and listings. The five README commands equal the final argument arrays. Final results are six focused passes, **265 passed /16 failed**,281 unique listed/runtime names, strict core all-target Clippy exit0 and format exit1. All275 prior outcomes and ten existing stack controls are preserved. All16 failure bodies match97 after replacing only the numeric thread identifier in Rust panic headers. Format output is byte-identical: eight blocks in five files, SHA256 `c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d`. Recorded jobs1/incremental0 and absent stack override agree with the stated environment. The captured launcher records unfiltered combined output and actual return codes; its source/input/helper checks support the stated bindings.
|
||||
|
||||
The initial a629ae0 E0277 compile refusal is preserved, with zero outcomes/artifacts. The exact a629ae0→2941713 diff changes only the quota test's `unwrap_err` extraction to explicit Err/Ok matching and its implementation note; production and assertions remain unchanged. The archived source/test reviews retain both precompile latch repairs and the separate-roomy-owner inventory evaluator correction. None is presented as an erased or successful initial run.
|
||||
|
||||
Read all six baseline/final prologue records and their capture helpers as source. Their source/artifact/helper identities and raw immediates agree with [STACK-OBSERVATIONS.md](STACK-OBSERVATIONS.md): selected parser changes sum2,048 bytes; binding2520 plus prefix11720 stays14,240; continuation13416 is a separate alternative. Projector616→1032 and ordinary584→80+1000 are accurately distinguished from parser phases. Worker7368 and shim56 are not confused. These partial compiler reservations omit other stack costs and do not establish total headroom or a new128KiB strong-mode pipeline guarantee. Prior projector observations are correctly described as newly captured baseline evidence, not retroactively part of the older archive.
|
||||
|
||||
Reviewed README, current STATE/DECISIONS statements and readable reviews for scope; checked102 local Markdown links with no missing targets. Parent corrected the minor README/STATE thread-identifier terminology; archived historical checker labels remain unchanged. Final reviewed README SHA256 is `6a8f82a51b9ed4bee14172c1d17aaea4a2d3cb87a7b9bf1ebd4b9e7802ea99b6`. The documents accurately preserve local-only publication status, failed inherited gates, finite retained-accounting exclusions and unfinished output acceptance/public editing. The reported remote storage failure and last remote commit are contextual prior observations, not independently revalidated by this offline audit.
|
||||
@@ -0,0 +1,81 @@
|
||||
# Private retained-entry producers — Windows evidence
|
||||
|
||||
Tested source **29417130c71f70c4eaefe8ed4c879efba78eb72c**, branch
|
||||
`codex/analysis-entry-producers-956atf-20260925`, based on
|
||||
`97a8703adc75467a7f8e75f5c6cb00ca542b707c`. Source and evidence are **local-only**:
|
||||
Gitea rejected publication with server `No space left on device`. The last
|
||||
confirmed remote evidence commit remains `b2ef3f54`. This does not change the
|
||||
published Windows preview or establish public source8 editing.
|
||||
|
||||
The [contract](../../analysis-entry-producer-contract-20260925.md) adds an explicit
|
||||
combined text/entry producer route from actual carried authority. It preserves
|
||||
U syntax events and M's existing logical file/token-end/value-end/owner/projection
|
||||
inventory. Prospective checks precede selected growth; checked grammar counters
|
||||
and prepaid projection quota replace the old counting-work Vec on this route.
|
||||
Independent final inventory and once-only resolver transfer remain required.
|
||||
|
||||
[evidence.zip](evidence.zip): **434,046 bytes, 53 members**, SHA256
|
||||
`19a87583a8dc4c22f35999044de5cac2c2c97b04fb457d2c3df3f6d2c054c865`.
|
||||
[manifest.json](manifest.json) pins every raw member: original/final gates,
|
||||
launchers, input manifests, predecessor logs, two exact source patches, contract,
|
||||
design reviews and compiler-prologue observations. Seven readable review/checker
|
||||
mirrors match the archive exactly. The executable is identified, not included.
|
||||
Historical absolute paths identify the builder environment, not shared peer files.
|
||||
|
||||
## Observed gates
|
||||
|
||||
Windows x86_64 gnullvm, Rust/Cargo1.98.1, LLVM-MinGW20260908, one Cargo job,
|
||||
`CARGO_INCREMENTAL=0`. No Linux/WSL build or check. Exact argument arrays and
|
||||
environment are in `gates/*.result.json`; readable commands from the pinned checkout:
|
||||
|
||||
```text
|
||||
cargo test --locked --offline -p oa-core --lib entry_producer -- --test-threads=1
|
||||
cargo test --locked --offline -p oa-core --lib -- --test-threads=1
|
||||
cargo test --locked --offline -p oa-core --lib -- --list
|
||||
cargo clippy --locked --offline -p oa-core --all-targets -- -D warnings
|
||||
cargo fmt --all -- --check
|
||||
```
|
||||
|
||||
Six new tests pass; full library **fails with265 passed/16 inherited failed**,
|
||||
281 unique names. All275 prior outcomes and all ten existing stack controls
|
||||
are unchanged. Strict core all-target Clippy passes. Workspace formatting still
|
||||
fails with the byte-identical inherited eight blocks in five files. All16 failure
|
||||
bodies match the97a8703 baseline after numeric thread-identifier normalization only;
|
||||
the previous8d→97 framework-hint difference is not a new exception here.
|
||||
|
||||
All557 declared inputs match immutable Git and raw disk through final gates.
|
||||
Focused/full/list use the same42,898,944-byte executable, SHA256
|
||||
`adb0bd907f614c512bc3883dfe9a88ca0e4268638d85f4899ad07a5c1d3ec4e9`.
|
||||
Initiala629ae01 compilation failed before tests: quota-test unwrap_err required
|
||||
Debug on a successful EditDeclaration vector. Finaltest uses explicit Err/Ok
|
||||
matching; production and expected outcomes are unchanged. Original compiler
|
||||
failure/receipt/source patch remain archived; no initial artifact/pass is claimed.
|
||||
|
||||
## Review and finite scope
|
||||
|
||||
[Source review](SOURCE-REVIEW.md) records two precompile error-latch repairs:
|
||||
preserve the original failure during an overflow request, and check a zero-delta
|
||||
map replacement before mutation. [Test review](TEST-REVIEW.md) preserves the
|
||||
evaluator correction: an inventory walk requires scratch beyond exact syntax
|
||||
caps, so a separate roomy same-source owner is used. No live policy is widened.
|
||||
[Literal oracles](ENTRY-ORACLE.md) cover syntax13/12 and25/24 separately from
|
||||
resolver17/16 and29/28; owner/value prefix refusals4/7; and nested record, array,
|
||||
reference, UUID, nested declaration and node envelopes at syntax103/102.
|
||||
The nested fixture is syntax-only, not a semantically admitted Project.
|
||||
|
||||
[Runtime review](RUNTIME-REVIEW.md), [readback JSON](ENTRY-PRODUCER-RUNTIME-READBACK.json)
|
||||
and [reviewed checker](inspect_runtime.py) reconcile actual logs, baseline archive,
|
||||
names, inputs, launcher semantics and current artifact. [Stack observations](STACK-OBSERVATIONS.md)
|
||||
record selected parser-chain reservation growth totaling2,048 bytes, separate
|
||||
projector changes and unchanged repaired binding/prefix sizes. These are partial
|
||||
compiler prologues, not measured total headroom. New tests use the normal harness
|
||||
stack; old pipeline setup limitations and prior-source repeated runs keep their
|
||||
original scopes. No new universal128KiB guarantee follows.
|
||||
|
||||
Existing traversal/delimiter/open/Pratt/duplicate-name scratch, token storage
|
||||
under its independent ceiling, numeric/decoder internals, model/validator heap,
|
||||
allocator overhead and native stack remain outside this retained metric. Pending
|
||||
projection instrumentation can change under an artificial direct call after a
|
||||
latched error, but actual parser paths immediately propagate and cannot return a
|
||||
poisoned witness. Actual emitted-output admission, whole-intent equality,
|
||||
accepted ownership and public/history integration remain separate unfinished work.
|
||||
@@ -0,0 +1,43 @@
|
||||
# Independent entry-producer runtime readback
|
||||
|
||||
Source `29417130c71f70c4eaefe8ed4c879efba78eb72c` passes the specified bounded regression readback. No checker exception or relaxation was needed. This is not a wholly passing suite:16 inherited tests fail and workspace format exits1. No compiler, test binary, debugger or launcher was executed by this reviewer.
|
||||
|
||||
## Readback identity and gates
|
||||
|
||||
Executed only the prepared read-only `inspect_runtime.py`, using bundled Python `-I -B` with arguments `29417130c71f70c4eaefe8ed4c879efba78eb72c 2941713 6`. Checker SHA256 `792b2eff0a9288a73bad9495b05ca06927ca0717a176dce5913206ffa9731080` was unchanged. Exclusive result `ENTRY-PRODUCER-RUNTIME-READBACK.json` SHA256 `f45c86d42a1d89c4cf2b22342f2c41dcd4514622f0bd2367101f219367d1c66c`; checker exit0.
|
||||
|
||||
| Gate | Exit | Raw evidence |
|
||||
| --- | ---: | --- |
|
||||
| Focused |0|Six entry-producer tests passed,275 filtered |
|
||||
| Full |101|281 unique results:265 passed,16 failed, zero ignored |
|
||||
| List |0|281 unique names, exactly full runtime inventory |
|
||||
| Strict core all-target Clippy |0|Locked/offline `-D warnings` completed |
|
||||
| Workspace format |1|Identical prior raw output, SHA256 `c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d` |
|
||||
|
||||
All275 predecessor outcomes are unchanged. Exactly six new names occur, all passed, and focused is exactly that new set. All16 inherited failure bodies are identical after numeric thread-PID replacement only. There is no backtrace-hint exception: the97 baseline already contains the previously documented hint removal. All ten existing stack-named controls in the final full raw log passed.
|
||||
|
||||
The checker binds baseline source `97a8703adc75467a7f8e75f5c6cb00ca542b707c` full/list/fmt logs and receipts byte-for-byte to the locally committed text-producer ZIP, SHA256 `252ea94e7c7f500a2afb3d0fa47c43a051f39d9c844328337289eea0c463becd`. This review makes no remote publication claim.
|
||||
|
||||
All five receipts bind the clean current source,557 declared inputs, raw Git blob versus disk equality, unchanged inputs through each command, exact commands/environment and the same captured launcher. Manifest SHA256 `3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c`. Final focused/full/list record the same actual current executable,42,898,944 bytes, SHA256 `adb0bd907f614c512bc3883dfe9a88ca0e4268638d85f4899ad07a5c1d3ec4e9`; checker reread those bytes. Individual log/receipt pins are preserved in the readback JSON. Full raw log SHA256 `47fef6f46d136be0e53f48f8ff03a96be73635fc4c3f57350c1e641ad44b01c4`.
|
||||
|
||||
## Launcher review
|
||||
|
||||
Read actual captured launcher SHA256 `43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc`, without executing it. It hardpins2941713, checks clean tracked source and raw declared files before launch, captures exact helper bytes, records unfiltered stdout/stderr and actual process return code, checks source/input/helper identity afterward, and records executable hashes from actual Cargo Running lines. The readback separately re-parses results and rejects duplicate/missing names and incomplete summaries rather than trusting the recorder's summary alone.
|
||||
|
||||
Commands remain locked/offline oa-core library focused/full/list, locked/offline core all-target Clippy, and workspace format. Jobs1/incremental0 and baseline environment match; RUST_MIN_STACK, RUSTFLAGS, custom RUSTC, RUSTUP_TOOLCHAIN and lifecycle override are absent. This establishes recorded declared-input/artifact concordance, not independent compiler provenance or completeness of every undeclared/untracked dependency.
|
||||
|
||||
## Original compile failure retained
|
||||
|
||||
Initial source `a629ae01d49bb3cb482a047eb41832ad4246a5c6` focused attempt exited101 after26.156 seconds, before any tests. Raw E0277 identifies entry_producer.rs:241 `unwrap_err` requiring Debug for successful `Vec<(Uuid, EditDeclaration)>`. Receipt has zero outcomes and no artifacts. Independently hashed raw log `cfd534fb67405666ba7a86aa3aa3164655d803b00d4e80f09893d1e312c2a58a`, receipt `0490608967cc91ac5e666453304a657a01743508d3d98aa9b3e469482b3629f0`; log matches receipt pin.
|
||||
|
||||
The previously reviewed2941713 repair replaces only that extraction with explicit Err/Ok matching, retaining both quota refusal assertions; production unchanged, implementation note updated. Final test SHA256 `ebdcd69eae66103a7ed596356e5f629099399d944b5659ace54edc9f558e7bc9`. Original failed evidence is not replaced by later successful execution.
|
||||
|
||||
## Stack observations and scope
|
||||
|
||||
Read parent STACK-OBSERVATIONS and raw prior/final stack, active and projector JSON disassemblies. Final selected reservations match the stated values: parse_impl12888, parse_with_profile216, parse280, accepted1608, indexed1608, actual worker7368, Parser::unit12456. Their selected changes versus97 sum2048 bytes. Typed/numeric/Pratt selected reservations remain unchanged; binding2520 plus prefix11720 is14240, and continuation13416 is an alternative, not simultaneously added.
|
||||
|
||||
Projector records expand from nine baseline to17 final specializations. Raw mixed projector changes616→1032 (+416). Ordinary old body584 becomes wrapper80 plus producer1000=1080 selected reservation bytes; outer wrapper remains72. Specialized token/value/fields are120/536/216; new quota-consume120; injected quota test has a separate1000-byte specialization. These immediate prologue reservations exclude pushes and other runtime overhead; neither their sum nor record count is total live stack/headroom. Projection occurs after Parser::unit returns, so combining both phases as a single measured chain would be false.
|
||||
|
||||
All old stack controls passed in this full run, but the six new entry tests run on ordinary test-harness stacks; this does not establish a new128KiB strong-mode pipeline guarantee. Prior extra process repetitions, debugger observations and historical failures retain their own source/scope. No additional runtime, retry or stack override was used for this review.
|
||||
|
||||
Admission is limited to these finite retained-entry evaluators and unchanged baseline disposition. It does not establish all-heap accounting, accepted rewritten output, public constructor authority, GUI behavior or unresolved scratch-domain closure.
|
||||
@@ -0,0 +1,56 @@
|
||||
# Independent retained-entry producer source review
|
||||
|
||||
2026-09-25. Reviewed frozen production against baseline `97a8703adc75467a7f8e75f5c6cb00ca542b707c` and selected contract SHA256 `0dd194e155f3ea3b6795601e199c2a63d7edff7644f3a75942801f7329a1751c` (`harness/analysis-entry-producer-contract-20260925.md`). This is local-only source review, before compiler/runtime gates. Test authoring remained in progress.
|
||||
|
||||
Initial frozen files, relative to `crates/oa-core/src/`:
|
||||
|
||||
| File | SHA256 |
|
||||
| --- | --- |
|
||||
| `language.rs` | `eba0d326f70a90ff1ff3097b927dfa3d3efd49b3cf56a0cc55ac14c35d93f248` |
|
||||
| `language/analysis_source/budget.rs` | `f1f3571fac2b6e3891c7d02a3ea1a513122ca3259afbe28fc17315c1c4db2847` |
|
||||
| `language/analysis_source/mixed.rs` | `cab97109e90e51eea690b3579b38faf1cd697244941485bbd851e415b60b25ea` |
|
||||
| `language/analysis_source/mixed/carried.rs` | `0d0f44264a3f1dbc8d80b861c7156ab71bac36cecd86ee4a77ecddfe22f1f5a9` |
|
||||
|
||||
## Resolved internal latch finding
|
||||
|
||||
`Budget::producer_entry_overflow` initially replaced `failed` unconditionally, unlike aggregate checks which first call active(). A direct internal control can latch a limit error and then overwrite it with an overflow error. Recommended narrow repair: return the existing error when present. All actual parser callers propagate their first error immediately, so this is an internal sticky-error consistency finding, not an observed successful-parse bypass or runtime failure.
|
||||
|
||||
Parent-authorized repair independently read back: the helper now returns a clone of the existing failure before constructing/installing overflow. Final `budget.rs` SHA256 is `573636cbe24f9aadfbba1e68625fd9d861ace26c7c85b5b6530c53085e3baf4f`, superseding the initial table's budget hash. All other three production hashes were rechecked and remain exact. The finding is resolved; no remaining concrete source blocker was found. The implementer reports a dedicated internal regression assertion, whose execution remains pending.
|
||||
|
||||
## Prospective accounting and authority
|
||||
|
||||
The new fixture route consumes the same sealed CarriedInput and derives actual bundle, carried guard and exact inherited policies together. It selects both text and entry producers even for explicit C=0. Existing legacy, phase-only and text-only callers select entry mode false. No mutable policy, arbitrary public baseline, owning wrapper or accepted-output route is introduced. The private parse_impl boolean combination is supported by its current controlled callers; no caller enables entries without text/guard authority.
|
||||
|
||||
Existing text/guard and total-source-byte checks run first. C.entries and initial M=F are checked and installed together before Traversal construction. Failed installation leaves optional entry state absent. Budget::entry retains its existing U-only work/active check before the aggregate C+U+M+1 check; U increments only after both pass. reserve_metadata checks the whole prospective total before changing M. Checked aggregate sums prove its subsequent M += delta cannot overflow. Usage remains U alone, with no new token/reference/numeric events. The original nonlatching phase-check helpers are unchanged.
|
||||
|
||||
The disabled reserve_metadata path is an exact accounting no-op: it neither calls active(), changes counters nor adds failure precedence to old routes. All production calls to fallible reserve, projection counting and projector operations propagate immediately. In particular, a value-end refusal exits value() before its projection counter; an owner refusal exits before its seven-slot pending count or declaration insertion. No partial witness escapes.
|
||||
|
||||
## Named producers and independent reconciliation
|
||||
|
||||
State now hides value_ends and lexical_owners from the ordinary parser. Its value_end helper checks key presence, reserves only a new key, then inserts; repeated keys replace the existing endpoint without another M entry. lexical_owner reserves before push and counts occurrences rather than unique IDs. Actual source search finds the only mutations inside these helpers. Their reserved counters match actual map/Vec lengths after every completed file.
|
||||
|
||||
The plain reserved_values/reserved_owners increments are bounded, including when entry mode is off: each successful ordinary value/declaration has an earlier unchanged Budget::entry event; unique successful value offsets and owner occurrences therefore cannot exceed U, which is bounded by the candidate hard entry ceiling (262,144). A repeated map key does not increment. In stronger mode the admitted M bound also applies. They do not approach usize overflow through accepted input. Artificially corrupting those private counters is not real provenance.
|
||||
|
||||
Checked pending projection grows only at the three grammar sites: seven per ordinary declaration, one per completed field, one per completed value. Project headers/includes/descriptions bypass those sites; nested fields and values naturally contribute once. The seven declaration envelope includes its synthetic body and remains seven for a node header. Failed duplicates abort the entire parse, so no successful replacement/refund is hidden.
|
||||
|
||||
The stronger projection boundary atomically reserves significant-token count plus pending projection before constructing ends/headers/fields/values. It does not call the old borrowed-work Vec count. Other modes retain that existing counting path. The scalar prepaid quota consumes seven before header/declaration growth, one before each field and one before each actual value, before recursive children. Synthetic bodies are covered by seven and do not consume an extra value slot. Quota underflow/leftover returns an explicit invariant error; quota consumption never charges or refunds M. Token-end slots are charged once, separate from the existing significant-token storage bound.
|
||||
|
||||
After each file, actual map/owner lengths plus token count and quota-reconciled projection count must match the Budget M delta. The independently accumulated metadata field must equal total producer M at syntax completion. File-record moves preserve F rather than adding a second reservation. Existing resolver code is unchanged: seed C once, then reserve U+M once in its distinct ledger; text transfer/reconciliation remains unchanged. No combined seed followed by duplicate syntax addition exists.
|
||||
|
||||
## Legacy behavior, stack and pending gates
|
||||
|
||||
Without entry mode, grammar projection calls do nothing, quota is None, and the original token-end/value-map/owner/projected metric and phase timing remain. Shared projection retains its traversal, text hooks, spans and identity checks. A new forwarding wrapper and scalar fields do alter native layout even on old paths; no unchanged-stack claim follows from semantic equivalence. Parent must measure Budget/State/projector generic frames as well as prior active parser/wrapper frames, and run all old small-stack controls without allowances or test changes. There is no new heap-backed owner or generic visitor framework.
|
||||
|
||||
Compiler/privacy/borrow checks, independent real cap and span oracles, quota/overflow/internal controls, whole Project/Usage parity, old diagnostic disposition, strict Clippy and format comparison remain pending. This review neither runs nor substitutes for those gates. The retained logical metric excludes allocator capacity, physical file-table overlap, traversal/open-declaration/delimiter/Pratt and duplicate-name scratch, numeric/decoder internals, model/validator heap and native stack. Actual emitted-output verification and accepted ownership remain open.
|
||||
|
||||
## Committed replacement-helper repair and final source binding
|
||||
|
||||
Independently read back production committed in `a629ae01d49bb3cb482a047eb41832ad4246a5c6`, unchanged in current clean HEAD `29417130c71f70c4eaefe8ed4c879efba78eb72c`. The latter changes only the new test file and implementation note for the reported compile-time Debug-bound issue; it changes no production operation. No compiler or test process was run by this reviewer.
|
||||
|
||||
The second internal latch finding is resolved: `State::value_end` now computes whether its key is new, always calls reserve_metadata with delta 0 or 1, and only then increments its new-key counter and inserts/replaces the endpoint. Enabled delta-zero admission calls active() before mutation, preserving the original latched failure and existing map even for replacement. New keys still reserve exactly one M; replacements reserve no additional M. Disabled old modes still receive the same no-op budget hook and preserve their previous accounting/diagnostic behavior.
|
||||
|
||||
Final `mixed.rs` SHA256 is `6db2e6cc414becd32d80868653651e31de3036a6d8bf63a2c7b0c055ca7cc314`, superseding the initial table. The other production hashes were independently rechecked: language.rs `eba0d326f70a90ff1ff3097b927dfa3d3efd49b3cf56a0cc55ac14c35d93f248`; budget.rs `573636cbe24f9aadfbba1e68625fd9d861ace26c7c85b5b6530c53085e3baf4f`; carried.rs `0d0f44264a3f1dbc8d80b861c7156ab71bac36cecd86ee4a77ecddfe22f1f5a9`.
|
||||
|
||||
Bounded internal limitation: State::projection does not first call active(), so a direct fault-injection caller that deliberately continues after a previous error can increment the pending projection scalar when addition fits. That scalar is grammar instrumentation, not U, live M, an allocation or an accepted witness. All actual parser calls immediately propagate earlier errors; the final budget.active() also prevents a poisoned witness from escaping. Overflow still preserves the first latched error through the repaired overflow helper. No reachable parser invariant violation or acceptance bypass was found, so no third repair is required for this prerequisite. This does not promise terminal immutability for every internal instrumentation method under arbitrary post-error calls.
|
||||
|
||||
No concrete source blocker remains. Exact-cap syntax tests and roomy independent counting-walk tests must remain distinct because the walk has its own transient entry frontier; this source review does not authorize changing a live policy to make either pass. Compiler/runtime acceptance and publication remain parent-owned and separately evidenced.
|
||||
@@ -0,0 +1,57 @@
|
||||
# Selected Windows compiler prologues and stack controls
|
||||
|
||||
Actual final source `29417130c71f70c4eaefe8ed4c879efba78eb72c`, Rust1.98.1 gnullvm,
|
||||
unoptimized test profile, one job, no incremental compilation or stack override.
|
||||
Focused/full/list bind the same42,898,944-byte executable, SHA256
|
||||
`adb0bd907f614c512bc3883dfe9a88ca0e4268638d85f4899ad07a5c1d3ec4e9`.
|
||||
Parent captured symbols and64-byte entry disassembly through llvm-nm/objdump;
|
||||
each helper verifies the actual executable against its source-bound receipt first.
|
||||
These are read-only observations, not debugger/runtime frame measurements.
|
||||
|
||||
| Selected reservation | Baseline97a8703 | Final2941713 | Delta |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| mixed::parse_impl |11560|12888|1328|
|
||||
| mixed::parse_with_profile |200|216|16|
|
||||
| mixed::parse |280|280|0|
|
||||
| project::tests::accepted |1528|1608|80|
|
||||
| ordinary_index::tests::indexed |1560|1608|48|
|
||||
| Actual ordinary small-stack worker closure |7176|7368|192|
|
||||
| Same-named test shim |56|56|0|
|
||||
| Parser::unit |12072|12456|384|
|
||||
| State::parse_typed |6952|6952|0|
|
||||
| declarations::parse |22664|22664|0|
|
||||
| syntax::binding |2520|2520|0|
|
||||
| syntax::prefix |11720|11720|0|
|
||||
| syntax::continue_task |13416|13416|0|
|
||||
| Exact::parse_decimal |2296|2296|0|
|
||||
| Exact::parse_literal |952|952|0|
|
||||
| Budget::exact |632|632|0|
|
||||
| Cursor::exact_literal |776|776|0|
|
||||
|
||||
The changed selected reservations sum to2,048 bytes. This is not the complete
|
||||
call-chain size, native stack headroom or all live compiler temporaries. The
|
||||
prefix and continuation phases are alternatives: do not add both to binding.
|
||||
The previously repaired binding/prefix sum remains14,240 for those two entries.
|
||||
|
||||
Projection is a separate phase after Parser::unit returns. The old mixed
|
||||
with_text projector reserved616 bytes; the new direct with_producers mixed
|
||||
specialization reserves1,032 (+416). The ordinary nonmixed with_text body was584;
|
||||
its new forwarding wrapper80 plus producer body1,000 gives1,080 selected bytes
|
||||
(+496 across that chain). Existing outer edit_positions_from_tokens remains72.
|
||||
Specialized Positions::token/value/fields remain120/536/216 respectively; new
|
||||
quota consume reserves120. The injected-quota test has its own1,000-byte
|
||||
specialization. Closure ordinals change with source and are not semantic IDs.
|
||||
|
||||
Baseline projector observations were captured from the actual97 executable
|
||||
before this build overwrote it; they belong to this checkpoint's evidence, not
|
||||
the previously frozen text-producer archive. Existing baseline parser/active
|
||||
observations are copied unchanged. Raw symbol/address/output records and the
|
||||
three inspect helpers are included in the evidence archive.
|
||||
|
||||
The actual full294 run completes265 passed/16 inherited failed. All ten existing
|
||||
stack-named controls pass; no stack allowance, existing test or limit is relaxed.
|
||||
New entry cases use the ordinary test harness stack, not a separately promised
|
||||
128KiB strong-mode pipeline. Earlier source checkpoints' extra fresh-process
|
||||
repetitions and historical setup overflows retain their own scopes. No new
|
||||
debugger run, repeated process loop, complete headroom proof or universal
|
||||
stack-safety claim is made here.
|
||||
@@ -0,0 +1,43 @@
|
||||
# Independent entry-producer test review
|
||||
|
||||
Reviewed six functions in `crates/oa-core/src/language/analysis_source/mixed/carried/entry_producer.rs` against the accepted entry contract and independently authored ENTRY-ORACLE.md. Current reviewed test SHA256 `67839578b8969ed22a749445f41af057223126ad68f504018aeed7021636fc66`. Baseline production97a8703; implementation is locally pending. No compiler, parser, binary or debugger executed by this reviewer. Compilation/runtime acceptance remains with the parent.
|
||||
|
||||
Disposition: no remaining test blocker in these reviewed bytes after correcting the evaluator's extra inventory-walk scratch demand. Final formatting or source/test changes require rebinding the hash before this becomes final.
|
||||
|
||||
## Concrete pre-execution correction
|
||||
|
||||
Initial test SHA256 `e134d5f162ae5036a1a76a4db6075aaad1324543169ecbf1e3786dd7c91f1b1b` called `project::text_producer_inventory(...).unwrap()` on syntax with fully occupied entry caps29,37 and103. That helper invokes `accounting::syntax`, whose `Walk::push` reserves its existing scratch entry (`mixed/project/accounting.rs:118–123`). It would refuse after C+U+M already equaled the cap, even though the intended syntax producer check succeeded. This was an evaluator phase conflation, not evidence against the authored syntax caps.
|
||||
|
||||
Implementer corrected the tests: exact29/37/103 syntax controls remain, asserting literal C+U+M; the independent existing inventory runs on a separate same-source roomy4096 fixture and still must equal29/37/103 after scratch release. The original cap-minus-one and prefix refusals were not weakened. E/H have no position/AST work and their exact-cap inventory checks remain valid.
|
||||
|
||||
## Oracle comparison
|
||||
|
||||
| Test family | Independent assessment |
|
||||
| --- | --- |
|
||||
| E and H syntax/resolve | C/U/M tuples1/1/11 and3/3/19, syntax13/12 and25/24, resolver17/16 and29/28 match the oracle. Syntax refusal pathsmain/part0..1 are distinguished from resolvermain11..73. Successful transfers retain C once and unchanged Usage/numeric work. |
|
||||
| Owner/value timing | Prefix4 at75..76 and7 at149..150 match literal grammar positions. Complete syntax positives29/37 are separate; next-integer prefix completion is not falsely claimed. Direct reserve/mutate helper tests check unchanged actual map/Vec on new-entry refusal. |
|
||||
| Nested syntax-only | Literal344-byte source matches the authored body: U13, M89,49tokens, three owners `[None,Some(0),None]`, three envelopes, element/node actual header lengths5/4 while both reserve7. Exact103/102 limits and six value spans145..221,153..218,154..156,158..201,203..217,210..214 match. No full Project admission is claimed for arbitrary payload/top-level node. |
|
||||
| Quota and helper controls |29 underflow/31 leftover surround authored projection30. They are explicitly injected invariants, not alternate valid source inventories. Existing-key replacement consumes no new M, new-key/owner refusals preserve collections. Overflow, sticky error, atomic initial install and syntax-work precedence are separately checked. |
|
||||
| OA/SA and compatibility | Supported oa_property/sa_property grammar provides complete resolution parity versus text-only for actual owner and explicit borrowed C0. Compares whole Project/warnings/storage, Usage/numeric/T/M and original source. Old legacy11 versus new C0 combined12 and old phase/text-only owner refusal locations remain distinct. |
|
||||
|
||||
Byte policy4096 avoids the previously observed grammar UUID/text peaks and source-byte prechecks; other policies remain the same inherited fixture profile. The nested fixture's arbitrary ordinary payload is correctly limited to syntax evidence. Calls to the existing inventory walk are independent reconciliation, not production-output-derived expected numbers; expected totals are literal authored constants. Whole-Project equality against text-only is a parity control, not an independently authored new semantic model oracle; existing prior complete-model tests retain that role.
|
||||
|
||||
Test access is within the carried descendant module, using ancestor-private state/helpers and existing language functions. I found no obvious privacy/type-shape blocker by inspection; that is not a compilation result.
|
||||
|
||||
## Source-adjacent qualification
|
||||
|
||||
Reported to parent: State::value_end initially calls reserve_metadata only for a new key. A replacement after an already latched failure could therefore bypass Budget.active and mutate/return Ok. The actual parser propagates the first Err immediately, so this is not a demonstrated successful-witness escape. Parent/source reviewer owns whether the accepted latch contract requires active checking before replacement; the initial tests follow a failed map reservation with an owner reservation and do not cover that replacement path. Any repair/test addition should be reviewed and hash-bound below.
|
||||
|
||||
No tests were edited by this reviewer. This review establishes consistency of finite evaluators, not execution success, complete storage-domain closure or accepted-output authority.
|
||||
|
||||
## Final frozen rebind
|
||||
|
||||
Final formatted test SHA256 `6d37e6976d9d164e70a9947de2d6655b57bd7ff6a5cf0fb5a0eb1dcbbb4417f7` supersedes the intermediate67839578 hash above. Independently reread the bounded delta: value_end now calls reserve_metadata with delta0 for an existing key before mutation, and the test attempts replacement10..99 after the earlier new-key20 refusal. It requires original offset20/message, unchanged map10→12 and unchanged M2. This resolves the source-adjacent qualification without changing real fixture caps or expected inventories. Parent/implementer source mixed.rs pin is `6db2e6cc414becd32d80868653651e31de3036a6d8bf63a2c7b0c055ca7cc314`.
|
||||
|
||||
No remaining pre-execution test blocker in the final frozen bytes; ready for parent's compiler/runtime gates. Earlier hashes and corrections remain recorded rather than being relabeled runtime failures.
|
||||
|
||||
## Actual first compile refusal and test-only repair
|
||||
|
||||
Parent's first focused build at a629ae01 failed before any test ran: E0277 at entry_producer.rs:241, because Result::unwrap_err requires Debug on its success value, and the projected EditDeclaration vector does not implement it. My preceding static review did not detect this trait-bound issue; it was not a compilation guarantee. Preserve the original log/receipt and do not report that candidate's focused tests as passed.
|
||||
|
||||
Independently reviewed the exact test delta at `29417130c71f70c4eaefe8ed4c879efba78eb72c`: replaces only this unwrap_err with explicit `Err(error) => error` and `Ok(_) => panic!("injected projection quota must refuse")`. Both quota29/31 refusal assertions and all expected diagnostics remain unchanged. Production code is unchanged; the other modified file is the implementation note. Final current test SHA256 is `ebdcd69eae66103a7ed596356e5f629099399d944b5659ace54edc9f558e7bc9`. No compiler or binary was executed by this reviewer; parent owns subsequent gates.
|
||||
Binary file not shown.
@@ -0,0 +1,203 @@
|
||||
"""Read-only entry producer gate reconciliation. Run only after the final five gates.
|
||||
|
||||
Usage: python -I -B inspect_runtime.py FULL_SOURCE_SHA PIN7 EXPECTED_NEW_COUNT
|
||||
Only Git read commands are executed; Cargo, launchers and binaries are never run.
|
||||
"""
|
||||
from pathlib import Path
|
||||
import hashlib
|
||||
import io
|
||||
import json
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
|
||||
if sys.flags.optimize:
|
||||
raise SystemExit('Optimized Python forbidden: verification uses assertions')
|
||||
assert len(sys.argv) == 4
|
||||
source, stem, expected_added = sys.argv[1], sys.argv[2], int(sys.argv[3])
|
||||
assert re.fullmatch(r'[0-9a-f]{40}', source)
|
||||
assert stem == source[:7]
|
||||
assert 1 <= expected_added <= 100
|
||||
base = Path(__file__).resolve().parents[2]
|
||||
root = base / '.local/as3batch'
|
||||
directory = base / '.local/analysis-entry-producer-gates-20260925'
|
||||
prior = base / '.local/analysis-text-producer-gates-20260925'
|
||||
destination = Path(__file__).with_name('ENTRY-PRODUCER-RUNTIME-READBACK.json')
|
||||
assert not destination.exists(), 'Preserve prior readback; do not overwrite'
|
||||
BASELINE = '97a8703adc75467a7f8e75f5c6cb00ca542b707c'
|
||||
ARCHIVE_SHA = '252ea94e7c7f500a2afb3d0fa47c43a051f39d9c844328337289eea0c463becd'
|
||||
sha = lambda raw: hashlib.sha256(raw).hexdigest()
|
||||
|
||||
|
||||
def git(*args):
|
||||
return subprocess.check_output(['git', '--no-replace-objects', *args], cwd=root)
|
||||
|
||||
|
||||
def within(folder, relative):
|
||||
candidate = (folder / relative).resolve()
|
||||
assert candidate.is_relative_to(folder.resolve()), relative
|
||||
return candidate
|
||||
|
||||
|
||||
def receipt(folder, name):
|
||||
raw_receipt = (folder / (name + '.result.json')).read_bytes()
|
||||
data = json.loads(raw_receipt)
|
||||
raw = (folder / (name + '.log')).read_bytes()
|
||||
assert data['log_sha256'] == sha(raw)
|
||||
return data, raw, raw_receipt
|
||||
|
||||
|
||||
def outcomes(raw):
|
||||
rows = re.findall(r'^test ([^\r\n]+) \.\.\. (ok|FAILED|ignored)\r?$', raw.decode(), re.M)
|
||||
assert len(rows) == len(dict(rows)), 'Duplicate runtime name'
|
||||
return rows
|
||||
|
||||
|
||||
def members(raw):
|
||||
names = re.findall(r'^([^\r\n]+): test\r?$', raw.decode(), re.M)
|
||||
assert len(names) == len(set(names)), 'Duplicate listing name'
|
||||
return names
|
||||
|
||||
|
||||
def failure_blocks(raw):
|
||||
# Preserve every byte of block whitespace/body except the numeric thread PID.
|
||||
rows = re.findall(rb'^---- ([^\r\n]+) stdout ----\r?\n(.*?)(?=^---- |^failures:|\Z)',
|
||||
raw, re.M | re.S)
|
||||
assert len(rows) == len(dict(rows)), 'Duplicate failure block'
|
||||
return {name.decode(): re.sub(rb"(?m)^(thread '[^\r\n]*') \(\d+\) panicked",
|
||||
rb'\1 (<PID>) panicked', body) for name, body in rows}
|
||||
|
||||
|
||||
# Anchor baseline local full/list/fmt logs AND receipts to the immutable locally committed ZIP (server publication is blocked).
|
||||
archive_raw = (base / 'harness/experiments/analysis-text-producer-20260925/evidence.zip').read_bytes()
|
||||
assert sha(archive_raw) == ARCHIVE_SHA
|
||||
baseline = {}
|
||||
with zipfile.ZipFile(io.BytesIO(archive_raw)) as archive:
|
||||
names = archive.namelist()
|
||||
assert len(names) == len(set(names))
|
||||
for mode in ('full', 'list', 'fmt'):
|
||||
name = f'text-producer-{mode}-97a8703-1'
|
||||
data, raw, raw_receipt = receipt(prior, name)
|
||||
assert data['source'] == data['head_after'] == BASELINE
|
||||
for suffix, content in [('.log', raw), ('.result.json', raw_receipt)]:
|
||||
matches = [n for n in names if n == name + suffix or n.endswith('/' + name + suffix)]
|
||||
assert len(matches) == 1, (name, suffix, matches)
|
||||
assert archive.read(matches[0]) == content
|
||||
baseline[mode] = (data, raw)
|
||||
old, old_raw = baseline['full']
|
||||
old_rows = outcomes(old_raw)
|
||||
assert old_rows == [tuple(x) for x in old['outcomes']]
|
||||
assert len(old_rows) == 275 and old['exit'] == 101
|
||||
assert sum(v == 'ok' for _, v in old_rows) == 259
|
||||
assert sum(v == 'FAILED' for _, v in old_rows) == 16
|
||||
old_out = dict(old_rows)
|
||||
old_listing = members(baseline['list'][1])
|
||||
assert old_listing == baseline['list'][0]['listing_members']
|
||||
assert baseline['list'][0]['exit'] == 0 and set(old_listing) == set(old_out)
|
||||
assert baseline['fmt'][0]['exit'] == 1
|
||||
|
||||
assert git('rev-parse', 'HEAD').decode().strip() == source
|
||||
assert not git('status', '--porcelain', '--untracked-files=no').strip()
|
||||
scope = ['Cargo.toml', 'Cargo.lock', 'rust-toolchain.toml', '.cargo', 'build', 'crates',
|
||||
'assets', 'docs', 'examples', 'harness/fixtures', 'vendor']
|
||||
paths = git('ls-tree', '-r', '--name-only', source, *scope).decode().splitlines()
|
||||
blobs = subprocess.check_output(['git', '--no-replace-objects', 'cat-file', '--batch'], cwd=root,
|
||||
input=''.join(f'{source}:{p}\n' for p in paths).encode())
|
||||
offset, expected_inputs = 0, []
|
||||
for path in paths:
|
||||
end = blobs.index(b'\n', offset)
|
||||
_, kind, count = blobs[offset:end].split()
|
||||
count = int(count)
|
||||
raw = blobs[end + 1:end + 1 + count]
|
||||
assert kind == b'blob' and within(root, path).read_bytes() == raw, path
|
||||
expected_inputs.append({'path': path, 'bytes': count, 'sha256': sha(raw)})
|
||||
offset = end + count + 2
|
||||
assert offset == len(blobs)
|
||||
|
||||
prefix = ['cargo', 'test', '--locked', '--offline', '-p', 'oa-core', '--lib']
|
||||
commands = {
|
||||
'focused': prefix + ['entry_producer', '--', '--test-threads=1'],
|
||||
'full': prefix + ['--', '--test-threads=1'],
|
||||
'list': prefix + ['--', '--list'],
|
||||
'clippy': ['cargo', 'clippy', '--locked', '--offline', '-p', 'oa-core', '--all-targets', '--', '-D', 'warnings'],
|
||||
'fmt': ['cargo', 'fmt', '--all', '--', '--check'],
|
||||
}
|
||||
expected_env = baseline['full'][0]['environment']
|
||||
assert expected_env['CARGO_BUILD_JOBS'] == '1' and expected_env['CARGO_INCREMENTAL'] == '0'
|
||||
for key in ('RUSTFLAGS', 'RUSTC', 'RUSTUP_TOOLCHAIN', 'ARCADIA_CODEC_LIFECYCLE_PHASE', 'RUST_MIN_STACK'):
|
||||
assert expected_env[key] is None
|
||||
verified, all_receipts, raw_logs = {}, {}, {}
|
||||
artifact_identity = launcher_identity = None
|
||||
for mode, command in commands.items():
|
||||
name = f'entry-{mode}-{stem}-1'
|
||||
data, raw, receipt_raw = receipt(directory, name)
|
||||
assert data['source'] == data['head_after'] == source
|
||||
assert data['mode'] == mode and data['command'] == command
|
||||
assert data['invocation'] == 'cargo' and data['test_target'] is None
|
||||
assert data['filter'] == ('entry_producer' if mode == 'focused' else '')
|
||||
assert not data['changed_inputs'] and not data['verification_failures']
|
||||
assert data['cwd'] == str(root) and data['environment'] == expected_env
|
||||
manifest_raw = within(directory, data['inputs']).read_bytes()
|
||||
assert sha(manifest_raw) == data['inputs_sha256']
|
||||
assert json.loads(manifest_raw) == {'source': source, 'inputs': expected_inputs}
|
||||
launcher = within(directory, data['launcher_copy']).read_bytes()
|
||||
assert sha(launcher) == data['launcher_sha256'] == data['launcher_sha256_after']
|
||||
assert source.encode() in launcher
|
||||
if launcher_identity is None:
|
||||
launcher_identity = sha(launcher)
|
||||
assert sha(launcher) == launcher_identity, 'Unexpected mixed launchers: review explicitly'
|
||||
rows = outcomes(raw)
|
||||
assert rows == [tuple(x) for x in data['outcomes']]
|
||||
listing = members(raw) if mode == 'list' else []
|
||||
assert listing == data['listing_members'] and len(listing) == data['listing_count']
|
||||
if mode in ('focused', 'full'):
|
||||
counts = tuple(sum(v == state for _, v in rows) for state in ('ok', 'FAILED', 'ignored'))
|
||||
summary = re.findall(r'^test result: (ok|FAILED)\. (\d+) passed; (\d+) failed; (\d+) ignored; 0 measured; (\d+) filtered out;', raw.decode(), re.M)
|
||||
assert len(summary) == 1 and tuple(map(int, summary[0][1:4])) == counts
|
||||
assert summary[0][0] == ('FAILED' if counts[1] else 'ok')
|
||||
assert int(summary[0][4]) == (275 if mode == 'focused' else 0)
|
||||
else:
|
||||
assert not rows
|
||||
assert data['exit'] == {'focused': 0, 'full': 101, 'list': 0, 'clippy': 0, 'fmt': 1}[mode]
|
||||
assert len(data['artifacts']) == (1 if mode in ('focused', 'full', 'list') else 0)
|
||||
for artifact in data['artifacts']:
|
||||
path = Path(artifact['path'])
|
||||
assert path.resolve().is_relative_to(Path(expected_env['CARGO_TARGET_DIR']).resolve())
|
||||
actual = path.read_bytes()
|
||||
assert len(actual) == artifact['bytes'] and sha(actual) == artifact['sha256']
|
||||
assert str(path).replace('\\', '/') in raw.decode().replace('\\', '/')
|
||||
if artifact_identity is None:
|
||||
artifact_identity = artifact
|
||||
assert artifact == artifact_identity, 'Test/list artifact mismatch'
|
||||
all_receipts[mode], raw_logs[mode] = data, raw
|
||||
verified[name] = {'source': source, 'exit': data['exit'], 'outcomes': len(rows),
|
||||
'listing': len(listing), 'log_sha256': sha(raw), 'result_sha256': sha(receipt_raw),
|
||||
'inputs_sha256': sha(manifest_raw), 'launcher_sha256': sha(launcher)}
|
||||
|
||||
new_out = dict(all_receipts['full']['outcomes'])
|
||||
assert len(new_out) == 275 + expected_added
|
||||
assert all(new_out.get(k) == v for k, v in old_out.items())
|
||||
added = set(new_out) - set(old_out)
|
||||
assert len(added) == expected_added
|
||||
assert all(new_out[k] == 'ok' and 'entry_producer' in k for k in added)
|
||||
assert set(dict(all_receipts['focused']['outcomes'])) == added
|
||||
assert all(status == 'ok' for _, status in all_receipts['focused']['outcomes'])
|
||||
assert set(all_receipts['list']['listing_members']) == set(new_out)
|
||||
old_blocks, new_blocks = failure_blocks(old_raw), failure_blocks(raw_logs['full'])
|
||||
assert len(old_blocks) == len(new_blocks) == 16
|
||||
assert set(old_blocks) == {k for k, v in old_out.items() if v == 'FAILED'}
|
||||
assert old_blocks == new_blocks, 'Failure bodies differ beyond thread PID'
|
||||
assert raw_logs['fmt'] == baseline['fmt'][1]
|
||||
|
||||
result = {'source': source, 'baseline': BASELINE, 'baseline_archive_sha256': ARCHIVE_SHA,
|
||||
'checker_sha256': sha(Path(__file__).read_bytes()), 'inputs': len(expected_inputs),
|
||||
'unchanged_old_outcomes': 275, 'added_passed': expected_added, 'added_names': sorted(added),
|
||||
'full_passed': sum(v == 'ok' for v in new_out.values()), 'full_failed': 16,
|
||||
'identical_failure_blocks_after_pid_only_normalization': 16,
|
||||
'identical_fmt_sha256': sha(raw_logs['fmt']), 'artifact': artifact_identity,
|
||||
'environment': expected_env, 'receipts': verified,
|
||||
'scope': 'Committed declared inputs, pinned baseline archive, raw logs and current artifact bytes; no Cargo/executable execution. Launcher semantics require independent source review.'}
|
||||
with destination.open('x', encoding='utf-8', newline='\n') as stream:
|
||||
stream.write(json.dumps(result, indent=2) + '\n')
|
||||
print(json.dumps(result, indent=2))
|
||||
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"source": "29417130c71f70c4eaefe8ed4c879efba78eb72c",
|
||||
"scope": "Private retained entry producer prerequisite; no accepted editing or universal parser allocation guarantee. Full library and formatter retain documented baseline failures.",
|
||||
"archive": {
|
||||
"file": "evidence.zip",
|
||||
"bytes": 434046,
|
||||
"sha256": "19a87583a8dc4c22f35999044de5cac2c2c97b04fb457d2c3df3f6d2c054c865"
|
||||
},
|
||||
"members": {
|
||||
"baseline/launchers/bcd83039653815c485ec18fb8d2a75dfa76a39c6e3debca6f525c35a6e474b3a.py": {
|
||||
"bytes": 7666,
|
||||
"sha256": "bcd83039653815c485ec18fb8d2a75dfa76a39c6e3debca6f525c35a6e474b3a"
|
||||
},
|
||||
"baseline/text-producer-fmt-97a8703-1.inputs.json": {
|
||||
"bytes": 104052,
|
||||
"sha256": "907d453bc94eada74a42e2a3c2056660515102273283cb4867f6ab82c887e52a"
|
||||
},
|
||||
"baseline/text-producer-fmt-97a8703-1.log": {
|
||||
"bytes": 6446,
|
||||
"sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d"
|
||||
},
|
||||
"baseline/text-producer-fmt-97a8703-1.result.json": {
|
||||
"bytes": 1876,
|
||||
"sha256": "f5e40697e7ba4305d4b2b800ac4dda0cd04867e739d127c7bc5469bed370c9ff"
|
||||
},
|
||||
"baseline/text-producer-full-97a8703-1.inputs.json": {
|
||||
"bytes": 104052,
|
||||
"sha256": "907d453bc94eada74a42e2a3c2056660515102273283cb4867f6ab82c887e52a"
|
||||
},
|
||||
"baseline/text-producer-full-97a8703-1.log": {
|
||||
"bytes": 45016,
|
||||
"sha256": "7cd8ac2de3b641e0421f48196be255c6b79706049e814e9f62ca2936794f8f71"
|
||||
},
|
||||
"baseline/text-producer-full-97a8703-1.result.json": {
|
||||
"bytes": 41033,
|
||||
"sha256": "b6c97b253e29e15ba476f10ffbd544906f54ca66ca5feedbab36ef6b68358ca3"
|
||||
},
|
||||
"baseline/text-producer-list-97a8703-1.inputs.json": {
|
||||
"bytes": 104052,
|
||||
"sha256": "907d453bc94eada74a42e2a3c2056660515102273283cb4867f6ab82c887e52a"
|
||||
},
|
||||
"baseline/text-producer-list-97a8703-1.log": {
|
||||
"bytes": 31556,
|
||||
"sha256": "25845198d079fa9f5eef5a6610816310a264fccec99e93aff0a865e03abbe612"
|
||||
},
|
||||
"baseline/text-producer-list-97a8703-1.result.json": {
|
||||
"bytes": 33812,
|
||||
"sha256": "fbafa99392bdedda02c91781f3dd5223a91fe5df38b80f88c186d9dd8066e5cc"
|
||||
},
|
||||
"contracts/ENTRY-CRITIQUE.md": {
|
||||
"bytes": 10271,
|
||||
"sha256": "908582a5e5a1e56bf3dacc9478a0db32a3d179c3aef8821b83f0b5f2927b4ce2"
|
||||
},
|
||||
"contracts/ENTRY-PROPOSAL.md": {
|
||||
"bytes": 12504,
|
||||
"sha256": "c53684331353f7f69b750baf0032361cadd0b591bc9ff1bbe1669ce9dd2b7d56"
|
||||
},
|
||||
"contracts/analysis-entry-producer-contract-20260925.md": {
|
||||
"bytes": 6457,
|
||||
"sha256": "0dd194e155f3ea3b6795601e199c2a63d7edff7644f3a75942801f7329a1751c"
|
||||
},
|
||||
"diagnostics/entry-focused-2941713-1.active-frames.json": {
|
||||
"bytes": 15060,
|
||||
"sha256": "920985da2a4d8f15fed04e8c5677d531c479e8679df0b063b2b12b2c1614317a"
|
||||
},
|
||||
"diagnostics/entry-focused-2941713-1.projector-frames.json": {
|
||||
"bytes": 37226,
|
||||
"sha256": "6580c158c71539e5a6d7299ea029b1fceb0a4a13e60ebb5dc555b7232d3332ee"
|
||||
},
|
||||
"diagnostics/entry-focused-2941713-1.stack-frames.json": {
|
||||
"bytes": 13197,
|
||||
"sha256": "aeb7a50375058828c9e61c12328b2b9ef1714286ec5ea623b6a499d2ec9920ad"
|
||||
},
|
||||
"diagnostics/inspect_projector_frames.py": {
|
||||
"bytes": 1929,
|
||||
"sha256": "ae54298c811294bfbf863ed6db54159c4b176b9115534ba057e461e2d70074f0"
|
||||
},
|
||||
"diagnostics/inspect_repaired_active_frames.py": {
|
||||
"bytes": 2236,
|
||||
"sha256": "684dfbbebe3cf3d5deeefd7792ef4a3c205c166390c171da48acefc8d1ee9428"
|
||||
},
|
||||
"diagnostics/inspect_stack_frames.py": {
|
||||
"bytes": 1889,
|
||||
"sha256": "80372b64f336b73570c1ee790c41646d0d7765e781d3489a4aa682b07515a1a6"
|
||||
},
|
||||
"diagnostics/prior-97a8703.active-frames.json": {
|
||||
"bytes": 15060,
|
||||
"sha256": "f767ef6788981d0198922c651504ef8cf8073c092555466b1cd8c517b9479535"
|
||||
},
|
||||
"diagnostics/prior-97a8703.projector-frames.json": {
|
||||
"bytes": 18345,
|
||||
"sha256": "0c6743aa5f308b98eef423f9bde3389d61e65033cc5ace5aa6db73cdd12770c7"
|
||||
},
|
||||
"diagnostics/prior-97a8703.stack-frames.json": {
|
||||
"bytes": 13087,
|
||||
"sha256": "499c3758551b5c935e69ed4f3447efd9bb35fb50b12cd8ee88a05357d40f33fc"
|
||||
},
|
||||
"diffs/97a8703-to-2941713.patch": {
|
||||
"bytes": 38255,
|
||||
"sha256": "a61fe872e0af041acf95058f2f62e001aeaf41f472f23340a4b6679d20f7b95c"
|
||||
},
|
||||
"diffs/97a8703-to-a629ae0.patch": {
|
||||
"bytes": 37780,
|
||||
"sha256": "c7675ecdb38f5a1053fb2b96bd2747bc9aa9ee3e79924d3524b2ec80b4587706"
|
||||
},
|
||||
"gates/entry-clippy-2941713-1.inputs.json": {
|
||||
"bytes": 104264,
|
||||
"sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c"
|
||||
},
|
||||
"gates/entry-clippy-2941713-1.log": {
|
||||
"bytes": 165,
|
||||
"sha256": "3f18ecfb5fac754c6660d217d1f87752ee99a321fff525a6113ff7deb6ee2baa"
|
||||
},
|
||||
"gates/entry-clippy-2941713-1.result.json": {
|
||||
"bytes": 1966,
|
||||
"sha256": "edb45b1706f09e89ab2f0584a9708ab7e808e7f1048bde2b1439c4f0d49d439d"
|
||||
},
|
||||
"gates/entry-fmt-2941713-1.inputs.json": {
|
||||
"bytes": 104264,
|
||||
"sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c"
|
||||
},
|
||||
"gates/entry-fmt-2941713-1.log": {
|
||||
"bytes": 6446,
|
||||
"sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d"
|
||||
},
|
||||
"gates/entry-fmt-2941713-1.result.json": {
|
||||
"bytes": 1879,
|
||||
"sha256": "a7f1c7ec70ec4a6872dc8a387d1a8c5b3b424f125d21a59a6320b3c2ac17c772"
|
||||
},
|
||||
"gates/entry-focused-2941713-1.inputs.json": {
|
||||
"bytes": 104264,
|
||||
"sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c"
|
||||
},
|
||||
"gates/entry-focused-2941713-1.log": {
|
||||
"bytes": 1205,
|
||||
"sha256": "fb1cb5d33b724c54687c56439b01fcf4d1c7a393dd08d9cd789702625acdad06"
|
||||
},
|
||||
"gates/entry-focused-2941713-1.result.json": {
|
||||
"bytes": 3158,
|
||||
"sha256": "f8b1ad7859ae58f7b9cc618a22e603a922bb1d4ab4c73b84525c4267ea30a88b"
|
||||
},
|
||||
"gates/entry-focused-a629ae0-1.inputs.json": {
|
||||
"bytes": 104264,
|
||||
"sha256": "8b5b416955d7f79db3ee08edcbce69d1c96d688bfefcf6760b2ca2dabf2fd3d9"
|
||||
},
|
||||
"gates/entry-focused-a629ae0-1.log": {
|
||||
"bytes": 1371,
|
||||
"sha256": "cfd534fb67405666ba7a86aa3aa3164655d803b00d4e80f09893d1e312c2a58a"
|
||||
},
|
||||
"gates/entry-focused-a629ae0-1.result.json": {
|
||||
"bytes": 1994,
|
||||
"sha256": "0490608967cc91ac5e666453304a657a01743508d3d98aa9b3e469482b3629f0"
|
||||
},
|
||||
"gates/entry-full-2941713-1.inputs.json": {
|
||||
"bytes": 104264,
|
||||
"sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c"
|
||||
},
|
||||
"gates/entry-full-2941713-1.log": {
|
||||
"bytes": 45776,
|
||||
"sha256": "47fef6f46d136be0e53f48f8ff03a96be73635fc4c3f57350c1e641ad44b01c4"
|
||||
},
|
||||
"gates/entry-full-2941713-1.result.json": {
|
||||
"bytes": 41913,
|
||||
"sha256": "0bbf4cc28d8832e0cdc4e674296db0b71c7da38a0ac1e3c7ecf34e9d19ab6a62"
|
||||
},
|
||||
"gates/entry-list-2941713-1.inputs.json": {
|
||||
"bytes": 104264,
|
||||
"sha256": "3453c4b85aa27e79fa602e491e333ddeb42914228bb6e3dda8efbabbbe14f02c"
|
||||
},
|
||||
"gates/entry-list-2941713-1.log": {
|
||||
"bytes": 32280,
|
||||
"sha256": "4552e8512731a2fb3dbaba02b671c32837018298b5d8b52057af7fa372f2f50e"
|
||||
},
|
||||
"gates/entry-list-2941713-1.result.json": {
|
||||
"bytes": 34534,
|
||||
"sha256": "5374aea8aba0790bcfb6fa4dee179a4c5ddc0df2efd602e876acbc8c84ae59d1"
|
||||
},
|
||||
"gates/launchers/43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc.py": {
|
||||
"bytes": 7668,
|
||||
"sha256": "43a25f27b417cc66f81ec1714c57eb079a9923995bdadbe79440b00836ac73fc"
|
||||
},
|
||||
"gates/launchers/43b11fbe0074912211e9cc7b6741035912384ed333e7dfa0179e88dadf24f937.py": {
|
||||
"bytes": 7668,
|
||||
"sha256": "43b11fbe0074912211e9cc7b6741035912384ed333e7dfa0179e88dadf24f937"
|
||||
},
|
||||
"launchers/package_evidence.py": {
|
||||
"bytes": 4724,
|
||||
"sha256": "f87452e0d21298b5d45676fb0152183729f0738944955a848a41bc9bb97eb39b"
|
||||
},
|
||||
"notes/prior-toolchain.txt": {
|
||||
"bytes": 536,
|
||||
"sha256": "1f101518dd1f90bc2cba8d26570a762832aba6debebbbe6aa50f97a944590610"
|
||||
},
|
||||
"reviews/ENTRY-ORACLE.md": {
|
||||
"bytes": 8131,
|
||||
"sha256": "8b5d8193d3c63fe418834a90083abe05f43ed59567adcb1b149c1825231dc109"
|
||||
},
|
||||
"reviews/ENTRY-PRODUCER-RUNTIME-READBACK.json": {
|
||||
"bytes": 4939,
|
||||
"sha256": "f45c86d42a1d89c4cf2b22342f2c41dcd4514622f0bd2367101f219367d1c66c"
|
||||
},
|
||||
"reviews/RUNTIME-REVIEW.md": {
|
||||
"bytes": 6191,
|
||||
"sha256": "e200443119c92f3b6f04b19d07fc0fddaeab8cbe905841686b29e47aa374200a"
|
||||
},
|
||||
"reviews/SOURCE-REVIEW.md": {
|
||||
"bytes": 10097,
|
||||
"sha256": "1a6629537b2e916a2275101f4d307079bde80b9dded5a237f6b160ccdcacbc13"
|
||||
},
|
||||
"reviews/STACK-OBSERVATIONS.md": {
|
||||
"bytes": 3129,
|
||||
"sha256": "1d844aa9859f0b74a9bcb996a8268ba4587585faf6578058fccc0d6decd836a6"
|
||||
},
|
||||
"reviews/TEST-REVIEW.md": {
|
||||
"bytes": 6944,
|
||||
"sha256": "5f2ead8da18940e2378017800be4f88ec6f9beed0e0e885e6f14e49a89bee000"
|
||||
},
|
||||
"reviews/inspect_runtime.py": {
|
||||
"bytes": 10444,
|
||||
"sha256": "792b2eff0a9288a73bad9495b05ca06927ca0717a176dce5913206ffa9731080"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user