Meta-programming with Kotlin compiler plugins
summary
Shows how a real Kotlin compiler plugin is built, registered via META-INF/services, and debugged by setting Kotlin.compiler.execution.strategy = in-process so breakpoints hit; uses Kotlin 1.9 K2 front-end (FIR) and IR generation extensions, registers FIR and IR extensions, and prints a live “Hello world” to prove execution. Recommends KSP over plugins unless you must modify existing declarations or function bodies, warns the plugin API is unstable and multi‑Kotlin‑version maintenance is painful, and notes K2 will simplify distribution to a single JAR.
AI-written summary · about
chapters (11)
- 0:00Introduction to meta-programming
- 1:14What is meta-programming?
- 4:42Compile-time introspection tools
- 8:51Kotlin compiler plugins evolution
- 16:58Live plugin development demo
- 25:34Building a compiler plugin
- 30:28Hard lessons learned
- 33:38KSP vs compiler plugins
- 35:47Testing Kotlin compiler plugins
- 36:49Sky: Swift-friendly Kotlin API
- 37:31Q&A
related talks
36mMeta-programming with Kotlin compiler plugins
33mMeta-programming with KSP and Kotlin compiler plugins
44mMeta-programming with KSP and Kotlin compiler plugins
42mMeta-programming with K2 compiler plugins
01h 13mThe Magic of Kotlin Compiler Extensions
45mCompiler plugins: modifying and analyzing Compose
44mExploiting Kotlin Metadata + Annotation Processing
43mWriting Your First Kotlin Compiler Plugin
