首頁>技術>

Rust 1.49已將其對64位ARM Linux的支援提升為Tier-1目標,這是最高級別的支援保證,與Rust的x86_64支援類似。

Rust長期以來在64位ARM Linux上執行良好,但現在被認為在ARM Linux上執行極佳,並被置於最高級別支援處理,這也使64位ARM Linux成為第一個達到一級標準支援的非x86專案。

Rust 1.49還將其64位ARM macOS和64位ARM Windows的支援從第3級升級到第2級。在第2級中,存在預構建的二進位制檔案,可以保障程式碼的構建,但是存在更大的bug風險。這對於蘋果最近高歌猛進推出的自研M1晶片產品及其自建Apple Silicon體系裝置的普及來說,不啻是個好訊息。

Rust是一種程式語言,它使每個人都可以構建可靠且高效的軟體。Rust使用rustup工具安裝和管理。Rust具有為期六週的快速釋出過程,並且支援Windows、MacOS、Linux或其他類Unix的作業系統等各平臺。rustup在Rust支援的每個平臺上以一致的方式管理這些構建,支援從Beta到release各分支安裝Rust,並支援交叉編譯。

如果您透過rustup安裝了Rust的早期版本,則升級Rust 1.49.0的過程非常簡單,僅需要執行下面命令:

rustup update stable

如果您未安裝過Rust,在Linux等非Windows平臺也可以使用下面命令快速安裝:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Rust 1.49還增強了其測試框架捕獲執行緒中的輸出。Rust的內建測試框架沒有包含太多功能,但這並不意味著它無法得到改進!我們來看一下像這樣的測試:

#[test]

fn thready_pass() {

println!("fee");

std::thread::spawn(|| {

println!("fie");

println!("foe");

})

.join()

.unwrap();

println!("fum");

}

在Rust 1.49.0之前版本,執行此測試後,將輸出:

❯ cargo +1.48.0 test

Compiling threadtest v0.1.0 (C:\threadtest)

Finished test [unoptimized + debuginfo] target(s) in 0.38s

Running target\debug\deps\threadtest-02f42ffd9836cae5.exe

running 1 test

fie

foe

test thready_pass ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Doc-tests threadtest

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

從上面結果中,您可以看到其列印了執行緒的輸出,該輸出混合顯示了測試框架本身的輸出。

也許您會問,每個println的輸出難道不能實現得更好麼?比如像上面測試程式碼中println!("fum")那樣輸出列印"fum"這樣清晰明瞭?

沒錯,Rust 1.49.0實現了您的這個預期,在這版本中它將打出輸出:

❯ cargo test

Compiling threadtest v0.1.0 (C:\threadtest)

Finished test [unoptimized + debuginfo] target(s) in 0.52s

Running target\debug\deps\threadtest-40aabfaa345584be.exe

running 1 test

test thready_pass ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests threadtest

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

您也許會說,這不是逗我麼?這有啥區別?看起來沒兩樣啊!

請不要擔心,如果測試失敗,您將會看到所有輸出。您只需要在上面測試程式碼末尾新增"panic!",您將看到詳細的錯誤資訊:

❯ cargo test

Compiling threadtest v0.1.0 (C:\threadtest)

Finished test [unoptimized + debuginfo] target(s) in 0.52s

Running target\debug\deps\threadtest-40aabfaa345584be.exe

running 1 test

test thready_pass ... FAILED

failures:

---- thready_pass stdout ----

fee

fie

foe

fum

thread 'thready_pass' panicked at 'explicit panic', src\lib.rs:11:5

具體來說,在新版本中,測試執行程式將確保捕獲所有輸出,並在測試報錯時儲存提供這些輸出資訊。

最後順便提一下,微核心作業系統RedoxOS就是幾乎完全用Rust語言編寫的,該系統於聖誕節前夕釋出了最新0.6版本,具體可以檢視我之前釋出的文章:

27
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Python基礎篇:第四章 變數與基本資料型別