Новый компилятор Kotlin в 1.4 // Kotlin Compiler IR // Плагины компиляторов

Опубликовано: 01 Январь 1970
на канале: Android Broadcast. Все об Андроид разработке
2,318
134

#AndroidBroadcast #Kotlin #Compiler

Команда Kotlin активно занимается переписыванием компилятора языка, чтобы ускорить его; объединить кодовую базу между JVM, Native и JS backend; открыть API плагинов компилятора и др. улучшения. В выпуске копаемся в изменениях под капотом компилятора и будущем.

Гость - Семён Огородник, Kotlin Compiler Frontend-IR (FIR) Tech Lead в JetBrains, Работает в Kotlin уже 4 года. До FIR работал в Kotlin IDE team, там успел позаниматься J2K, Completion и производительностью. Некоторое время поддерживал Dokka

Полезные ссылки:
📰 Telegram канал с полезными материалами для Android разработчиков - https://ttttt.me/android_broadcast
💰 Поддержать проект через Boosty https://boosty.to/androidbroadcast или Patreon https://bit.ly/2TBOzlu
🔗 Слайды - https://docs.google.com/presentation/...
🔗 Новый JVM IR Backend - https://kotlinlang.org/docs/reference...
🔗 What to Expect in Kotlin 1.4 and Beyond - https://blog.jetbrains.com/kotlin/201...
🔗 Kotlin Symbol Processing
https://github.com/android/kotlin/tre...

Таймкоды:
0:00 Знакомство с гостем
6:20 Без высшего образования в JetBrains
10:24 Что такое Kotlin компилятор?
14:29 New Kotlin Compiler Internals
19:06 PSI
20:01 BindingContext
22:20 Intermediate Representation (IR)
24:07 Kotlin Compiler Frontend IR (FIR)
31:55 Проблема множества IR
36:22 Ускорение IDE в Kotlin 1.4
42:00 Будут ли улучшения в KAPT? Kotlin Symbol Processing
56:00 Jetpack Compose, IR и новый компилятор
1:04:36 Отличия IR и JVM Bytecode
1:09:10 Самый затратный этап компиляции
1:10:52 Гарантии стабильности API. Experimental & OptIn
1:16:28 Расход памяти в PSI и FIR
1:18:25 Явные типы ускоряют компиляцию
1:20:49 Оптимизация кода под новый компилятор
1:24:31 Как использовать компилятор Kotlin в приложении
1:26:18 Значимость IR для Kotlin Multiplatfrom
1:29:23 Почему не стоит использовать шаблон Visitor
1:31:01 Оптимизация рекурсий
1:32:53 Плагины компиляторов
1:35:00 Компиляция на GPU
1:36:21 Какие задачи сможет решить новый компилятор
1:38:08 Подведение итогов