Size: a a a

Compiler Development

2021 June 22

M

MrSmith in Compiler Development
Кто говорит?
источник

AT

Alexander Tchitchigi... in Compiler Development
Один из авторов.
источник

M

MrSmith in Compiler Development
В твиттере заанонсил или лично рассказал?
источник

AT

Alexander Tchitchigi... in Compiler Development
На PLDI сказал.
источник
2021 June 23

M

MrSmith in Compiler Development
Круто, и как сама конференция? Было что интересного?
источник

AT

Alexander Tchitchigi... in Compiler Development
Там прилично интереного и она всё ещё продолжается. Но времена сессий для меня неудобные по большей части.
источник

M

MrSmith in Compiler Development
Да отстойно, я из за диплома в этом году тоже не смог поехать на лямбду
источник
2021 June 24

К

Константин in Compiler Development
Расскажите мне про абстрактную VM.
есть 3 операции:
set regname, которая попает из стека  в регистр
get regname, которая пушит в стек
kill  regname, которая удаляет регистр

Вот первые 2 понятно, а на кой нужен kill? ну и что что у нас в регистре будет какое-то значение, с учетом фиксированного количества регистров это не имеет же значения особо.
читать невалидный регистр все равно нельзя (те нельзя сделать get после условного kill)

Хотя да, так и написано - для того, чтобы удосужится что нету повреждения при jump.
VM должна проверить что после прыжка регистры пустые, иначе упасть с ошибкой верификации
Значит для меня это не так важно, я не проверяю бранчи, а инлайн это ломает.

Я просто вижу, что не везде есть такой опкод, вернее его больше нет чем есть.
нету в WASM, в JVM тоже нет, CLI тоже
источник

AK

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

h

hazer_hazer in Compiler Development
не особо понимаю Как это? - Удалить регистр 😳
источник

К

Константин in Compiler Development
Ну вот как бы тоже. типа перевести в невалидное состояние
источник

AT

Alexander Tchitchigi... in Compiler Development
Все перечисленные VM — стековые, в них регистров вообще нет. 😉
Лучше тогда с Limbo VM сравнить. Но там тоже наверняка нет инструкции чтобы удалять или стирать регистр.
источник

К

Константин in Compiler Development
ну там есть локальные переменные
источник

К

Константин in Compiler Development
считай регистры (ну или я неверно выразился)
источник

К

Константин in Compiler Development
Там есть перемещение из стека в локальную и обратно.
источник

AT

Alexander Tchitchigi... in Compiler Development
Локальные переменные тежат на стеке. Это НЕ регистры именно потому что локальные. 😊
источник

К

Константин in Compiler Development
как это на стеке
источник

К

Константин in Compiler Development
хочешь сказать их 2?
источник

K

Kir in Compiler Development
Регистры не нужны, лучше иметь первые N слотов стека неявно регистрами и делать стек-машину
источник

AT

Alexander Tchitchigi... in Compiler Development
источник