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