這個頁面是瀏覽「FIDL」區域中 RFC 的起點。並以各種方式整理這些提案,提供每個提案的最新狀態,讓讀者瞭解 FIDL 的歷史和目前發展方向。
這些設計文件先前稱為 FTP 或 FIDL 調整提案。FTP 程序後來併入 RFC 程序。由於 FTP 重新編號為 RFC 的方式,RFC 編號並不代表時間順序。不過,這個頁面上的每個清單都會依時間順序顯示 RFC:FTP 轉為 RFC 的清單會依提交日期排序,所有後續 RFC 則依審查日期排序。
依主題
本節會依主題整理 FIDL RFC。即使 RFC 涉及多個主題,也只會列在主要主題下方。
管理事宜
可演進性
- RFC-0047:表格
- (已拒絕) RFC-0063:OrdinalRange
- RFC-0058:導入已淘汰的屬性
- RFC-0061:可擴充的聯集
- RFC-0020:介面序數雜湊
- RFC-0021:方法新增和移除的軟轉換
- RFC-0033:處理不明欄位和嚴格程度
- RFC-0029:增加方法序數
- RFC-0037:交易訊息標頭 v3
- RFC-0024:強制來源相容性
- RFC-0040:ID 唯一性
- RFC-0048:明確的聯集序數
- RFC-0083:FIDL 版本控管
- (已拒絕) RFC-0116:支援稀疏 FIDL 表格的線路格式
- RFC-0132:FIDL 資料表大小限制
- RFC-0138:處理不明互動
表現力
- RFC-0019:使用類型別名
- RFC-0022:結構體成員的預設值
- RFC-0066:程式設計師諮詢明確預設值
- (已拒絕) RFC-0065:沒有選用字串或向量
- (已拒絕) RFC-0064:Box<Knox>
- RFC-0023:通訊協定的組合模型
- (已拒絕) RFC-0042:不可為空值的型別
- RFC-0041:支援整合服務和裝置
- (已拒絕) RFC-0044:可擴充的方法引數
- RFC-0054:參數屬性
- RFC-0052:型別別名和新類型
- RFC-0137:在 FIDL 中捨棄不明資料
- RFC-0160:移除對 FIDL 結構體預設值的支援
語法
- (已拒絕) RFC-0036:更新結構體宣告
- (已拒絕) RFC-0038:將版面配置與限制條件分開
- (已拒絕) RFC-0039:型別在第二位
- RFC-0050:語法修訂
- RFC-0086:更新 RFC-0050:FIDL 屬性語法
- (已拒絕) RFC-0088:更新 RFC-0050:FIDL 位元、列舉和限制語法
- RFC-0087:更新 RFC-0050:FIDL 方法參數語法
人體工學
- RFC-0053:墓誌銘
- RFC-0056:空白結構體
- RFC-0060:錯誤處理
- RFC-0025:位元旗標
- (已拒絕) RFC-0031:輸入的墓誌銘
- RFC-0057:預設不含控制碼
- RFC-0196:FIDL 大型訊息
網域
效能
- (已拒絕) RFC-0045:零大小的空結構體
- (已拒絕) RFC-0026:隨處可見的信封
- RFC-0027:用多少付多少
- (已拒絕) RFC-0032:有效率的信封
- (已拒絕) RFC-0035:自動追蹤流程
- RFC-0113:有效率的信封
- RFC-0114:在 FIDL 封包中內嵌小值
- RFC-0149:FIDL 編碼驗證並非必要
安全
- (已拒絕) RFC-0051:C++ 的安全結構體
- (已拒絕) RFC-0062:方法不可行
- (已拒絕) RFC-0034:以空值終止字串
- RFC-0028:處理權利
工具
說明文件
簡化設計空間
依語言功能
本節列出導入新功能的 RFC,這些功能在 FIDL 語言中一目瞭然。只會列出目前的功能,不會列出已淘汰的功能。
| 功能 | RFC | 注意事項 |
|---|---|---|
table |
RFC-0047 | 向前和向後相容的資料類型 |
/// |
RFC-0055 | 說明文件註解 |
struct Empty {}; |
RFC-0056 | 空白結構體 |
error |
RFC-0060 | 方法錯誤結果語法 |
union |
RFC-0061 | 最初稱為 xunion,取代了舊的靜態聯集 |
@selector |
RFC-0020 | 使用明確的選取器覆寫方法雜湊 |
@transitional |
RFC-0021 | 新增/移除軟轉換方法時的屬性 |
compose |
RFC-0023 | interface 已重新命名為 protocol,並新增 compose 功能 |
bits |
RFC-0025 | 位元旗標類型 |
strict、flexible |
RFC-0033 | 嚴格和彈性類型 |
| 控點權限 | RFC-0028 | 註解必要或排除的帳號代碼權利 |
service |
RFC-0041 | 服務是一組通訊協定 |
alias、type |
RFC-0052 | 已將 using 別名替換為 alias 和 type |
resource |
RFC-0057 | 值和資源類型 |
| 匿名版面配置 | RFC-0050 | 內嵌型別定義,以脈絡或 @generated_name 命名 |
@available |
RFC-0083 | 版本註解 |
Method(table { ... }) |
RFC-0087 | 資料表和聯集做為頂層要求/回應型別 |
open、closed、ajar |
RFC-0138 | 已開啟和已關閉的互動 |
目前狀態
本節會列出所有 FIDL RFC 的目前狀態。
圖例:
| 狀態 | 意義 |
|---|---|
| 已取消發布 | 從未公開發布或正式審查 |
| 退賽 | 已公開,但從未正式審查 |
| 審查中 | 已公開,待審核 |
| 已實行 | 已接受、已實施、仍準確 |
| 已部分實行 | 已接受並部分實施,但沒有完成計畫 |
| 實施中 | 已接受,正在實作 |
| 修訂時間 | 已接受,仍大致準確,但後續 RFC 已修訂 |
| 已取代 | 已接受,但不再準確,已被後續 RFC 取代 |
| 已遭拒 | 正式拒絕 |
| RFC | 標題 | 狀態 |
|---|---|---|
| RFC-0018 | FTP 流程:一項適度的提案 | 已由 RFC-0017 取代 |
| RFC-0019 | 使用類型別名 | 已由 RFC-0052 取代 |
| RFC-0022 | 結構體成員的預設值 | 已由 RFC-0160 取代 |
| RFC-0051 | 適用於 C++ 的安全結構體 | 已遭拒 |
| RFC-0062 | 無法使用此方法 | 已遭拒 |
| RFC-0053 | 墓誌銘 | 已實作 |
| RFC-0066 | 程式設計師建議的預設露骨內容 | 已實行 |
| RFC-0047 | 表格 | 經 RFC-0116、RFC-0132 修訂 |
| RFC-0055 | 說明文件註解 | 由 RFC-0043 修訂 |
| RFC-0063 | OrdinalRange | 已拒絕;已由 RFC-0020 取代 |
| – | FIDL in FIDL | 未發布;Protobuf 可以執行這項操作 |
| RFC-0056 | 空白結構體 | 已實行 |
| RFC-0058 | 導入已淘汰的屬性 | 已由 RFC-0083 取代 |
| RFC-0060 | 處理錯誤 | 已實行 |
| RFC-0061 | 可擴充的聯集 | 已實行 |
| RFC-0065 | 沒有選用字串或向量 | 已遭拒 |
| RFC-0064 | Box<Knox> | 已拒絕;另請參閱「FIDL 大型訊息支援」 |
| – | 序列 | 未發布;「串流」的舊版 |
| – | 訊息串 | 未發布;另請參閱捲尺 |
| RFC-0020 | 介面序數雜湊 | 已實行 |
| RFC-0021 | 方法新增和移除的柔和轉場效果 | 已實行 |
| RFC-0023 | 通訊協定的組合模型 | 已實行 |
| RFC-0045 | 零大小的空結構體 | 已遭拒 |
| RFC-0025 | 位元旗標 | 已實行 |
| RFC-0026 | 信封隨處可見 | 已遭拒 |
| RFC-0027 | 用多少付多少 | 已實行 |
| RFC-0030 | FIDL 是 little endian | 已實行 |
| RFC-0031 | 打字墓誌銘 | 已遭拒 |
| RFC-0032 | 有效信封 | 已拒絕;已由 RFC-0113 取代 |
| RFC-0033 | 處理不明欄位和嚴格程度 | 已由 RFC-0137 修訂 |
| RFC-0034 | 以空值終止字串 | 已遭拒 |
| RFC-0029 | 增加方法序數 | 已由 RFC-0037 取代 |
| RFC-0035 | 自動追蹤流程 | 已遭拒 |
| RFC-0036 | 結構體宣告更新 | 已遭拒 |
| RFC-0037 | 交易訊息標頭 v3 | 已實行 |
| RFC-0038 | 將版面配置與限制分開 | 已拒絕;已由 RFC-0050 取代 |
| RFC-0039 | 類型排在第二 | 已拒絕;已由 RFC-0050 取代 |
| RFC-0028 | 處理權限 | 已實行 |
| RFC-0042 | 不可為空值的型別 | 已拒絕 (愚人節) |
| RFC-0024 | 強制來源相容性 | 已實行 |
| RFC-0040 | ID 專屬性 | 已實作 (一開始遭拒,後來獲准) |
| RFC-0041 | 支援整合服務和裝置 | 已部分實作:僅限 C++、Rust |
| RFC-0044 | 可擴充的方法引數 | 已拒絕;已由 RFC-0087 取代 |
| RFC-0043 | 說明文件註解格式 | 已實行 |
| – | 版本管理 | 已取消發布;已由 RFC-0083 取代 |
| – | 必要資料表欄位 | 已取消發布 |
| RFC-0048 | 明確的聯集序數 | 已實行 |
| RFC-0049 | FIDL 調整程序演進 | 已由 RFC-0017 取代 |
| – | 整合檢視選填欄位 | 已取消發布 |
| – | 疊代器 | 未發布;另請參閱捲尺 |
| RFC-0054 | 參數屬性 | 已由 RFC-0050 取代 |
| RFC-0052 | 型別別名和新型別 | 導入作業進行中 |
| – | 限制非數值的浮點值 | 已取消發布 |
| – | 常數運算式 | 已取消發布 |
| RFC-0057 | 預設不使用控點 | 已實行 |
| RFC-0050 | 語法改版 | 經 RFC-0086、RFC-0087 修訂 |
| – | FIDL 文字格式 | 已取消發布 |
| RFC-0059 | 向量、字串和陣列計數欄位中的保留位元 | 已實作;LLCPP 不再使用預留位元 |
| RFC-0017 | FTP 程序已死,RFC 程序萬歲! | 已實行 |
| – | FIDL 大型訊息支援 | 已撤銷;已由 RFC-0196 取代 |
| RFC-0076 | FIDL API 摘要 | 已實行 |
| RFC-0083 | FIDL 版本管理 | 導入作業進行中 |
| RFC-0086 | RFC-0050 更新:FIDL 屬性語法 | 已實行 |
| RFC-0088 | RFC-0050 更新:FIDL 位元、列舉和限制語法 | 已遭拒 |
| RFC-0087 | RFC-0050 更新:FIDL 方法參數語法 | 導入作業進行中 |
| RFC-0097 | FIDL 工具鍊 | 導入作業進行中 |
| RFC-0113 | 有效信封 | 已實行 |
| RFC-0114 | 在 FIDL 封裝中內嵌小值 | 已實行 |
| RFC-0116 | 支援稀疏 FIDL 資料表的線路格式 | 已遭拒 |
| RFC-0120 | 獨立使用 FIDL 線路格式 | 導入作業進行中 |
| RFC-0131 | FIDL 線路格式的設計原則 | 已實行 |
| RFC-0132 | FIDL 資料表大小上限 | 已實行 |
| RFC-0137 | 捨棄 FIDL 中的不明資料 | 導入作業進行中 |
| RFC-0138 | 處理不明互動 | 導入作業進行中 |
| RFC-0149 | FIDL 編碼驗證並非必要 | 已實行 |
| RFC-0160 | 移除對 FIDL 結構體預設值的支援 | 已實行 |
| RFC-0190 | 系統呼叫的 FIDL 支援 | 導入作業進行中 |
| RFC-0196 | FIDL 大型郵件 | 導入作業進行中 |
| – | FIDL 的 JSON 表示法 | 審核中 |
| – | FIDL 複雜常數 | 審核中 |
| – | FIDL 語言支援計畫 | 審核中 |
| – | 終端機事件 | 審核中 |