交接两份声明编译调用
准备迁移前后的编译数据库,明确映射来源身份,并把全部有序 argv 差异与原始证据交接给构建负责人。
准备原始证据
对照两份 compile_commands 的完整有序 argv 与工作目录,保留来源和每条调用。
选择恰好 2 份严格 UTF-8 JSON:第一份为迁移前,第二份为迁移后。每份最多 2 MiB,合计 4 MiB;原文件名标签最多 512 UTF-8 字节。可移除并记录每份唯一的开头 BOM。
- 按顺序选择迁移前与迁移后的两份数据库。
- 需要时成对填写根目录,运行有序参数对照。
- 核查新增、删除和改变的调用,下载完整 JSON/CSV 与原始文件。
- 另行验收链接、运行行为与二进制结果。
核对下载中的差异与依据
仅支持 POSIX 词法路径。directory 必须为绝对路径,file/output 相对该目录解析;不查文件系统或 realpath。beforeRoot/afterRoot 必须成对填写绝对路径,按路径组件边界映射身份和工作目录,绝不改写 argv。每个根目录选项最多 4,096 UTF-8 字节,这只是参数资源限制。
来源路径与可选 output 构成匹配身份;重复身份拒绝整批。arguments 优先且保留完整顺序,首项必须是非空可执行程序;command 只支持固定 POSIX 单引号、双引号、反斜杠词法。
拒绝 shell 展开、未引用的操作符或通配符、command 控制字符、Windows 路径语义、command 赋值前缀(如 FOO=1 cc)、@response 文件及未知调用元字段。采用 arguments 时,command 原文只保留为来源,不执行也不解释。
before: [{"directory":"/work","file":"a.c","arguments":["cc","-O0","a.c"]}]; after: same source with -O2交接前完成独立验收
两份文件合计最多 5,000 条调用、250,000 项 argv。JSON 容器最多 16 层,拒绝 decoded 重复键、非法 UTF-8 与未成对代理 Unicode。合法数据库结构最多 3 层,因此 16 层是保护性守卫。
下载两份原始文件、完整 compilation-comparison.json 与 quote-all CSV;所有输出合计最多 32 MiB,失败或取消无部分输出。CSV 所有单元格加单引号防公式执行,JSON 和原始字节保留原文。
屏幕只展示前 200 行,每格前 2,000 Unicode 码点;复制是明确标记的摘要。完整新增、删除、匹配调用及 argv 差异下标在下载中。
相等只表示有序声明 argv 与映射后工作目录相等。不证明 flags 语义、链接、环境、头文件、编译器行为、ABI 或二进制等价。文件内容与名称留在当前浏览器。
纠正原始文件、消除重复身份或不支持的 shell 结构,再重新选择两份文件;取消后可直接重跑原选择。
| 文件 | 用途 |
|---|---|
| before-original.json / after-original.json | 所选来源的完整原始字节 |
| compilation-comparison.json | 所有路径、有序 argv、来源哈希及匹配、新增、删除身份 |
| compilation-changes.csv | 防公式执行的完整对照行 |
参考资料
- Make to CMake verification request
The author wants to check build migration changes; this task compares declared compilation argv only. Link commands and binary equivalence remain outside the evidence.
- Clang compilation database format
Ordered arguments are preferred over command. Directory, source file and optional output identify declared compilation records.
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
编译数据库声明参数对照对照两份 compile_commands 的完整有序 argv 与工作目录,保留来源和每条调用。
对照两份 compile_commands 的完整有序 argv 与工作目录,保留来源和每条调用。
操作步骤
- 按顺序选择迁移前与迁移后的两份数据库。
- 需要时成对填写根目录,运行有序参数对照。
- 核查新增、删除和改变的调用,下载完整 JSON/CSV 与原始文件。
- 另行验收链接、运行行为与二进制结果。
可调选项
- 迁移前根目录
- 按需要填写
成对填写绝对 POSIX 根目录;只映射身份与工作目录。 每个最多 4,096 UTF-8 字节。
- 迁移后根目录
- 按需要填写
成对填写绝对 POSIX 根目录;只映射身份与工作目录。 每个最多 4,096 UTF-8 字节。
能力与限制
- 选择恰好 2 份严格 UTF-8 JSON:第一份为迁移前,第二份为迁移后。每份最多 2 MiB,合计 4 MiB;原文件名标签最多 512 UTF-8 字节。可移除并记录每份唯一的开头 BOM。
- 仅支持 POSIX 词法路径。directory 必须为绝对路径,file/output 相对该目录解析;不查文件系统或 realpath。beforeRoot/afterRoot 必须成对填写绝对路径,按路径组件边界映射身份和工作目录,绝不改写 argv。每个根目录选项最多 4,096 UTF-8 字节,这只是参数资源限制。
- 来源路径与可选 output 构成匹配身份;重复身份拒绝整批。arguments 优先且保留完整顺序,首项必须是非空可执行程序;command 只支持固定 POSIX 单引号、双引号、反斜杠词法。
- 拒绝 shell 展开、未引用的操作符或通配符、command 控制字符、Windows 路径语义、command 赋值前缀(如 FOO=1 cc)、@response 文件及未知调用元字段。采用 arguments 时,command 原文只保留为来源,不执行也不解释。
- 两份文件合计最多 5,000 条调用、250,000 项 argv。JSON 容器最多 16 层,拒绝 decoded 重复键、非法 UTF-8 与未成对代理 Unicode。合法数据库结构最多 3 层,因此 16 层是保护性守卫。
- 下载两份原始文件、完整 compilation-comparison.json 与 quote-all CSV;所有输出合计最多 32 MiB,失败或取消无部分输出。CSV 所有单元格加单引号防公式执行,JSON 和原始字节保留原文。
- 屏幕只展示前 200 行,每格前 2,000 Unicode 码点;复制是明确标记的摘要。完整新增、删除、匹配调用及 argv 差异下标在下载中。
- 相等只表示有序声明 argv 与映射后工作目录相等。不证明 flags 语义、链接、环境、头文件、编译器行为、ABI 或二进制等价。文件内容与名称留在当前浏览器。