He visto puntos de vista contradictorios sobre si las corrutinas de Python (principalmente me refiero a async/await await) son apiladas o apiladas.
Algunas fuentes dicen que son apilados:
'Las corrutinas de Python son apiladas.'
Sí, las corrutinas de Python son apiladas, de primera clase y asimétricas.
Mientras que otros parecen implicar que no tienen pilas, por ejemplo, https://gamelisp.rs/reference/coroutines.html
Las rutinas de GameLisp siguen el modelo establecido por Rust, Python, C# y C++. Nuestras corrutinas son "sin pilas"
En general, siempre entendí que cualquier implementación significativa de async/await implica corrutinas sin pila, mientras que las apiladas son básicamente fibras (subprocesos de espacio de usuario, a menudo cambiados de forma más o menos cooperativa), como goroutines, Boost.Coroutine, aparentemente las de Lua, etc.
¿Es correcto mi entendimiento? ¿O las corrutinas de Python de alguna manera difieren fundamentalmente de las de, por ejemplo, C ++, y son apiladas? ¿O los autores de la fuente anterior quieren decir cosas diferentes?