Size: a a a

pro.graphon (and gamedev)

2020 December 17

U

UsernameAK in pro.graphon (and gamedev)
как джавист скажу: это помогает лишь отчасти
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Alexander Potapov
я смотрю на свои бинари по 200мб и думаю... все же где-то мы пошли не туда
надо на них смотреть через призму утилиты nm или size. Многие вопросы отпадут.
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
да все я понимаю. Там шаблоны. много шаблонов
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
UsernameAK
шаблоны в плюсах вообще странная вещь: идея хорошая, а реализация говно
в чём же? Они поставленную задачу решают. Что может быть лучше?
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
и LTO еще шалит
источник

U

UsernameAK in pro.graphon (and gamedev)
Anatoly Tomilov
в чём же? Они поставленную задачу решают. Что может быть лучше?
как минимум проблема в том что они еще и решают задачи для которых они не предназначены
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Anatoly Tomilov
в чём же? Они поставленную задачу решают. Что может быть лучше?
чтобы они не требовали исходного кода для компиляции? Чтобы они не дублировались на каждый TU к примеру?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
UsernameAK
как минимум проблема в том что они еще и решают задачи для которых они не предназначены
Ну вряд ли это проблема шаблонов
источник

U

UsernameAK in pro.graphon (and gamedev)
Alexander Potapov
чтобы они не требовали исходного кода для компиляции? Чтобы они не дублировались на каждый TU к примеру?
кстати по стандарту такое предусмотрено вроде как
источник

U

UsernameAK in pro.graphon (and gamedev)
правда ни один компилятор так не умеет...
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
по стандарту вообще у нас машина тьюринга C++ код исполняет
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Alexander Potapov
чтобы они не требовали исходного кода для компиляции? Чтобы они не дублировались на каждый TU к примеру?
абсурд. TU по определению будет требовать отдельного инстанцирования. Без модулей иначе никак. Это не проблема языка вообще. Это проблема организации сборки больших кодовых баз.
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
ну вот дизайн языка с инклюдами форсил с самого начала такой подход с копированием и  многократным парсингом одинакового кода
источник

U

UsernameAK in pro.graphon (and gamedev)
Anatoly Tomilov
абсурд. TU по определению будет требовать отдельного инстанцирования. Без модулей иначе никак. Это не проблема языка вообще. Это проблема организации сборки больших кодовых баз.
про IU ты, конечно же, не слышал?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
другое дело, что можно потом сделать "дедупликацию" во время линковки — это уже вообще к языку не относится
источник

U

UsernameAK in pro.graphon (and gamedev)
которые не поддерживаются ни одним компилятором, но всегда были в стандарте
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
UsernameAK
про IU ты, конечно же, не слышал?
нет
источник

U

UsernameAK in pro.graphon (and gamedev)
instantiation units гугли
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Anatoly Tomilov
другое дело, что можно потом сделать "дедупликацию" во время линковки — это уже вообще к языку не относится
> во время линковки
> у меня код линкуется больше минуты из-за LTO, не надо, и так больно
источник

U

UsernameAK in pro.graphon (and gamedev)
UsernameAK
instantiation units гугли
это как раз про компиляцию шаблонов один раз
источник