Redian新闻
>
KSP2 致力于改善 Kotlin 元编程,并添加对 K2 Kotlin 编译器的支持

KSP2 致力于改善 Kotlin 元编程,并添加对 K2 Kotlin 编译器的支持

公众号新闻

作者 | Sergio De Simone
译者 | 张卫滨
策划 | 丁晓昀

KSP 2.0 是 Kotlin 符号处理(Kotlin Symbol Processing)的演进版本,目前处于预览状态,谷歌的软件工程师 Ting-Yuan Huang 和 Jiaxiang Chen 说到,它引入了新的架构,旨在解决 KSP 1.0 中的一些局限性,并增加了对新的 K2 Kotlin 编译器的支持。

KSP1 是作为编译器插件的形式实现的,而 KSP2 是一个独立的库,无需设置编译器即可运行,并能完全控制其生命周期。Huang 和 Chen 说,这使得以编程方式调用 KSP 以及在 KSP 处理器中设置断点变得更容易。下面的代码展示了如何配置 KSP2 并执行它来处理符号的列表:

val kspConfig = KSPJvmConfig.Builder().apply {  // All configurations happen here.}.build()val exitCode = KotlinSymbolProcessing(kspConfig, listOfProcessors, kspLoggerImpl).execute()

KSP2 中另外一个值得注意的差异是,它使用了仍处于 beta 状态的 Kotlin K2 编译器来处理源码。不过,如果你愿意的话,也可以通过在gradle.properties中设置languageVersion属性,从而以 K1 的方式使用 KSP。

除此之外,KSP2 还旨在解决 KSP1 中的一个缺陷,即同一个源文件可能会被编译多次。借助与 K2 的集成,KSP2 尝试调整 K2 编译文件的方式,使其只处理一次,从而能够提升性能。

KSP2 还引入了一些行为的变化,以提高开发人员的工作效率,以及可调试性和错误恢复能力。

在 KSP 1.0.14 或更新的版本中,可以在gradle.properties中使用一个标记来启用新的 KSP 预览版本:

ksp.useKSP2=true

KSP 是一个支持创建插件来扩展 Kotlin 编译器的 API。它以独立于编译器的方式理解 Kotlin 的语言特性,如扩展函数、声明处型变(declaration-site variance)和局部函数。

该 API 根据 Kotlin 语法在符号层对 Kotlin 程序结构进行建模。当基于 KSP 的插件处理源程序时,处理器可以访问类、类成员、函数和相关参数等构造结构,而 if 代码块和 for 循环等则无法访问。

这使得基于 KSP 的插件不像建立在kotlinc之上的插件那样脆弱,后者功能更强大,但是严格依赖于编译器的版本。

查看英文原文:

KSP2 Aims to Improve Kotlin Meta-Programming, Adds Support for the K2 Kotlin Compiler(https://www.infoq.com/news/2024/01/ksp2-kotlin-metaprogramming/)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

预览版“纯血鸿蒙”开放申请,中国开发者要为“四端”体验一致头痛了

挑战 Spark 和 Flink?大数据技术栈的突围和战争|盘点

谷歌放弃毛利率 99%业务:不想用我们的可以免费迁出!上云免费、下云无限“贵”的时代即将结束?

并发王座易主?Java 21 虚拟线程强势崛起,Go & Kotlin还稳得住吗 | 盘点

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
专访博赛孚创始人:深耕病理学领域30余年,致力于让中国医疗器械评估更有话语权举办大众冰雪节、助推冰雪惠民计划……雪中飞致力于成为百亿级国货品牌调查了800种零添加商品,却发现加了81种添加剂:“0添加”“不干净”保守的支持率跌至Sunak任期来最低!英国百万英镑以上房产热点地区揭晓,伦敦占主导!英国能源费用下降曲奇界中的“爱马仕”!日销上万盒,天天抢断货!AKOKO曲奇究竟有多好吃?!积重难返?这国领导人的支持率又创新低!深度 I 民主党想要增加对边境的控制,共和党反倒横加阻拦,怎么回事?老钱:“不须放屁”2024元旦新年快乐!万事胜意,感谢您的支持与关注并发王座易主?Java 21 虚拟线程强势崛起,Go & Kotlin还稳得住吗 | 盘点家居自己做过的事系列:电工(1)Spring Boot 玩一玩代码混淆,防止反编译代码泄露近期消息综合(wk2348,中美直航,马来西亚免签贴士,常客计划,近期没走成的低级错误等)美国建筑系学生致力于如何最好地重建乌克兰城市Kotlin 黄金时代结束,将要开始走下坡路了?喝酸奶防抑郁!新研究揭示益生菌调节情绪新机制,有助于改善心理健康!潮流 | JACQUEMUS 发布春夏系列;Kiko Kostadinov x Levi's® 单品曝光解锁未来:硅谷 Data Hacks 数据科学 “骇客松” Workshop 成功举办!春招岗位 | MathWorks捞NG,支持sponsor、办公氛围绝佳!欧盟这样做,"巴西怒批,并获中国等国支持"招募类风湿关节炎患者@中国医学科学院北京协和医院及全国61家参研医院-创新药TYK2/JAK1双抑制剂&热门靶点招募中重度银屑病患者@中国医学科学院皮肤病医院及全国7家参研医院-诺诚健华自主研发的TYK2 变构抑制剂ICP-488豫园灯会美出圈!上海专属“年味儿”背后,离不开这个专业的支持!命运组合论 第一章 绪论 第二节华人"虎妈"培养2个亿万富翁 他俩居然是兄弟!? 最不成器的也...华人"虎妈"教出2个亿万富翁 他俩居然是兄弟!? 最不成器的也...2/3/2024-2/9/2024 法拉盛新龍興祝大家新年快乐,感谢各位小伙伴的支持与陪伴,祝大家万事如意,新年胜旧年!6053 血壮山河 卢沟桥之变 22《流浪地球2》里神奇的同声传译器,2024年就变成现实了?Jim Keller的AI芯片编译器名为BUDA,硬件细节曝光!近期消息综合(wk2349,中国签证费下调,哪些人最受益|新的进入香港的方式|错价票的一些想法)利用AI实现系统化重编程,英国抗衰老初创完成4600万美元A轮融资OpenAI内幕文件惊人曝出,Q*疑能破解加密!AI背着人类在编程,网友:三个月接近AGI德州州长获14位州长对边境的支持家居自己做过的事系列:电工(2)
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。