markshannon · GitHub

…erators
* Moves the `GET_ITER` instruction into the generator function preamble.
  This means the the iterable is converted into an iterator during generator
  creation, as documented, but keeps it in the same code object allowing
  optimization.

@markshannon

Closed

@markshannon

@markshannon

J2085isa

J2085isa

serhiy-storchaka

@markshannon

@markshannon

@DinoV DinoV mentioned this pull request

Jan 16, 2026

Merged

meta-codesync Bot pushed a commit to facebookincubator/cinderx that referenced this pull request

Jan 21, 2026
Summary: python/cpython#143569 has fixed a bug introduced in the code gen where passing a non-iterable to a generator doesn't raise immediately. This matches the code gen.
Reviewed By: mpage
Differential Revision: D90706769
fbshipit-source-id: 229a355c62e4b07ca0f3853ba91ac31b81946a8b

meta-codesync Bot pushed a commit to facebookincubator/cinderx that referenced this pull request

Jan 22, 2026
Summary:
Fixes up the CinderX build after the latest import. This brought in python/cpython#142911 which move somethings into ceval.h so that we can directly include it rather than borrowing those functions. We bring back `cinderx-only-headers` and now use them on 3.10 and 3.15+.
There's also a fix related to python/cpython#143569 where we need to update the interpreter loop.
Also python/cpython@ bb25f72  seems to have refactored `_PyDict_LookupIndex` to use `_PyDict_LookupIndexAndValue`.
There's some more work after this to further reduce our usage of `ceval_macros.h` but this just gets things working again.
Reviewed By: itamaro
Differential Revision: D91146024
fbshipit-source-id: 6da3ef18fe5fe5f79e29a71cdbe98491bbb45a9d

thunder-coding pushed a commit to thunder-coding/cpython that referenced this pull request

Feb 15, 2026
…orting virtual iterators (pythonGH-143569)
* Moves the `GET_ITER` instruction into the generator function preamble.
  This means the the iterable is converted into an iterator during generator
  creation, as documented, but keeps it in the same code object allowing
  optimization.

Read the original on github.com ↗