There are changes in core module itself to be aware of:
DataRowApi.kt is related to https://github.com/Kotlin/dataframe/issues/113. Compiler plugin automatically adds DataRowSchema as a supertype to data schemas, enabling those APIs. To be continued later
Changes in insert.kt. An attempt to make it work over a generic tree, in order to share implementation between compiler plugin and core library
Across library added annotations that provide required meta information for compiler plugin
aggregate, toDataFrame functions user to be member functions in Grouped, GroupBy interfaces. Now they are extension functions, in order for plugin to work + it's not clear why they should be member function after all
Compiler plugin module consists of three main parts:
Plugin that generates extension properties, that will replace KSP plugin as it generates declarations in IDE without running a Gradle task. Related to https://github.com/Kotlin/dataframe/issues/120
Plugin that adds DataRowSchema supertype to a data schema annotated declarations.
Most importantly, plugin that makes it possible to elevate compile time information from function arguments to type level. Plugin updates types of DataFrame objects whenever supported (=annotated with Refine) function is called with constant arguments. Most of the code here is its implementation
There are changes in core module itself to be aware of:
Compiler plugin module consists of three main parts:
Everything related to compiler plugins aimed at K2 compiler https://github.com/Kotlin/dataframe/issues/704