Size: a a a

Compiler Development

2020 December 18

M

MrSmith in Compiler Development
Andrei Kurosh
не знаю. но думаю что в индустрии не дураки сидят, если бы можно было - кто-то это уже сделал бы
Дак делали и не раз
https://t.co/33HRYoPo3m?amp=1
источник

BD

Berkus Decker in Compiler Development
K R
Makefile'ов
Ну во первых надо генерить нинзю, во вторых это по большей части разовая операция
источник

M

MrSmith in Compiler Development
Dmitry Borisenkov
А зачем ускорять компиляторы? JITы разве что, но если скорость выполнения программ критична, то AOT будет лучше. Разве что супероптимизатор какой-нибудь на GPU может иметь какой-то практический смысл.
Меняем вопрос на зачем ускорять IDE и не возникает вопрос целесообразности
источник

M

MrSmith in Compiler Development
Andrei Kurosh
представьте, сколько времени уходит на цикл "запустил - воспроизвел баг - поправил - перезапустил" на крупных проектах на C++
repl
источник

M

MrSmith in Compiler Development
Berkus Decker
наверное инкрементальная сборка больше для быстрой итерации, а полная мощь оптимизации для финальной сборки? они немного противоречат друг другу
Я думаю просто не придумали как правильно готовить, в реальности пофиг сколько времени занимает начальный билд, главное что бы последуюшие были максимально минимальными
источник

s

suhr in Compiler Development
MrSmith
Я думаю просто не придумали как правильно готовить, в реальности пофиг сколько времени занимает начальный билд, главное что бы последуюшие были максимально минимальными
Проблема в том, что глобальные оптимизации глобальны.
источник

M

MrSmith in Compiler Development
Просто уверен что есть что то типа отката, говорим вот это вот диоптимизируй или что то вроде того
источник

M

MrSmith in Compiler Development
Как всегда порыться в пейперах и найдутся 3-4 подхода которые просто скорей всего потребуют переписать половину транслятора на монадах или что то типо того
источник

M

MrSmith in Compiler Development
Я когда в начале хотел писать компилятор си задался желанием сделать управляемую трансляцию с морфингом IR, в принципе оказалось что это можно сделать, нужно просто с нуля писать трансляцию
источник

M

MrSmith in Compiler Development
Поэтому никто такое и не делает сумасшедшие трудозатраты, высокие требования к сопровождающим программистам и тд
источник

KR

K R in Compiler Development
Berkus Decker
Ну во первых надо генерить нинзю, во вторых это по большей части разовая операция
В кровавом ынтерпрайзе это не разовая операция, машины огромные, однопоточная производительность фигова. А результат - 2 часа на пересборку. 😞
источник

M

MrSmith in Compiler Development
K R
В кровавом ынтерпрайзе это не разовая операция, машины огромные, однопоточная производительность фигова. А результат - 2 часа на пересборку. 😞
Значит и так нормально
источник

М

Михаил in Compiler Development
В некоторых кровавых ынтерпрайсах пересобирают сам компилятор с PGO (Яндекс, основной поиск) и получают таки прирост
источник

KR

K R in Compiler Development
А в JaneStreet, которая не менее кровавый ынтерпрайс (и всё время пытается засрать экосистему Ocaml), пишут свою, быструю систему сборки.

Вообще, это очень сильно зависит от культуры сообщества - какие-то сдвинуты на корректности, какие-то на скорости, каким-то нужна обратная совместимость.
источник

M

MrSmith in Compiler Development
Поправка на кор тиме, ну действительно кто платит тот барышню и танцует, а как иначе то
источник
2020 December 19

KR

K R in Compiler Development
Ну там как-то так получается, что культура сообщества остаётся, вне зависимости от того, кто платит.
источник

KR

K R in Compiler Development
Да и непонятно, сколько надо платить, чтобы сделать все инструменты C++ отрабатывающими со скоростью Ocaml'овских.
источник

M

MrSmith in Compiler Development
Так не бывает, фитчи можно бесконечно поставлять а делать будут то за что платят
источник

M

MrSmith in Compiler Development
K R
Да и непонятно, сколько надо платить, чтобы сделать все инструменты C++ отрабатывающими со скоростью Ocaml'овских.
Нисколько, там как раз платят что бы не делать
источник

KR

K R in Compiler Development
Всегда есть некоторая свобода. Всегда что-то можно сделать несколько быстрее, а можно несколько медленнее. Можно сделать так, чтобы компилятор отрабатывал Hello World быстро на LinkIt, а можно нацеливаться на рабочую станцию.
источник