FIDL 设计历史

本页面提供了一个起点,可用于浏览“FIDL”领域的 RFC。它以各种方式整理这些提案,并提供每项提案的最新状态,让读者快速了解 FIDL 的历史和当前方向。

以前,这些设计文档称为 FTP 或 FIDL 调优提案。FTP 流程后来合并到 RFC 流程中。由于 FTP 重新编号为 RFC 的方式,RFC 编号并不表示时间顺序。不过,此页面上的每个列表都会按时间顺序显示 RFC:对于从 FTP 转换为 RFC 的文档,按提交日期排序;对于所有后续 RFC,按审核日期排序。

按主题

本部分按主题整理了 FIDL RFC。即使每个 RFC 涉及多个主题,也只会列出一次,并归入其主要主题下。

治理

可演化性

表现力

语法

工效学设计

网域

性能

安全保障

工具

文档

简化设计空间

按语言功能

本部分列出了引入了可在 FIDL 语言中轻松看到的新功能的 RFC。它仅包含当前功能,不包含已过时的功能。

功能 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 位标志类型
strictflexible RFC-0033 严格类型和灵活类型
处理权 RFC-0028 注释必需或排除的影音平台使用权
service RFC-0041 服务是协议的集合
aliastype RFC-0052 using 别名替换为 aliastype
resource RFC-0057 值和资源类型
匿名布局 RFC-0050 内嵌类型定义,根据上下文命名或使用 @generated_name
@available RFC-0083 版本注释
Method(table { ... }) RFC-0087 将表和联合用作顶级请求/响应类型
openclosedajar RFC-0138 开放式和封闭式互动

当前状态

此部分提供了所有 FIDL RFC 的当前状态。

图例:

状态 含义
已取消发布 从未公开或正式审核
已取消 已公开,但从未正式审核
审核中 已公开,待审核
已实施 已接受、已实现、仍准确
已实施一部分 已接受并部分实施,但未计划完成
正在实施 已接受,正在实施
已修正 已接受,仍基本准确,但已通过后续 RFC 进行修订
已取代 已接受但不再准确,已被后续 RFC 取代
已拒绝 正式拒绝
RFC 标题 状态
RFC-0018 FTP 流程:一个适度的提案 已被 RFC-0017 取代
RFC-0019 使用 using 的类型别名 已被 RFC-0052 取代
RFC-0022 结构体成员的默认值 已被 RFC-0160 取代
RFC-0051 更安全的 C++ 结构体 已拒绝
RFC-0062 方法不可能 已拒绝
RFC-0053 墓志铭 已实现
RFC-0066 程序员建议的明确默认值 已实施
RFC-0047 表格 RFC-0116RFC-0132 修订
RFC-0055 文档注释 RFC-0043 修正
RFC-0063 OrdinalRange 已拒绝;已被 RFC-0020 取代
FIDL 中的 FIDL 未发布;Protobuf 可以执行此操作
RFC-0056 空结构体 已实施
RFC-0058 引入已弃用的属性 已被 RFC-0083 取代
RFC-0060 错误处理 已实施
RFC-0061 可扩展的联合 已实施
RFC-0065 没有可选的字符串或矢量 已拒绝
RFC-0064 Box<Knox> 已拒绝;另请参阅“FIDL 大消息支持”
序列 未发布;“Streams”的早期版本
信息流 未发布;另请参阅卷尺
RFC-0020 接口序号哈希 已实施
RFC-0021 为添加和移除方法添加了柔和过渡效果 已实施
RFC-0023 协议的组合模型 已实施
RFC-0045 零大小的空结构体 已拒绝
RFC-0025 位标志 已实施
RFC-0026 红包无处不在 已拒绝
RFC-0027 只需为实际用量付费 已实施
RFC-0030 FIDL 采用小端字节序 已实施
RFC-0031 类型化墓志铭 已拒绝
RFC-0032 高效信封 已拒绝;已被 RFC-0113 取代
RFC-0033 未知字段的处理和严格性 RFC-0137 修订
RFC-0034 以 null 结尾的字符串 已拒绝
RFC-0029 增加方法序号 已被 RFC-0037 取代
RFC-0035 自动流程跟踪 已拒绝
RFC-0036 结构体声明更新 已拒绝
RFC-0037 事务性消息标头 v3 已实施
RFC-0038 将布局与限制条件分离 已拒绝;已被 RFC-0050 取代
RFC-0039 类型排在第二位 已拒绝;已被 RFC-0050 取代
RFC-0028 处理权利 已实施
RFC-0042 不可为 null 的类型 遭拒(愚人节)
RFC-0024 强制性源代码兼容性 已实施
RFC-0040 标识符的唯一性 已实现(最初被拒绝,后来被接受)
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-0086RFC-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 语言支持计划 审核中
终端活动 审核中