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多平臺處理方案的細節尚未完全公開,但是預期將會以更有效的方式處理共用程式碼,以減少重複工作並提高編譯效率。

Popular articles
UK MPs reopen 2025 gambling inquiry as reform stalls
Regulation
Vietnam's tightening online gaming policy creates new market opportunities
Southeast Asia
SBC Summit Canada to Make Player Safety a Key Pillar of 2026 Agenda
Marketing
JILI Partners with Cricket Legend AB de Villiers (ABD) to Launch Exclusive Branded Game Series 100% 11
Sports Game
HUIDU Invites You to Booth T70 at iGB L!VE 2026 — Let’s Ignite London This July!
HUIDU Focus
B2B Tech Infrastructure Gains Momentum in Philippine Gaming Sector
Southeast Asia
Full House at GAT Expo Cartagena 2026 Academic Agenda
Online Game
Kazakhstan plans to penalise online casino promotions
Regulation
Indiana online casino bill stalls in House committee
Regulation
Vietnam’s Controlled Gaming Shift Gains Ground, But Domestic Demand Still Lags
Southeast Asia
Online gambling, crypto pose ongoing money laundering risks in Philippines, analyst says
Southeast Asia
GAT CDMX 2025 Institutional Academy: Leaders and Experts Analyze the Present and Future of the Gaming Industry in Mexico and Lat
Sports Game
1spin4win grows its Latin American presence by partnering with Fortuna Juegos
Online Game
Institutional Academy that exceeded expectations marked the opening of GAT CDMX
Online Game
Are you ready to maximize your earnings? Try ProPush.me Constructor!
Marketing
Home
Game
Cooperation
Find
My