Size: a a a

Compiler Development

2019 October 09

M

MaxGraey in Compiler Development
Peter Sovietov
Это inlining, если кто-то не догадался :)
я бы это назвал "подстановкой" или "развертыванием" функции
источник

VK

Vladimir Kazanov in Compiler Development
Анна Удовиченко
Хоть викторину устраивай - угадай оригинал 🤷‍♀️
очень может быть, что это и есть оригинал 😊
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
я бы это назвал "подстановкой" или "развертыванием" функции
ага, или "встраивание"
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
ага, или "встраивание"
Да, еще более устоявшийся термин
источник

АУ

Анна Удовиченко in Compiler Development
Vladimir Kazanov
очень может быть, что это и есть оригинал 😊
ладно, надо переименовать викторину 🙈
источник

VK

Vladimir Kazanov in Compiler Development
всем спасибо, для моих ограниченных целей озвученных распроцедуриваний достаточно 😊
источник

M

MaxGraey in Compiler Development
В продолжение темы про конвертацию чисел с плавающей арифметикой в строку
источник

E

EgorBo in Compiler Development
мемори футпринта нет на графике
источник

E

EgorBo in Compiler Development
помню первые версии юзали sprintf
источник

E

EgorBo in Compiler Development
я помню когда портили с++ код ботлнеками было:
1) stackalloc в шарпе всегда нулит память после аллокации на стеке (а тут не надо было - пофиксили)
2) чото там про инлайнинг
3) x / 10, x % 10 в С++ оптимизируются в один див
источник

E

EgorBo in Compiler Development
а так в целом оптимизации С++ компиляторов там работали по минимуму — код изначально оптимизирован :)
источник

MS

Max Sychenko in Compiler Development
EgorBo
я помню когда портили с++ код ботлнеками было:
1) stackalloc в шарпе всегда нулит память после аллокации на стеке (а тут не надо было - пофиксили)
2) чото там про инлайнинг
3) x / 10, x % 10 в С++ оптимизируются в один див
а как пофиксили?
источник

E

EgorBo in Compiler Development
Max Sychenko
а как пофиксили?
там в зависимости от кода зажигается флажок initlocals у каждого метода (в байткоде)
а потом для некоторых кейсов снимается и можно снять для всего модуля
источник

MS

Max Sychenko in Compiler Development
а рядовому юзеру можно этим управлять? всмысле как именно это делается, название флага
источник

E

EgorBo in Compiler Development
вот для всех бцл модулей сняли (предварительно все потеститв чтобы нигде мусор не всплыл)

но вообще спека шарпа прямым текстом говорит что stackalloc вполне может вернуть мусор и нельзя надеется что там будут нули (но обычно там нули)
источник

E

EgorBo in Compiler Development
да, в .NET Core 3.0
источник

E

EgorBo in Compiler Development
не помню флаг, что-то типа ClearInitLocals
источник

E

EgorBo in Compiler Development
но вообще работа с незануленными аллокациями в целом - это один из самых популярных способов надежно прострелить себе ногу с базуки
источник

MS

Max Sychenko in Compiler Development
само собой, другое дело что иногда когда требуется немного unsafe магии и ты сам все инитишь, то почему бы и нет, так то для С/С++ это стандартное поведение, не знаю кому это может мешать
источник

E

EgorBo in Compiler Development
ну у мс есть какой-то там рейтинг видов багов/атак и это в топе
источник