Skip to content

Commit 4c34788

Browse files
committed
Record 27.30.2 matrix rerun and advance parity frontier
1 parent e80f51f commit 4c34788

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

TODO.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1668,7 +1668,16 @@ Work on tasks defined in TODO.md. Repeat the following steps, don’t stop until
16681668
- [x] *done* Single-crate reprobe removed the deterministic 27.29.2 runtime head at `/home/shuai/git/rusty-cpp/include/rusty/ptr.hpp:119` + `/home/shuai/git/rusty-cpp/include/rusty/mem.hpp:86`; new deterministic first hard error now starts from `arrayvec` range-bound visit return-shape mismatch (`runner.cpp:968` / `std::visit` return-type unification), with immediate adjacent fallout at `runner.cpp:973` (slice pointer shape mismatch), and additional downstream move-only/runtime fallout at `/home/shuai/git/rusty-cpp/include/rusty/result.hpp:72` + `/home/shuai/git/rusty-cpp/include/rusty/ptr.hpp:132`.
16691669
- [x] *done* Canonical artifacts for this leaf’s reprobe are at `/tmp/rusty-parity-27-30-1-20260407-001026/arrayvec/{baseline.txt,build.log,run.log,matrix.log}`.
16701670
- [x] *done* Guardrail check against wrong-approach section (`docs/rusty-cpp-transpiler.md` §11): fixes stayed in shared runtime surfaces, avoided crate-specific scripts/post-generation rewrites, and preserved deterministic first-head artifact capture.
1671-
- [ ] Leaf 4.15.4.3.3.3.3.3.27.30.2: Re-run full seven-crate parity matrix after 27.30.1, record first deterministic failure head with canonical artifacts, and update active-frontier docs/TODO status (or mark Leaf 4 complete if all seven pass).
1671+
- [x] *done* Leaf 4.15.4.3.3.3.3.3.27.30.2: Re-run full seven-crate parity matrix after 27.30.1, record first deterministic failure head with canonical artifacts, and update active-frontier docs/TODO status (or mark Leaf 4 complete if all seven pass).
1672+
- [x] *done* Plan/scope check: rerun-and-documentation leaf only (no implementation delta); expected change size stayed well below the <1000 LOC guardrail, so no additional decomposition was required.
1673+
- [x] *done* Re-ran full seven-crate parity matrix (`tests/transpile_tests/run_parity_matrix.sh --work-root /tmp/rusty-parity-matrix-27-30-2-20260407-001457 --keep-work-dirs`) after 27.30.1: deterministic first failure remains `arrayvec` Stage D (`total=5`, `pass=4`, `fail=1`), with canonical artifacts at `/tmp/rusty-parity-matrix-27-30-2-20260407-001457/arrayvec/{baseline.txt,build.log,run.log,matrix.log}`.
1674+
- [x] *done* Recorded post-27.30.2 deterministic Stage D head family from `arrayvec` build: first hard error now starts at `runner.cpp:968` (`ArrayVec::drain` range-bound `std::visit` return-type mismatch across bound alternatives), with immediate adjacent fallout at `runner.cpp:973` (incorrect pointer-shape assumption: `const auto* range_slice` vs `rusty::slice(...)` span result), then downstream dependent families including `/home/shuai/git/rusty-cpp/include/rusty/result.hpp:72` default-construction of non-default-constructible `Err` payloads and `/home/shuai/git/rusty-cpp/include/rusty/ptr.hpp:132` move-assignment requirement in `ptr::write`.
1675+
- [x] *done* Verification for 27.30.2 status update:
1676+
- `tests/transpile_tests/run_parity_matrix.sh --work-root /tmp/rusty-parity-matrix-27-30-2-20260407-001457 --keep-work-dirs`
1677+
- [x] *done* Guardrail check against wrong-approach section (`docs/rusty-cpp-transpiler.md` §11): maintained deterministic first-head discipline and canonical artifact capture, and did not introduce crate-specific rewrites/scripts.
1678+
- [ ] Leaf 4.15.4.3.3.3.3.3.27.31: Collapse the post-27.30.2 deterministic Stage D drain range-bound visitor/slice pointer-shape family generically (starting with `runner.cpp:968` `std::visit` return-type mismatch and adjacent `runner.cpp:973` `const auto*` slice pointer assumption), add fixture-agnostic regressions, then re-run full seven-crate matrix.
1679+
- [ ] Leaf 4.15.4.3.3.3.3.3.27.31.1: Implement generic transpiler/runtime fixes for the first deterministic 27.30.2 head (no crate-specific scripts): normalize `ArrayVec::drain` bound-visit return-shape/type unification and slice-range materialization so generated code does not assume pointer surfaces where span/slice values are produced.
1680+
- [ ] Leaf 4.15.4.3.3.3.3.3.27.31.2: Re-run full seven-crate parity matrix after 27.31.1, record first deterministic failure head with canonical artifacts, and update active-frontier docs/TODO status (or mark Leaf 4 complete if all seven pass).
16721681
- [ ] Leaf 5: Verification matrix (required)
16731682
- [x] *done* Add an integration parity matrix test that runs `parity-test --stop-after run` for `either`, `tap`, `cfg-if`, `take_mut`, `arrayvec`, `semver`, and `bitflags`
16741683
- [x] *done* Added `tests/transpile_tests/run_parity_matrix.sh`: matrix harness with crate list/version pins matching the integration set; default mode runs each crate through `cargo run -p rusty-cpp-transpiler -- parity-test --stop-after run` using per-crate work dirs

docs/rusty-cpp-transpiler.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2895,8 +2895,17 @@ Active work items:
28952895
- `cargo test -p rusty-cpp-transpiler`
28962896
- `tests/transpile_tests/run_parity_matrix.sh --crate arrayvec --work-root /tmp/rusty-parity-27-30-1-20260407-001026 --keep-work-dirs`
28972897
- guardrail check against wrong-approach checklist (§11): fixes remained in shared runtime surfaces, avoided crate-specific scripts/post-generation rewrites, and preserved deterministic first-head artifact capture.
2898-
91. Current active next leaf is `Leaf 4.15.4.3.3.3.3.3.27.30.2`.
2899-
- focus: run the full seven-crate matrix and record the new deterministic first-failing head family/artifacts after 27.30.1.
2898+
91. `Leaf 4.15.4.3.3.3.3.3.27.30.2` is complete.
2899+
- plan/scope check: rerun/documentation-only leaf with no implementation changes; work stayed well below the <1000 LOC threshold and required no further decomposition.
2900+
- full seven-crate matrix rerun (`tests/transpile_tests/run_parity_matrix.sh --work-root /tmp/rusty-parity-matrix-27-30-2-20260407-001457 --keep-work-dirs`) remains deterministic with first failing crate `arrayvec` (`total=5`, `pass=4`, `fail=1`).
2901+
- canonical artifacts: `/tmp/rusty-parity-matrix-27-30-2-20260407-001457/arrayvec/{baseline.txt,build.log,run.log,matrix.log}`.
2902+
- deterministic first hard error now starts at `runner.cpp:968`: `ArrayVec::drain` bound-visitor `std::visit` alternatives do not unify to one return type; immediate adjacent fallout appears at `runner.cpp:973` where generated `const auto* range_slice` assumes pointer shape while `rusty::slice((*this), start, end)` yields a span/slice value.
2903+
- downstream dependent families remain (for example `/home/shuai/git/rusty-cpp/include/rusty/result.hpp:72` default-construction of non-default-constructible `Err` payload and `/home/shuai/git/rusty-cpp/include/rusty/ptr.hpp:132` move-assignment requirement in `ptr::write`).
2904+
- verification:
2905+
- `tests/transpile_tests/run_parity_matrix.sh --work-root /tmp/rusty-parity-matrix-27-30-2-20260407-001457 --keep-work-dirs`
2906+
- guardrail check against wrong-approach checklist (§11): maintained deterministic first-head + canonical-artifact workflow and introduced no crate-specific rewrites/scripts.
2907+
92. Current active next leaf is `Leaf 4.15.4.3.3.3.3.3.27.31.1`.
2908+
- focus: implement shared transpiler/runtime normalization for `drain` bound-visit return-shape unification and slice materialization pointer-shape correctness, then reprobe `arrayvec`.
29002909

29012910
### 10.7 Parity Harness and Matrix Command Reference
29022911

@@ -2997,6 +3006,7 @@ Required approach:
29973006
- for runtime `Option`/`Result` match lowering, do not fall back to `std::visit` for nested binding-only payload patterns (for example `Err(Type { .. })`); keep dispatch on runtime helper surfaces (`is_err`/`unwrap_err`, `is_ok`/`unwrap`)
29983007
- for pointer helper calls (`ptr::read`, hole/reference storage APIs), do not cast value expressions directly to pointer aliases; emit address-of forms (`&expr`) before pointer-typed adaptation
29993008
- for runtime move-transfer helpers (`ptr::read`, `mem::replace`, `ptr::write`), do not rely on copy-return or copy-assignment fallbacks that require copyable payloads; preserve move-only behavior with move-out/placement-style reconstruction in shared runtime paths
3009+
- for range-bound visitor lowering (`start_bound`/`end_bound` in `drain`-style code), do not emit mixed return categories across `std::visit` alternatives and do not force slice helper results into pointer declarators (`const auto*`) when runtime helpers return span/slice values; unify return/value shapes from local type context first
30003010
- for raw-pointer helper/receiver lowering (`as_ptr`/`as_mut_ptr`, `ptr::add`/`ptr::offset`), do not preserve storage-pointer pointee shapes when call context expects payload pointers; propagate expected pointer context and adapt pointee shape explicitly
30013011
- for runtime pointer helpers on `MaybeUninit`-backed storage (`as_ptr`/`as_mut_ptr`), do not expose wrapper-element pointers to payload-facing slice/read APIs; normalize helper results to payload pointers (`T*`/`const T*`) via shared runtime adaptation instead of crate-local rewrites
30023012
- for repeat/collection construction lowering, do not globally force fixed-array materialization from repeat helpers; gate array-vs-vector lowering on explicit expected-type/fixed-capacity context

0 commit comments

Comments
 (0)