6 月 27 日消息,Rust 團隊昨日(6 月 26 日)發布博文,宣布推出 Rust 1.88.0 版本更新,主要新增支持裸函數(naked functions),支持開發者完全控制生成的匯編代碼。
援引博文介紹,裸函數不包含編譯器生成的結尾和開頭代碼,從而支持開發者完全控制生成的匯編代碼。Rust 團隊表示,這比在 global_asm! 塊中定義函數更為方便。
#[unsafe(naked)]pubunsafeextern"sysv64"fnwring_add(au64bu64)-u64{//Equivalentto`a.wring_add(b)`.corearchnaked_asm("learax[rdi+rsi]","ret")}裸函數通過屬性#attribute 標記,其主體由單個 naked_asm! 調用組成。Rust 團隊展示了如何使用手寫的匯編塊定義整個函數體的示例。與普通函數不同,編譯器不會為裸函數的返回值或參數添加特殊處理。裸函數通常用于 Rust 的編譯器內置功能、操作系統和嵌入式應用等底層環境。
此外,Rust 1.88 版本的 cfg 謂語語言現在支持 true 和 false 布爾值,并支持配置始終啟用或禁用。這適用于 Rust 的條件編譯,包括 cfg 和 cfg_attr 屬性,內置的 cfg! 宏,以及 Cargo 配置和清單中的表格。
Rust 團隊表示,以前可以使用空的謂詞列表進行無條件的配置,如 cfg (all ()) 表示啟用,cfg (any ()) 表示禁用,但 cfg (true) 和 cfg (false) 提供了一種更直接的表達方式。
Rust 1.88 版本還允許在 if 和 while 條件中鏈式使用 let 語句(&&),甚至與布爾表達式混合使用。這樣一來,if 和 if let、while 和 while let 之間的區別變得不那么明顯。根據 Rust 團隊的說法,let 子表達式中的模式可以是可反駁的或不可反駁的,并且綁定可以在鏈的后續部分以及主體中使用。
最后,Cargo 包管理器現在會在其家目錄中自動運行垃圾回收,清理緩存。Rust 團隊解釋說,在構建過程中,Cargo 會下載并緩存所需的依賴項。以往,這些下載的文件從未被清理,導致 Cargo 家目錄中的磁盤使用量無限增長。
Rust 被被廣泛認為是目前全球公認最安全的編程語言,尤其在內存安全方面表現突出。許多安全漏洞都與內存管理不當有關,而 Rust 獨特的所有權和借用系統,以及編譯時的內存安全檢查,有效地防止了這些問題的發生。
本文鏈接:http://www.www897cc.com/showinfo-119-164651-0.html全球最安全語言 Rust 發布 1.88.0 更新:新增支持裸函數、優化 let 語句等
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 【秒】白條套線商家~方法區別在哪里