6 月 27 日消息,Rust 團(tuán)隊(duì)昨日(6 月 26 日)發(fā)布博文,宣布推出 Rust 1.88.0 版本更新,主要新增支持裸函數(shù)(naked functions),支持開發(fā)者完全控制生成的匯編代碼。
援引博文介紹,裸函數(shù)不包含編譯器生成的結(jié)尾和開頭代碼,從而支持開發(fā)者完全控制生成的匯編代碼。Rust 團(tuán)隊(duì)表示,這比在 global_asm! 塊中定義函數(shù)更為方便。
#[unsafe(naked)]pubunsafeextern"sysv64"fnwring_add(au64bu64)-u64{//Equivalentto`a.wring_add(b)`.corearchnaked_asm("learax[rdi+rsi]","ret")}裸函數(shù)通過屬性#attribute 標(biāo)記,其主體由單個(gè) naked_asm! 調(diào)用組成。Rust 團(tuán)隊(duì)展示了如何使用手寫的匯編塊定義整個(gè)函數(shù)體的示例。與普通函數(shù)不同,編譯器不會(huì)為裸函數(shù)的返回值或參數(shù)添加特殊處理。裸函數(shù)通常用于 Rust 的編譯器內(nèi)置功能、操作系統(tǒng)和嵌入式應(yīng)用等底層環(huán)境。
此外,Rust 1.88 版本的 cfg 謂語語言現(xiàn)在支持 true 和 false 布爾值,并支持配置始終啟用或禁用。這適用于 Rust 的條件編譯,包括 cfg 和 cfg_attr 屬性,內(nèi)置的 cfg! 宏,以及 Cargo 配置和清單中的表格。
Rust 團(tuán)隊(duì)表示,以前可以使用空的謂詞列表進(jìn)行無條件的配置,如 cfg (all ()) 表示啟用,cfg (any ()) 表示禁用,但 cfg (true) 和 cfg (false) 提供了一種更直接的表達(dá)方式。
Rust 1.88 版本還允許在 if 和 while 條件中鏈?zhǔn)绞褂?let 語句(&&),甚至與布爾表達(dá)式混合使用。這樣一來,if 和 if let、while 和 while let 之間的區(qū)別變得不那么明顯。根據(jù) Rust 團(tuán)隊(duì)的說法,let 子表達(dá)式中的模式可以是可反駁的或不可反駁的,并且綁定可以在鏈的后續(xù)部分以及主體中使用。
最后,Cargo 包管理器現(xiàn)在會(huì)在其家目錄中自動(dòng)運(yùn)行垃圾回收,清理緩存。Rust 團(tuán)隊(duì)解釋說,在構(gòu)建過程中,Cargo 會(huì)下載并緩存所需的依賴項(xiàng)。以往,這些下載的文件從未被清理,導(dǎo)致 Cargo 家目錄中的磁盤使用量無限增長。

Rust 被被廣泛認(rèn)為是目前全球公認(rèn)最安全的編程語言,尤其在內(nèi)存安全方面表現(xiàn)突出。許多安全漏洞都與內(nèi)存管理不當(dāng)有關(guān),而 Rust 獨(dú)特的所有權(quán)和借用系統(tǒng),以及編譯時(shí)的內(nèi)存安全檢查,有效地防止了這些問題的發(fā)生。
本文鏈接:http://www.www897cc.com/showinfo-119-164651-0.html全球最安全語言 Rust 發(fā)布 1.88.0 更新:新增支持裸函數(shù)、優(yōu)化 let 語句等
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
下一篇: 微軟澄清:不滿足 Win11 升級(jí)條件的 Win10 設(shè)備也可享免費(fèi)延長支持 1 年活動(dòng)