Size: a a a

Конференция C++ Russia

2021 July 21

IL

Ilya L in Конференция C++ Russia
была какая-то хитрость, но я уже не помню :(
источник

AT

Alexey Tkachenko in Конференция C++ Russia
плюс надо знать, какого размера фрейм должен быть (зависит от количества локальных переменных)
источник

EP

Egor Pugin in Конференция C++ Russia
каждая стеклес знает размер фрейма, речь о своём фрейме. Стек используется родительский
источник

W

Wild_Wind in Конференция C++ Russia
>сегментированный
Менее дружелюбен к кешу, если не влазит в него целиком.
источник

ES

Egor Suvorov in Конференция C++ Russia
+, и после этого уже можно будет что-нибудь в стандарт тащить
источник

IL

Ilya L in Конференция C++ Russia
ну офк, да
источник

m

magras in Конференция C++ Russia
Своего да. Но мало кому он интересен. Мы же не хотим на каждый вложенный вызов корутины выделять новый фрейм отдельно?
источник

AK

Artem Khoroshev in Конференция C++ Russia
погодите, так было раньше, потом они от этого отказались, кажется
и теперь просто реалоцируют весь стек целиком заного (могут правильным орбразом “скопировать” старый благодаря рантайму)

в общем поправьте если я не прав
источник

EP

Egor Pugin in Конференция C++ Russia
а как ещё? У нас локальные переменные в каждой свои
источник

EP

Egor Pugin in Конференция C++ Russia
если нужна долгоживущая корутина, то она делается в виде генератора
источник

AT

Alexey Tkachenko in Конференция C++ Russia
тогда нужно будет править "указатели", такое копирование потребует stop the world
источник

m

magras in Конференция C++ Russia
Посчитать максимальную глубину стэка необходимую под все фреймы вложеных вызовов. Выделить одним куском.
источник

EP

Egor Pugin in Конференция C++ Russia
это уже что-то из фантастики
источник

AT

Alexey Tkachenko in Конференция C++ Russia
здравствуй, рекурсия
источник

m

magras in Конференция C++ Russia
Эта ветка с нее и начиналась. =)
источник

AK

Artem Khoroshev in Конференция C++ Russia
не уверен. все что живет внутри стека и не торчит наружу, явно не будет причиной stop the world. все что торчит наружу изначально аллоцируются на хипе, а значит не придется менять никакие указатели из внешних мест
источник

AK

Artem Khoroshev in Конференция C++ Russia
там есть escape анализ для этого в компиляторе
источник

m

magras in Конференция C++ Russia
На мой взгляд без этой оптимизации, под которую в стандарте уже заложены оговорки, stackless вообще не очень интересны. Собственно частным случаем является выделение всего куска памяти прямо на стэке. И эта оптимизация точно уже применяется.

И да, не смотря на то что я критикую stackless пока они мне ближе чем stackful.
источник

EP

Egor Pugin in Конференция C++ Russia
мы передаём функцию в рантайме, она будет вызываться, как это посчитать во время компиляции?
источник

m

magras in Конференция C++ Russia
Это оптимизация. Никто не гарантирует, что она всегда применима.
источник