Swift團隊預告將會對Swift 6.3中的Embedded Swift進行強化,鎖定微控制器(MCU)等資源受限環境,從標準函式庫、C語言互通、除錯工具到連結模型,都有具體更新。相關新功能已納入開發中版本,開發者可透過Swift開發中版本快照率先體驗。

Embedded Swift是為資源受限環境設計的Swift子集,透過特殊編譯模式產生更小的執行檔。在標準函式庫方面,Swift 6.3補上Embedded Swift對浮點數輸出的缺口,description與debugDescription改為全以Swift實作,方便直接在裝置端輸出數值進行紀錄與除錯,並新增EmbeddedRestrictions診斷群組,在編譯階段標示未支援的語言特性,讓開發者在桌面環境就能先行調整程式碼。

硬體操作的相關套件Swift MMIO也更新至0.1.x版,最大亮點是加入從CMSIS SVD描述檔產生程式碼的工具,減少手寫暫存器介面的時間與錯誤。搭配SVD2LLDB外掛,LLDB可直接以暫存器名稱存取暫存器並顯示位元欄位的視覺化解碼,讓韌體除錯不必再對照記憶體位址即可理解暫存器語意。

Swift 6.3在C語言互通上也有更新,進一步降低Embedded Swift導入既有C程式庫的門檻。新導入的@c屬性,提供以Swift定義可由C呼叫的函式與列舉,並將舊有實驗性@_cdecl正式化。搭配@implementation,開發者可以沿用既有C標頭檔,以Swift實作同名介面,由編譯器比對函式名稱與型別是否一致,降低以Swift重寫C程式庫時對既有C呼叫端的影響。編譯器也放寬對C函式簽章細微差異的處理,減少因註記不一致造成的編譯失敗。

Swift 6.3也針對Embedded Swift做了整理。LLDB強化了對Swift型別的值輸出與記憶體讀取,搭配更完整的DWARF除錯資訊與對巢狀泛型型別別名的支援,讓陣列、字典(Dictionary)等標準資料型別在記憶體傾印中也能直接檢視。在連結層,Swift 6.3透過@section、@used與objectFormat條件判斷,搭配以弱定義輸出匯入模組符號以及新加入的@export屬性,整理Embedded Swift的連結模型,減少重複符號與額外旗標設定,並讓程式庫作者更精準控制對外暴露的介面與實作。

熱門新聞

Advertisement