Kotlin後設程式開發工具KSP2預覽,支援新Kotlin編譯器與原始碼生成器
· 2023-12-11

KSP2預覽支援新的K2編譯器,以及高效靈活的獨立原始碼生成器,並更新多平臺處理方案改善共用程式碼處理效率

Google發布KSP2(Kotlin Symbol Processing)預覽的消息,KSP2支援代號為K2的新Kotlin編譯器,同時還會新加入一個獨立原始碼生成器,相比目前的Kotlin編譯器擴充套件,這個獨立的原始碼生成器將提供更多的功能以及靈活性。

KSP是一個用於Kotlin後設程式開發(Meta-Programming)的高階API。後設程式開發是一種程式開發技術,供開發者編寫能夠操作或是改變其他程式碼的程式碼,也就是說,在後設程式開發中,程式碼不僅僅是完成特定功能的指令,還能夠對程式碼進行分析、修改、生成和轉換。

由於KSP提供後設程式開發的功能,因此許多Kotlin開發工具都是建立在KSP之上,讓Kotlin程式碼在編譯的時候生成。例如Google的Jetpack Room就是KSP的衍伸工具,能夠根據開發者提供的介面,產生存取資料庫的程式碼。

而雖然KSP已經成為Kotlin後設程式開發的核心基礎,但是Google提到,KSP與當前的一些實作還存在一些差距,因此希望透過新的KSP2架構來解決。KSP2支援使用目前正在開發,預計在Kotlin 2.0正式發布時成為預設的K2編譯器。

過去KSP1可以理解為Kotlin 1.x編譯器的擴充套件版本,使用KSP1需要執行編譯器,並指定KSP及其擴充套件選項。在Gradle中,KSP的任務是客製編譯任務,在預設情況中,這些任務實際會分派給KotlinCompileDaemon執行,但因為KotlinCompileDaemon在其自己的程序中運作,位於Gradle的外部,因此讓KSP除錯和測試變得困難。

而在KSP2被實作成帶有主要進入點的函式庫,這代表建置系統和工具,不需要配置編譯器,可以透過這個進入點呼叫KSP2,這種方法使得程式化呼叫KS2變得很簡單,特別是在除錯和測試上特別有用。開發者將可以在KSP Processor元件設置中斷點,大幅簡化除錯過程。

Google同時也調整了部分KSP2 API的行為,讓開發人員的工作效率更好,也提供更好的可除錯性和錯誤恢復能力,例如在解析Map<String, NonExistentType>時,在KSP1的時候僅會回傳錯誤型別,到了KSP2則會回傳Map<String, ErrorType>。

KSP2在多平臺處理方案(Processing Scheme)也將會更新,處理共用程式碼將會更有效率。在之前的版本,當開發者有一個多平臺Kotlin專案,共用的程式碼會依據個別目標平臺,被重複處理和編譯多次,這樣雖然可以確保共用程式碼都能正確被處理,但卻是效率不彰的方法。儘管KSP2多平臺處理方案的細節尚未完全公開,但是預期將會以更有效的方式處理共用程式碼,以減少重複工作並提高編譯效率。

热门文章
2027 Global Game Connect(GGC)斯里兰卡招商全面开启!业务人脉尽在掌握!
灰度头条
灰度世界杯嘉年华狂欢派对吉隆坡站即将开启,业务拓展人脉社交从马来西亚开始
灰度头条
斯里兰卡博弈产业大转型,官方:剑指南亚拉斯维加斯
游戏风向
哈萨克斯坦计划对在线赌场促销活动进行处罚
游戏风向
亚洲游戏市场观察:15大市场热门游戏与用户趋势
线上游戏
菲律宾博彩技术赛道迎来新变局,B2B 供应模式加速渗透
东南亚资讯
超级PAC筹资4800万美元:体育博彩势力加码
游戏风向
巴西颁布新法赋权央行封锁非法博彩账户及 Pix 交易
支付动态
JILI 宣布与全球板球传奇 AB de Villiers(ABD)达成重磅战略合作
体育游戏
英国确认各垂直行业的赌博税税率
游戏风向
横跨全球6个城市,灰度8场派对邀你共看世界杯,重塑高质量社交新场景
灰度头条
GGC Awards 2026 璀璨科伦坡:致敬 iGaming 行业的领航者与创新力量
灰度头条
BETFAIR 网络攻击80万用户资料泄露
游戏风向
越南博彩管控逐步放宽,惟本土需求仍显乏力
东南亚资讯
印度最高法院受理公益诉讼,要求全国禁封“伪装”成社交游戏的赌博平台
游戏风向
首页
游戏
合作
发现
我的