Neatbo.

交接两份声明编译调用

准备迁移前后的编译数据库,明确映射来源身份,并把全部有序 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 与工作目录,保留来源和每条调用。

操作步骤

  1. 按顺序选择迁移前与迁移后的两份数据库。
  2. 需要时成对填写根目录,运行有序参数对照。
  3. 核查新增、删除和改变的调用,下载完整 JSON/CSV 与原始文件。
  4. 另行验收链接、运行行为与二进制结果。

可调选项

迁移前根目录
按需要填写

成对填写绝对 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 或二进制等价。文件内容与名称留在当前浏览器。
打开编译数据库声明参数对照 →