C++委員會拒絕Rust風格安全模型提案

C++委員會拒絕Rust風格安全模型提案

據提案聯合作者透露 , 盡管內存安全問題持續引發擔憂 , C++標準委員會已放棄了一項旨在創建嚴格安全語言子集的詳細提案 。
\"Rust安全模型在委員會中不受歡迎 。 我這邊的進一步工作也不會改變這種情況 。 Profiles方案贏得了這場爭論 。 \"
\"安全與安保工作組投票決定優先考慮Profiles而非Safe C++ 。 如需最新進展 , 請咨詢Profiles團隊 。 Safe C++項目不會繼續推進 。 \"Sean Baxter在今年6月如是說 。
當開發者如Simone Bellavia注意到該提案的周年紀念時 , 這個話題重新浮出水面 。 一年前 , Baxter告訴The Reg , 該項目將使C++開發者獲得Rust級別的內存安全性 , 而無需學習新語言 。 \"Safe C++防止用戶編寫不安全的代碼 , \"他說 , \"這包括借用檢查等編譯時智能分析來防止釋放后使用漏洞 , 以及用于類型安全的初始化分析 。 \"
Safe C++支持代碼的漸進式遷移 , 因為它只適用于安全上下文中的代碼 。 現有的不安全代碼將照常運行 。
即使是提案是否被放棄這個問題本身也不夠明確 。 C++委員會成員兼C++演進工作組(EWG)聯合主席Erich Keane表示 , Baxter的提案\"獲得了鼓勵性投票 , 大約一半(20/45)的人支持Sean的論文 , 30/45的人支持Profiles工作(6人中立)...Sean完全可以繼續這項工作 , 委員會中的許多人都希望看到他在標準化方面做出進一步努力 。 \"
對此 , Baxter回應道:\"Rust安全模型在委員會中不受歡迎 。 我這邊的進一步工作不會改變這種情況 。 Profiles贏得了爭論 。 \"
他補充說 , EWG采納的語言演進原則包括\"我們應該避免要求安全或純函數注解 , 這種注解的語義是安全或純函數只能調用其他安全或純函數\" 。 他表示 , 這是一個\"不可調和的設計分歧 。 安全函數著色是Rust安全模型的核心\" 。
C++發明者Bjarne Stroustrup支持Profiles方案 , 他告訴我們 , 該方案的理念是:\"我希望獲得這套保證 , 然后它將被強制執行 。 \"據Stroustrup說 , \"令人遺憾的是 , 標準委員會感到困惑 , 沒有保證這將包含在C++ 26中 。 \"
話雖如此 , Profiles方案同樣備受爭議 , 有人抱怨\"Profiles看起來不像任何已建立的可行解決方案 , 沒有實現 , 而且今年早些時候也未能進入C++ 26標準 , 委員會反而要求另一份白皮書\" 。
Baxter不相信Profiles能夠實現目標 。 \"如果Profiles有成功的機會 , 我會實現它 。 但它們永遠不會成功 。 我在這里提供了許多失敗原因的例子:https://www.circle-lang.org/draft-profiles.html , \"他昨天在Hacker News上說 。
他補充道:\"整個標準庫都是不安全的 。 我提議了一個嚴格安全的std2 , 但被拒絕了 。 \"
圍繞如何讓C++更安全的爭議可能意味著轉向不同的語言是更好的解決方案 , 無論是Rust , 還是谷歌實驗性的\"C++繼任者\"Carbon項目等其他選擇 , 后者的路線圖顯示可能在\"2028年之后\"發布1.0版本語言 。
Q&A
Q1:Safe C++提案的核心功能是什么?
A:Safe C++是一個旨在創建嚴格安全C++語言子集的提案 , 其核心功能是防止用戶編寫不安全代碼 , 包括借用檢查等編譯時智能分析來防止釋放后使用漏洞 , 以及用于類型安全的初始化分析 。 它支持代碼的漸進式遷移 , 只適用于安全上下文中的代碼 。
Q2:為什么C++委員會拒絕了Safe C++提案?
A:據提案作者Sean Baxter表示 , Rust安全模型在委員會中不受歡迎 。 委員會在投票中選擇優先考慮Profiles方案而非Safe C++ 。 另外 , 委員會采納的語言演進原則與Safe C++的安全函數著色機制存在不可調和的設計分歧 。
Q3:Profiles方案與Safe C++有什么不同?
A:Profiles方案由C++發明者Bjarne Stroustrup支持 , 理念是\"我希望獲得這套保證 , 然后它將被強制執行\" 。 但該方案同樣備受爭議 , 被批評不像任何已建立的可行解決方案 , 沒有實現 , 且未能進入C++ 26標準 。 提案作者Baxter認為Profiles永遠不會成功 。
【C++委員會拒絕Rust風格安全模型提案】

    推薦閱讀