Size: a a a

Compiler Development

2020 December 19

DF

Dollar Føølish in Compiler Development
А, верно
источник

AT

Alexander Tchitchigi... in Compiler Development
Кроме того, для стекового байт-кода не нужно заниматься аллокацией регистров. 😃
источник

E

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

AT

Alexander Tchitchigi... in Compiler Development
EgorBo
для сценариев дебага байт код и не надо в натив компилировать
О том и речь.
источник

E

EgorBo in Compiler Development
ну так это то что я назвал и оно работает
источник

E

EgorBo in Compiler Development
источник

E

EgorBo in Compiler Development
вот ограничения инстант рана в андроид студио
источник

AT

Alexander Tchitchigi... in Compiler Development
OK, прикольно что в Java/.NET переизобрели этот приём. 😊
источник

E

EgorBo in Compiler Development
например меняешь layout класса - то уже не рабоает (но и логично)
источник

AT

Alexander Tchitchigi... in Compiler Development
Интересно, были ли такие ограничения в Eiffel Studio? Или они класс целиком в байт-код перегоняли? 🤔
источник

E

EgorBo in Compiler Development
я думаю это связано с тем, что там для других уже скомпиленных методов мог заинджектится константый размер класса или офсет поля и всё надо переделывать, ну что-то типа такого.

фиксить это думаю смысла нет, эта фича больше направлена на изменения внутри методо
источник

DB

Dmitry Borisenkov in Compiler Development
MrSmith
Меняем вопрос на зачем ускорять IDE и не возникает вопрос целесообразности
Ну ускорение IDE это скорее про ускорение фронтэнда, ускорение компилятора - это скорее ускорение кодгена. В контексте IDE задача актуальна, да.
источник

M

MrSmith in Compiler Development
Dmitry Borisenkov
Ну ускорение IDE это скорее про ускорение фронтэнда, ускорение компилятора - это скорее ускорение кодгена. В контексте IDE задача актуальна, да.
Да кто это сказал, сушественная часть компилятора это сематический анализ.
Если у нас болид формулы 1 и мы облегчели кузов и получили прирост в 3-4% мы все еше получили прирост, да и для задачи кодогена узким местом будет перегнать с одного ir в другое
источник

M

MrSmith in Compiler Development
Dmitry Ponyatov
инкрементная компиляция + оптимизации и анализ, работающие в фоне интерактивной системы?
(косясь на Pharo Smalltalk)
Да, мне вообше странно почему так никто не делает, зачем вообше запускать компилятор когда он может работать все свободное время как часть IDE, сейчас все есть сервис, ну пусть и компилятор им будет
источник

A

Arelav in Compiler Development
Dmitry Borisenkov
А зачем ускорять компиляторы? JITы разве что, но если скорость выполнения программ критична, то AOT будет лучше. Разве что супероптимизатор какой-нибудь на GPU может иметь какой-то практический смысл.
Ну поменял что то в используемом почти всеми хедере и ждёшь 20 минут. Ещё для ci может быть важно. Но это я так жалуюсь
источник

A

Arelav in Compiler Development
Dmitry Borisenkov
Инкрементальная сборка не в помощь?
Ну зависит от того что делаешь обычно норм да. Хотя субъективно даже несколько минут это достаточно долго. Конкретно в моем случае наверно  в таких кейсах больше времени занимает линкер, не задумывался
источник

E

EgorBo in Compiler Development
https://github.com/hajimehoshi/go2cpp - порадовало, перевод го в С++ через васм -_- сс @maxgraey
источник

PS

Pavel Samolysov in Compiler Development
Arelav
Ну поменял что то в используемом почти всеми хедере и ждёшь 20 минут. Ещё для ci может быть важно. Но это я так жалуюсь
Кстати да, для ci крайне важно, на JAVA какой-нибудь микросервис можно каждый раз в новом докере собирать на каждом прогоне, она быстро компилируется, а с c++ да чем-то большим так не получится. И тут нужна какая-то штука, которая обеспечит корректный билд при условии, что вот был код Васи, мы его собрали, протестили и удалили, а теперь прилетел код Пети и желательно собрать его без хвостов. Хотя если собирать какой-нибудь Eclipse platform, то и то, что он на JAVA не поможет.
источник

BD

Berkus Decker in Compiler Development
EgorBo
я так понимаю "Instant Run" для андроида так работает, когда изменения кода небольшие и это позволяет мгновенно перезапустить апп
Д, оно просто досыпает к бинарю измененные методы и пропатчивает вызовы
источник

E

EgorBo in Compiler Development
Berkus Decker
Д, оно просто досыпает к бинарю измененные методы и пропатчивает вызовы
чем это отличается от того что я сказал?
источник