网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

作者 | 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 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
李雪琴暴瘦30斤堪比做了次医美!穿开衫配小吊带又纯又欲

李雪琴暴瘦30斤堪比做了次医美!穿开衫配小吊带又纯又欲

时髦范
2024-12-02 23:34:15
证监会的亡羊补牢!12月4日,今日凌晨的四大消息冲击股市!

证监会的亡羊补牢!12月4日,今日凌晨的四大消息冲击股市!

风口招财猪
2024-12-04 01:20:59
女子排队买咖啡走红,身材高挑和路人对比鲜明,网友:我娶后面的

女子排队买咖啡走红,身材高挑和路人对比鲜明,网友:我娶后面的

梅子的小情绪
2024-12-03 20:43:58
华为“断供”队伍扩大 5G手机P被下架延期!

华为“断供”队伍扩大 5G手机P被下架延期!

小兔子发现大事情
2024-12-04 01:32:48
深圳75后女副区长履新,曾因“一撮白发”走红网络

深圳75后女副区长履新,曾因“一撮白发”走红网络

南方都市报
2024-12-03 16:58:09
全国油价“跌破7.45元/升”后,又连降6天,12月4日晚油价调整

全国油价“跌破7.45元/升”后,又连降6天,12月4日晚油价调整

油价早知道
2024-12-03 09:27:33
俄罗斯队无缘2026世界杯

俄罗斯队无缘2026世界杯

鲁中晨报
2024-12-03 10:28:07
牛市“妖股”,财务造假玩出了新花样

牛市“妖股”,财务造假玩出了新花样

深蓝财经
2024-12-03 19:34:30
武警上将王建平落马:父亲是老革命,岳父也是军队首长

武警上将王建平落马:父亲是老革命,岳父也是军队首长

历史龙元阁
2024-12-02 22:03:00
美国国会经两年调查确认新冠病毒来自实验室

美国国会经两年调查确认新冠病毒来自实验室

西莫的艺术宫殿
2024-12-03 20:03:53
深夜突发,韩元暴跌2%,三星跌去40%,这次问题有点严重

深夜突发,韩元暴跌2%,三星跌去40%,这次问题有点严重

鹏哥投研
2024-12-04 00:10:03
女大学生睡了几百个男人,挣了200万,最高一次8千,副主席牵头

女大学生睡了几百个男人,挣了200万,最高一次8千,副主席牵头

水晶的视界
2024-12-02 20:24:25
再见,皇马!6000万攻击手正式决定离队!安帅钦点签约曼联飞翼

再见,皇马!6000万攻击手正式决定离队!安帅钦点签约曼联飞翼

头狼追球
2024-12-03 09:01:14
黑龙江一执法局正处级干部涉嫌严重违纪违法被查

黑龙江一执法局正处级干部涉嫌严重违纪违法被查

喜哈生活
2024-12-03 21:27:39
带队4连败,从西部第一滑落!NBA软弱的超巨,一手好牌却打烂

带队4连败,从西部第一滑落!NBA软弱的超巨,一手好牌却打烂

老梁体育漫谈
2024-12-03 23:36:10
一旦中美台海爆发冲突,会造成多大伤亡?日本给出预测,目的不纯

一旦中美台海爆发冲突,会造成多大伤亡?日本给出预测,目的不纯

文史道
2024-12-03 06:45:02
随着天津3-0北京,江苏1-3,中国女排联赛积分榜更新,上海优势大

随着天津3-0北京,江苏1-3,中国女排联赛积分榜更新,上海优势大

极度说球
2024-12-03 23:02:35
离婚后弟弟不让我住娘家,5年后我有房有车,我妈让我帮弟弟一把

离婚后弟弟不让我住娘家,5年后我有房有车,我妈让我帮弟弟一把

胡小乖
2024-12-03 19:08:27
收到阿萨德的求救信号,中方专机将赴中东,履行一年前给的承诺?

收到阿萨德的求救信号,中方专机将赴中东,履行一年前给的承诺?

贺文萍
2024-12-02 18:39:08
乔欣被曝结婚后首现身,小腹微凸没戴戒指,新婚丈夫疑似陪伴身边

乔欣被曝结婚后首现身,小腹微凸没戴戒指,新婚丈夫疑似陪伴身边

萌神木木
2024-12-03 16:26:05
2024-12-04 04:40:49
InfoQ
InfoQ
有内容的技术社区媒体
10464文章数 50952关注度
往期回顾 全部

科技要闻

美国芯片慎用!中国四大行业协会发声

头条要闻

韩国最大在野党指责总统涉嫌煽动内乱

头条要闻

韩国最大在野党指责总统涉嫌煽动内乱

体育要闻

特鲁姆普:我还是从前那个少年

娱乐要闻

50岁林志玲生日晒娃引热议

财经要闻

梁建章:建议对生孩子家庭发10万元

汽车要闻

标配Lion5.0科技座舱 风云A8L将于12月17日上市

态度原创

时尚
教育
本地
艺术
公开课

星N代赶超贵族后裔,巴黎名媛舞会降级了?

教育要闻

温州日报作文版作文选登:张芮熙《小猫“七七”》

本地新闻

云游中国|来伦布夏果感受充满Passion的人生

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版