💬 Pofat 的話
上週休刊週是波報滿週歲的日子,本來懷抱著寫一篇紀念的心情,豈料機上的 WiFi 服務太鳥蛋,唯一連線成功的時刻是成功地向我的信用卡扣款,然後再也沒連上過,國外服務果然厲害,只有收錢時不會出差錯 😉。
總之,來回顧一下過去這一年吧:
一共寫了四十八篇,平均每三個月休息一期,體弱多病 weak self 😌
絕大多篇是在倫敦寫完的,其它也有在台灣、美國、法國和捷克寫過週報(當然還有公海上)
清道夫系列出了一篇後拖延症發作,稿不出來
訂閱人數 941, 還是沒能破千啊,最近兩個月以來生長遲緩,不過讀書筆記有此成績已心懷感激
66%的訂閱來自台灣,剩下較大眾的依序為中美日,但只有在美國寫過,是不是該旅行了(結果又休刊)
Email + 連結有六萬左右的閱覽數
和 13 報有 18% 的重疊訂閱,比想像的中少,我以為會是 81%
雖然寫了一年的 Swift 週報但這一年以來我幾乎完全沒有寫到 Swift,今年希望能多碰點 Swift 和 SwiftUI 來自我傷害一下,週報可以加入開發筆記。
本篇於陽台上,藍天下,徐風中完成。
🌎 On Swift Community
Evolving the Swift Workgroups
Swift 核心團隊宣佈對 Swift 相關的工作群體做出組織結構與責任的變化。主要是目前的 workgroup 被畫分為更明確區分職責的領航組(steering group),與工作組 (wrokgroups),領航組負責影響社群的整體戰略方向,工作組則關注原本的特定領域進行各種最佳化或實際產出,除了 Core Team 仍然是 Core Team,一張圖看完就是:
值得注意的是新的生態系領航組與貢獻者體驗工作組,蘋果一直喊了很久要打開圈子讓大家都來玩,但上手體驗一直都不是太友善,如今特別有小組出來做這件事至少是個好的開始。
SwiftUI preview 的工作原理
我最喜歡讀分析工作原理的,因為我們都知道絕對完美的抽象並不存在,通靈乃日常,理解背後的工作原理就好像偵探查案一樣令人興奮。
故事源自一篇實機能跑但 SwiftUI preview crash 的奇怪發現,文內介紹了 SwiftUI 的運作方式來解釋其背後原因: 生成一個小的 Swift file ,編成 dylib 然後透過 xpc 與 Xcode 溝通,就是因為生成的程式要小,所以一些推導型別的資訊未必在裡面就掛了,這個應該是 SwiftUI preview codegen 的 bug。
為了快又即時的預覽,這樣的做法可以理解,但是一種程式兩種解讀就常是靈異現象的溫床。
a = a + b
or a += b
這兩者理論上應該要有一致的行為,但現況是前者會消耗更多的記憶體也更慢,因為有較多的 allocation,理論上 compiler 應該要讓這兩者行為一樣,這應該是 compiler 中間最佳化的 bug。
🗣️ On Swift Forum
值語義、引用語義、值類型與引用類型
論壇上有人詢問這四者的正式定義,Dave Abarahams 在提議 ValueSemantic
protocol 有篇很清楚的解釋,最主要 Swift 本身在記憶體安全的定義和其中有些差異,最後 Dave 還將這個嚴謹值語義的想法落實在一個 Swift 的子集語言 Swiftlet 中並發表成論文。
@convention(thin)
function pointers
這篇其實是想引入 direct
,indirect
標記參數的傳遞方式與能直接定義 symbol name 的 @symbolName
。
起因是 Swift closure 是由兩個指標大小的𣛣位組成,一個指向 function 入口,一個指向捕捉的對象,不過斤斤計較的開發者們希望在不捕捉時就只用一個指標,而目前的 workaround 會讓函數受限於和 C 互相操作的限制,所以想要修復 @convention(thin)
。這個標記可以看作是一個 Unsafe 的操作,因為它假設你知道 compiler 怎麼運作,如果用錯就會直接炸裂,所以希望透過指明 call convetion (direct
& indirect
)與引入正式的自定義 symobl 名稱的標記。
我目前沒有足夠的知識來評論這個提案的方向,只能看出這可以用在更安全地動態查找 symbol,不過想介紹這篇回覆,它介紹了目前 Swift 各種導出 symbol 的式之間的不同之處。
🤪 Pofat 選推
王國之淚激發了人類的無限惡意創意啊
https://twitter.com/dearemon/status/1660141190770212864?s=20
Damn, cloud computers!
https://twitter.com/the_unix_guru/status/1661109161931710489?s=20
「您已打開手電筒」的通知是剛需啊