тогда в андроид shrinking не нужен будет.
только вот всякие драйвера и прочие штуки, завязанные на рефлексии может выкинуть 🙈
Я пока в принципе никаких планов не слышал о том, чтобы на JVM как-то по-разному обрабатывать библиотечный код, который open world без вариантов, и код приложения, который можно было бы как closed world рассматривать. А DCE без assumption касательно closed world не выйдет.
есть. Но пока очень зыбкие
По крайней мере обсуждения были на эту тему.
Хм, интересно, я не натыкался.
Ну чисто в принципе, никто не мешает делать closed world для приложений на JVM-IR. Просто сейчас вообще нет генерации бинарей родного для котлина. Это может быть опцией для https://youtrack.jetbrains.com/issue/KT-42683
А с чего котлин должен заниматься DCE в левых либах, которые написаны неизвестно на чём?
Это будет возможно, если все перейдут на klib и не будет джава библиотек/фреймворков, которые используют рефлексию.
Ну для рефлексии можно в каком-то виде исключения обозначить — всё же и активно юзаемый андроидщиками (и не только) прогард, и тот же граальвм такое позволяют.
klib это результат работы фронтэнда? (не разбирался ещё)
Это общий формат для всех ir либ
Klib - это сериализованный IR.
Это в светлом будущем, в котором котлин захватил мир?
Смысл в том, что сейчас DCE не сложно сделать, но он будет распространться только на клибы.
Так чтобы его сделать, надо будет не только котлиновский код обрабатывать, а ещё джавовый байткод либ. Какой смысл дублировать proguard?
Обсуждают сегодня