Neatbo.

Handoff two declared compilation databases

Prepare before/after compilation databases, map source identities deliberately and hand off all ordered argv differences with original evidence.

Prepare the actual evidence

Compare two compile_commands files by ordered declared argv and working directory, retaining sources and every invocation.

Select exactly two strict UTF-8 JSON files: before first, after second. Each allows 2 MiB, together 4 MiB; each original filename label allows 512 UTF-8 bytes. One leading file BOM is removed and recorded.

  • Select the before and after databases in that order.
  • Enter paired roots if needed, then compare ordered argv.
  • Review added, removed and changed invocations; download complete JSON/CSV and both originals.
  • Validate linking, runtime behavior and binary results separately.

Review differences and inference evidence

POSIX lexical paths only. directory must be absolute; file/output resolve against it. No filesystem lookup or realpath. Optional beforeRoot/afterRoot must be paired absolute roots; component-boundary mapping affects identity and working directory only, never argv. Each root option allows 4,096 UTF-8 bytes as a parameter resource budget.

Match source path plus optional output. Duplicate identities refuse the whole pair. arguments is preferred and retained in complete order with a nonempty executable; command supports a fixed POSIX single/double quote and backslash lexer.

Reject shell expansion, unquoted operators/globs, command control characters, Windows path profiles, command assignment prefixes (such as FOO=1 cc), @response tokens and unknown invocation metadata. When arguments is present, command is retained as original metadata without interpretation or execution.

Worked example
before: [{"directory":"/work","file":"a.c","arguments":["cc","-O0","a.c"]}]; after: same source with -O2

Complete the handoff review

Across both files: at most 5,000 invocations and 250,000 argv items. JSON containers allow 16 levels; decoded duplicate keys, malformed UTF-8 and unpaired Unicode surrogates refuse. Valid database structure has at most three container levels, so the depth guard is protective.

Download both byte-exact originals, complete compilation-comparison.json and quote-all CSV. Outputs together allow 32 MiB and fail atomically. Every CSV cell has a formula-safe apostrophe prefix; JSON and source bytes preserve original text.

Preview only the first 200 rows and 2,000 Unicode codepoints per cell. Copy is explicitly a summary. Complete matched, added and removed invocations and differing argv indices remain in downloads.

Equality covers ordered declared argv and mapped working directory only. Flag meaning, linking, environment, headers, compiler behavior, ABI and binary equivalence remain unverified. Files and names stay in this browser.

Correct source files, duplicate identities or unsupported shell structures, then retry both originals. After cancellation rerun the same selection.

Handoff files
FilePurpose
before-original.json / after-original.jsonByte-exact selected sources
compilation-comparison.jsonAll paths, ordered argv, source hashes and matched/added/removed identities
compilation-changes.csvFormula-safe complete comparison rows

References

  • 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.

Tools in this category

Expand a tool to see its steps, options and supported formats, then open its workspace.

Compare compilation database argvCompare two compile_commands files by ordered declared argv and working directory, retaining sources and every invocation.

Compare two compile_commands files by ordered declared argv and working directory, retaining sources and every invocation.

Steps

  1. Select the before and after databases in that order.
  2. Enter paired roots if needed, then compare ordered argv.
  3. Review added, removed and changed invocations; download complete JSON/CSV and both originals.
  4. Validate linking, runtime behavior and binary results separately.

Available options

Before root
Enter as needed

Paired absolute POSIX roots; identity and working directory only. At most 4,096 UTF-8 bytes each.

After root
Enter as needed

Paired absolute POSIX roots; identity and working directory only. At most 4,096 UTF-8 bytes each.

Capabilities and limits

  • Select exactly two strict UTF-8 JSON files: before first, after second. Each allows 2 MiB, together 4 MiB; each original filename label allows 512 UTF-8 bytes. One leading file BOM is removed and recorded.
  • POSIX lexical paths only. directory must be absolute; file/output resolve against it. No filesystem lookup or realpath. Optional beforeRoot/afterRoot must be paired absolute roots; component-boundary mapping affects identity and working directory only, never argv. Each root option allows 4,096 UTF-8 bytes as a parameter resource budget.
  • Match source path plus optional output. Duplicate identities refuse the whole pair. arguments is preferred and retained in complete order with a nonempty executable; command supports a fixed POSIX single/double quote and backslash lexer.
  • Reject shell expansion, unquoted operators/globs, command control characters, Windows path profiles, command assignment prefixes (such as FOO=1 cc), @response tokens and unknown invocation metadata. When arguments is present, command is retained as original metadata without interpretation or execution.
  • Across both files: at most 5,000 invocations and 250,000 argv items. JSON containers allow 16 levels; decoded duplicate keys, malformed UTF-8 and unpaired Unicode surrogates refuse. Valid database structure has at most three container levels, so the depth guard is protective.
  • Download both byte-exact originals, complete compilation-comparison.json and quote-all CSV. Outputs together allow 32 MiB and fail atomically. Every CSV cell has a formula-safe apostrophe prefix; JSON and source bytes preserve original text.
  • Preview only the first 200 rows and 2,000 Unicode codepoints per cell. Copy is explicitly a summary. Complete matched, added and removed invocations and differing argv indices remain in downloads.
  • Equality covers ordered declared argv and mapped working directory only. Flag meaning, linking, environment, headers, compiler behavior, ABI and binary equivalence remain unverified. Files and names stay in this browser.
Open Compare compilation database argv →