@@ -31,19 +31,24 @@ ordering is preserved below; status flags mark what's done.
3131 which lets us align with the stdlib idiom now without breaking 2.x
3232 callers — #102 retained as the 3.0.0 "drop the ` TypeError ` base"
3333 tracker.
34- 5 . ~~ ** #80 ** ~~ — ** done** this session. ` @multishot ` /` myield ` macros
35- and ` MultishotIterator ` adapter shipped in
36- ` unpythonic.syntax.multishot ` . Promoted from the ` test_conts_multishot.py `
37- proof-of-concept, with the multi-phase scaffolding dropped and the
38- adapter extended to v1 surface (gi_frame always None, gi_code as the
39- liveness signal, gi_running always False, gi_yieldfrom None,
40- ` __copy__ ` shallow fork, ` __deepcopy__ ` raises TypeError, ` __del__ `
41- calls ` close ` ). Brief: ` briefs/multishot-implementation.md ` .
42- Tests: ` unpythonic/syntax/tests/test_multishot.py ` (45 passing).
43- Doc: new "Multi-shot generators with ` @multishot ` and ` myield ` "
44- subsection in ` doc/macros.md ` . Issue closed. ** ` myield_from `
45- follow-up** flagged in the brief as the immediate post-v1 changeset
46- while CI engines are still warm.
34+ 5 . ~~ ** #80 ** ~~ — ** done** across two slots. v1 (` @multishot ` , ` myield ` ,
35+ ` MultishotIterator ` ) shipped earlier this session; ` myield_from `
36+ follow-up landed in ` 839953b ` . Final v1 surface: ` gi_frame ` always
37+ None, ` gi_code ` as the liveness signal, ` gi_running ` always False,
38+ ` gi_yieldfrom ` tracks the inner iterator while delegating, ` __copy__ `
39+ shallow fork, ` __deepcopy__ ` raises TypeError, ` __del__ ` calls
40+ ` close ` . ` myield_from ` architecture: let/cc-style rest-of-outer
41+ capture (` _rest = call_cc[get_cc()] ` ) + tail-called driver +
42+ cut-the-tail ` _yieldf ` to escape each ` (captured_cc, value) ` to the
43+ user's trampoline. Bonus refactor (commit ` 839953b ` ): shared
44+ ` _step(k, mode, value) ` helper + send-to-bare-myield bug fix +
45+ ` throw ` capture-and-update. Misplaced ` myield_from ` raises
46+ ` SyntaxError ` symmetrically with ` myield ` . Brief:
47+ ` briefs/multishot-implementation.md ` . Tests:
48+ ` unpythonic/syntax/tests/test_multishot.py ` (72 passing).
49+ Doc: "Multi-shot generators with ` @multishot ` and ` myield ` " +
50+ "Delegating to another multi-shot: ` myield_from ` " subsections in
51+ ` doc/macros.md ` . Issue closed.
47526 . ** #83 ** — pending; ` end_lineno ` / ` end_col_offset ` sweep, last.
4853
4954Only ** #83 ** remains for 2.2.0. It's explicitly * do last* — cross-cutting,
0 commit comments