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的连接模型,减少重复符号与额外旗标设置,并让程序库作者更精准控制对外暴露的界面与实例。