|
2 | 2 |
|
3 | 3 | ## Status |
4 | 4 |
|
5 | | -In progress. The low-level iterator-state documentation and ownership model are |
6 | | -under review. Continue with the finalizer and initializer, then review decoding |
7 | | -and exhaustion, and only then review `TreeSequence$variants()`. |
| 5 | +Paused on 2026-08-21 pending discussion with Jinyang. The low-level iterator- |
| 6 | +state documentation and ownership model have been mapped, but the variant |
| 7 | +implementation and user-facing API have not been approved. There are not yet |
| 8 | +sufficient user-facing docs or examples to resolve the API by review alone. |
| 9 | + |
| 10 | +When work resumes, continue with the finalizer and initializer, then review |
| 11 | +decoding and exhaustion, and only then review `TreeSequence$variants()`. Do not |
| 12 | +restart from earlier PR slices, which are recorded as complete in |
| 13 | +`PR132_REVIEW_PLAN.md`. |
| 14 | + |
| 15 | +### Questions for Jinyang before resuming |
| 16 | + |
| 17 | +- What concrete workflow should `TreeSequence$variants()` support, especially |
| 18 | + in AlphaSimR? |
| 19 | +- Can he provide one or two small executable examples with expected site, |
| 20 | + allele, genotype, sample-order, and missing-data results? |
| 21 | +- What returned R object and iteration protocol does he intend? Are both |
| 22 | + `next()` and `next_variant()` required? |
| 23 | +- Are the `copy` and deprecated `impute_missing_data` compatibility arguments |
| 24 | + required by downstream code, or should this new R API omit unsupported or |
| 25 | + deprecated compatibility surface? |
| 26 | +- Are the low-level iterator functions intended to be public installed C++ API |
| 27 | + or internal implementation details? |
| 28 | +- What behavior is intended for `NULL` versus empty `samples` and `alleles`, |
| 29 | + interval bounds, fixed allele mappings, and isolated/missing samples? |
| 30 | + |
| 31 | +### Exact restart point |
| 32 | + |
| 33 | +1. Resolve the questions above and record intentional deviations from Python. |
| 34 | +2. Resume at **C++ iterator state and initialization** below. |
| 35 | +3. Confirm finalizer and partial-initialization cleanup semantics from the |
| 36 | + upstream C API before changing ownership code. |
| 37 | +4. Remove the redundant `ts_sexp` preservation only together with regression |
| 38 | + tests covering garbage collection, iterator lifetime, early abandonment, |
| 39 | + and absence of double-free behavior. |
| 40 | +5. Complete decoding/exhaustion and exact-content tests before reviewing the R |
| 41 | + iterator API, documentation, and examples. |
| 42 | +6. Run the focused and full completion gates in section 5. |
8 | 43 |
|
9 | 44 | This review covers: |
10 | 45 |
|
|
0 commit comments