背景
什麼是 Rust 的 #![feature(...)]
?
使用 Rust 的 nightly
管道,或使用適當標記手動編譯 Rust
時,可能會使用不穩定的功能。這些功能包括語言新增項目、程式庫新增項目、編譯器功能,以及不受 Rust 一般穩定性保證的其他功能。這些功能大多是暫時不穩定的新增功能,在完成測試、討論和進一步設計後,就會變得穩定。不過,有些功能是故意設計為永久不穩定,只供內部編譯器使用。在找到更佳解決方案,或判定功能的缺點大於優點時,我們可能會完全移除其他功能。每項功能都有相關追蹤問題,位於 rust-lang/rust
GitHub 存放區。
Rust 版本管理程序
Fuchsia 目前使用上游 Rust 主分支的固定修訂版本進行建構。我們將 Rust 鏡射至這個存放區。用於編譯 Fuchsia 的版本會在 prebuilts
資訊清單中設定。可在 prebuilts
中設定的最新 Rust 修訂版本,就是最近完成的版本,詳情請參閱這裡。我們目前會經常更新 Rust 版本,以便接收上游的最新變更,例如標準程式庫所使用的系統呼叫變更。
目標
我們希望能夠向前或向後回溯至其他 Rust 版本,以便採用錯誤修正或回溯導致問題的變更。依賴過多不穩定的每日功能,可能會讓這個程序變得非常痛苦。
我們也希望程式碼清晰易用,使用不穩定或快速變更的功能,可能會讓程式碼更難理解或修改。不穩定的功能通常沒有完整的文件說明,而且現有的文件也經常過時。
不過,也有許多功能是專為 Fuchsia 的用途而設計。這些功能可提供出色的可讀性或效能優勢,而我們使用這些功能有助於驗證功能,並進一步朝穩定性邁進。
程序
請將不穩定的功能要求傳送至 rust-users@fuchsia.dev 郵寄清單。這些文件應託管在 docs.google.com 上,以便在文件本身提供註解和建議。提案內容應包含下列資訊:
- 這項功能的簡要說明
- 這項功能在 Fuchsia 中的用途
- 功能穩定前剩餘的工作摘要
- 負責特定功能的人員,會追蹤問題、參與討論如何修改或穩定功能,並管理因功能異動或移除功能而導致的 Fuchsia 程式碼必要更新。
收到這封電子郵件後,您將有一個星期的時間提出意見,在這段期間,您可以將任何贊成或反對某項功能的論點列於文件中。這段時間結束後,一組審查人員將會開會,並就是否允許使用該功能達成共識。這項決定將根據先前在文件中討論的論點做出,不會納入審查委員會成員提出的新論點。如果有新的論點出現,我們會將其新增至文件,並給予其他人更多時間回應。
如果功能獲得核准,文件中列出的功能摘要、使用情形、穩定性報告和擁有者,都會新增至下方的「目前使用的功能」部分。您必須先檢入這份文件,才能使用這項功能。
審查作業由 Rust 工作小組執行。
目前使用的功能
我們會透過在 Rust>unstable
元件下提交的問題,追蹤不穩定的功能。