足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

Rust 1.6為OS和嵌入式開發帶來穩定支持
2016-01-29 22:12:15   來源:Sergio De Simone ,譯者 謝麗   評論:0 點擊:

與他們的發布模型一致,Rust開發團隊已于2016年1月6日宣布了第一個Rust版本。Rust 1 6的最大特點是實現了libcore的穩定,其目標是讓使用穩定的Rust進行OS和嵌入式開發成為可能。

與他們的發布模型一致,Rust開發團隊已于2016年1月6日宣布了第一個Rust版本。Rust 1.6的最大特點是實現了libcore的穩定,其目標是讓使用穩定的Rust進行OS和嵌入式開發成為可能。

libcore提供了一個底層的、平臺無關的基礎,Rust標準庫libstd就是基于它構建像內存管理、I/O和并發等高級功能。因此,libcore是最底層,OS和嵌入式軟件開發人員常常更喜歡以它為基礎構建應用程序。這樣說來,libcore的穩定為各種底層軟件提供了穩固的基礎。

Rust核心團隊成員Steve Klabnik告訴InfoQ,其重要性不可低估:

為了可以基于穩定的Rust進行OS/嵌入式開發,這是重要的一步。因此,這很重要,但那仍然只是第一步。我確實認為,表明Rust是最底層軟件開發的一個可行選項,對于Rust未來的發展而言很重要。

然而,需要特別注意,libcore目前僅支持庫的開發,而尚不完全支持應用程序的開發。Klabnik向InfoQ解釋說,libcore之所以不完全支持應用程序是因為還有一些它所需要的“lang items”未定義。在Rust中,“lang items”可以理解為鏈接器符號,可以用作鉤入語言本身的“鉤子”。這會使比如說在庫中實現部分Rust功能成為可能,而不是在語言本身。按照Klabnik的說法,對于想要構建一個庫,但不使用libstdno_std)的開發人員來說,這問題不大。實際上,他表示:

我們可能不會將這兩個[lang items]加入libcore本身。它們是專為用戶以適合自己的方式進行實現而設計的。如果你試圖構建一個用到了no_std的可執行程序,那么你必須自己定義這兩個lang items。

此外,Klabnik還提供了一個源文件的鏈接,他在其中展示了如何定義那些缺失的符號:

#[lang = "eh_personality"]extern "C" fn eh_personality() {}#[lang = "panic_fmt"]fn panic_fmt() -> ! {    loop {}}#[lang = "begin_unwind"]pub extern "C" fn begin_unwind() {}

除實現了libcore的穩定外,Rust 1.6還對庫函數和語言特性進行了許多小的優化,最顯著的是drain函數族(用于移除集合中的元素,同時保留它們的后備內存)和新的From類型轉換。要了解完整的變更列表,可以查看發布說明

查看英文原文:Rust 1.6 Brings Stable Support for OS and Embedded Development

相關熱詞搜索:rust 16 released 語言 & 開發 嵌入式系統開發

上一篇:Hazelcast Version 3.6增強了性能和云管理功能
下一篇:架構周報:微信后臺系統的演進之路

分享到: 收藏