Apple Swift 團(tuán)隊(duì)的一名工程師兼語(yǔ)言工作組成員 John McCall 在最新發(fā)布的一篇博客中介紹了 Swift 的 2023 年度計(jì)劃。 “Swift 項(xiàng)目中有很多激動(dòng)人心的工作正在進(jìn)行,而且很難跟蹤所有這些工作,因?yàn)樗l(fā)生在許多不同的存儲(chǔ)庫(kù)、拉取請(qǐng)求和論壇線(xiàn)程中。為了讓社區(qū)更好地了解全局,核心團(tuán)隊(duì)調(diào)查了整個(gè)項(xiàng)目的工作組和開(kāi)發(fā)人員,并收集了有關(guān)他們明年關(guān)注的內(nèi)容的信息。”
社區(qū)組織方面,Swift核心團(tuán)隊(duì)最近開(kāi)始重組,以便由專(zhuān)門(mén)的工作組承擔(dān)更多責(zé)任:
語(yǔ)言工作組—— 發(fā)展語(yǔ)言和標(biāo)準(zhǔn)庫(kù)
網(wǎng)站工作組—— 管理swift.org網(wǎng)頁(yè)內(nèi)容
文檔工作組—— 組織文檔工具和庫(kù)的開(kāi)發(fā)
C++ 互操作性工作組—— 孵化語(yǔ)言提案以提高與 C++ 的互操作性
根據(jù)介紹,這些新的工作組加入了長(zhǎng)期存在的 Swift on Server 和 Diversity 工作組,使感興趣的用戶(hù)可以更有針對(duì)性的加入專(zhuān)門(mén)的工作組來(lái)做出貢獻(xiàn)。核心團(tuán)隊(duì)正在研究創(chuàng)建更多的工作組,包括一個(gè)致力于提高 Swift 跨平臺(tái)可用性的工作組。 核心團(tuán)隊(duì)的成員也有所更新,Mishal Shah將加入核心團(tuán)隊(duì)。“作為支持 Swift 項(xiàng)目的許多底層基礎(chǔ)架構(gòu)的領(lǐng)導(dǎo)者和倡導(dǎo)者,一段時(shí)間以來(lái),Mishal 在支持 Swift 項(xiàng)目的發(fā)展方面發(fā)揮了重要作用。” 語(yǔ)言發(fā)展方面,語(yǔ)言工作組專(zhuān)注于在五個(gè)主要語(yǔ)言領(lǐng)域取得進(jìn)展:
并發(fā)。完成對(duì)Sendable和actors提供的嚴(yán)格數(shù)據(jù)隔離的語(yǔ)言支持。計(jì)劃包括關(guān)閉許多已知的線(xiàn)程安全漏洞,例如圍繞全局變量和某些 cross-actor 調(diào)用的漏洞。它還包括配備一些功能來(lái)解決因strict isolation而產(chǎn)生的可用性問(wèn)題,例如允許 non-Sendable 在受限情況下在隔離域之間移動(dòng)。
泛型。語(yǔ)言工作組打算致力于可變參數(shù)泛型語(yǔ)言特性工作。這是一項(xiàng)預(yù)計(jì)需要多年才能完成的主要功能,最初側(cè)重于設(shè)計(jì)核心語(yǔ)言模型并實(shí)現(xiàn)編譯器和運(yùn)行時(shí)基礎(chǔ)架構(gòu)以支持它。一個(gè)早期的里程碑將是允許元組類(lèi)型在其元素符合 Equatable 等協(xié)議時(shí)有條件地符合協(xié)議。
所有權(quán)。
開(kāi)發(fā)功能讓程序員明確控制內(nèi)存中值的所有權(quán)。
添加對(duì) non-copyable 類(lèi)型的基本支持。這將提供通過(guò)限制關(guān)鍵值的生命周期來(lái)實(shí)現(xiàn)高性能的新方法。這些控件將啟用處理內(nèi)存中數(shù)據(jù)的新方法,將當(dāng)前 “不安全” 構(gòu)造的性能與 Swift 標(biāo)準(zhǔn)庫(kù)功能的安全性相結(jié)合。
宏。著眼于進(jìn)一步支持創(chuàng)建豐富的庫(kù)和 DSL。這項(xiàng)工作將從創(chuàng)建vision document開(kāi)始,為宏能夠在 Swift 中實(shí)現(xiàn)什么以及它們?nèi)绾稳谌胝Z(yǔ)言進(jìn)行設(shè)計(jì)。
C++ 互操作性。
編寫(xiě)文檔,闡述如何使 C++ API 在 Swift 中可用,反之亦然。
穩(wěn)定當(dāng)前在 Swift 中使用 C++ 的原型互操作性功能,包括 owned value types、trivial value types、API 模式(例如外部引用類(lèi)型和迭代器),以及一些關(guān)于方法、指針、l-value 和 r-value 引用的一些基本問(wèn)題。
穩(wěn)定當(dāng)前用于從 C++ 使用 Swift 的原型互操作性功能,包括 Swift 值類(lèi)型、引用類(lèi)型和函數(shù) exposed 給 C++ 的方式。
此外,語(yǔ)言工作組還正計(jì)劃為即將到來(lái)的 Swift 6 語(yǔ)言模式完成預(yù)期的語(yǔ)言修訂。Swift 定期引入新的語(yǔ)言模式,以便語(yǔ)言可以在不破壞現(xiàn)有代碼的源兼容性的情況下取得進(jìn)步。以及編譯器開(kāi)發(fā)團(tuán)隊(duì)正在努力改進(jìn)編譯器與構(gòu)建系統(tǒng)和自身其他調(diào)用的交互方式。 對(duì)于 Package Registry,Swift 包管理器的開(kāi)發(fā)重點(diǎn)是與社區(qū)一起開(kāi)始開(kāi)源 package registry server 實(shí)現(xiàn)的工作。目標(biāo)是創(chuàng)建將 Swift 包生態(tài)系統(tǒng)從基于源代碼控制的生態(tài)系統(tǒng)過(guò)渡到基于注冊(cè)表的系統(tǒng)所需的技術(shù)組件,從而增強(qiáng)生態(tài)系統(tǒng)的安全性和可靠性。其計(jì)劃將與 Swift Package Index 等社區(qū)運(yùn)行的項(xiàng)目合作。 2023 年針對(duì) Swift 的其他努力還包括:
開(kāi)發(fā)一個(gè) Swift 解析器,它是用純 Swift 編寫(xiě)的,并且具有當(dāng)前 C++ 實(shí)現(xiàn)的功能。這開(kāi)辟了工具開(kāi)發(fā)的新方向,最終將取代 C++ 解析器。
通過(guò)將類(lèi)型推理實(shí)現(xiàn)遷移到支持 multi-statement closure 推理的更具可擴(kuò)展性的基礎(chǔ)架構(gòu),提高結(jié)果 result builders 的類(lèi)型檢查性能。
通過(guò)與類(lèi)型檢查器更緊密地集成,提高 code completion 和 lookup-dependent 工具(例如快速幫助和跳轉(zhuǎn)到定義)的可靠性,尤其是在不完整或不明確的代碼中。
在某些情況下,通過(guò)消除對(duì)轉(zhuǎn)換 thunk 的需要,在轉(zhuǎn)換函數(shù)時(shí)生成更少的代碼,尤其是在將 closures 傳遞給通用函數(shù)和導(dǎo)入函數(shù)時(shí)。
通過(guò)解釋 type layout 的 compact encoding 而不是發(fā)出 specialized functions,在 copying 和 destroying 復(fù)雜的結(jié)構(gòu)和枚舉時(shí)生成更少的代碼。
添加 SIL 優(yōu)化器支持新語(yǔ)言功能和與 object lifetimes 和 copies 相關(guān)的可預(yù)測(cè)優(yōu)化。團(tuán)隊(duì)正在設(shè)計(jì)一套新的 low-level SIL 實(shí)用程序,以在整個(gè)現(xiàn)有優(yōu)化管道中保持所有權(quán)不變性。這將導(dǎo)致可靠的診斷和可預(yù)測(cè)的性能。
在 Swift 中重寫(xiě)當(dāng)前的過(guò)程間 side-effect 和 escape analyses,替換當(dāng)前的 C++ 實(shí)現(xiàn)。新的實(shí)現(xiàn)提供了更準(zhǔn)確的結(jié)果并且明顯更簡(jiǎn)單。
審核編輯 :李倩
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62972 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73857 -
生態(tài)系統(tǒng)
+關(guān)注
關(guān)注
0文章
704瀏覽量
20784
原文標(biāo)題:Swift 2023:強(qiáng)調(diào)并發(fā)、泛型和C++互操作性,開(kāi)發(fā)Swift解析器
文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論