{
 "blocked": null,
 "versions": {
  "rustc": "rustc 1.99.1 (58cf8f9c3 2026-10-13)",
  "cargo": "cargo 1.99.1 (5f94df478 2026-08-27)",
  "rustup": "rustup 1.29.3 (edbc831ce 2026-11-02)",
  "maturin": "maturin 1.16.0",
  "zig": "0.17.1 (ziglang==0.17.1, python -m ziglang version)",
  "python": "Python 3.12.3",
  "uv": "uv 0.13.7 (x86_64-unknown-linux-gnu)",
  "llvm": "LLVM version: 23.1.1"
 },
 "source_date_epoch": 1770505944,
 "cargo_lock": {
  "sha256": "b5efc7f1aaf2c92fafa2015404ff74f760b80135a9e16bacded7f4ba0c81690b",
  "bytes": 75461,
  "packages_locked": 311,
  "text": null,
  "text_note": "the whole file is 75461 bytes, larger than the 64000-byte result limit, so it is given as xz-compressed base64 in text_xz_base64 (decode: base64 -d | xz -d); its sha256 is above",
  "text_xz_base64": "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"
 },
 "builds": [
  {
   "path": "p1",
   "checkout": ".cache/p1/amm-challenge",
   "a_sha256": "7b1f581a4fcd70466fed7d1431889b35157cefa48a0f5eff830b2b2480cca422",
   "a_bytes": 719300,
   "a_file": "amm_sim_rs-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "b_sha256": "59289af6ea958890ccbaf957257c2819c997237f968f46e43614f9f6b3c3763b",
   "b_bytes": 727737,
   "b_file": "amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "so_a_sha256": "414ea6d201d299b2967b2aee72c9704758fa69acf6df6cd295d83598118efd37",
   "so_b_sha256": "ff88b6353c2aad7342f0a26194f7347e78b9c3b38d683a7449006d423978cd14"
  },
  {
   "path": "p2",
   "checkout": ".cache/pathtwo/x/amm-challenge",
   "a_sha256": "23e17a55c335d9244d7dd0edad2ac9a50bcd8b3310314b77dcc81ef913cc9b0f",
   "a_bytes": 719313,
   "a_file": "amm_sim_rs-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "b_sha256": "8eb1b0aef5fb561c602cd0b7c9c1ae9264d81a27def22f3e43c8ffc9f24ea03c",
   "b_bytes": 727750,
   "b_file": "amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "so_a_sha256": "414ea6d201d299b2967b2aee72c9704758fa69acf6df6cd295d83598118efd37",
   "so_b_sha256": "ff88b6353c2aad7342f0a26194f7347e78b9c3b38d683a7449006d423978cd14"
  }
 ],
 "same_across_paths": {
  "a": false,
  "b": false,
  "so_a": true,
  "so_b": true
 },
 "differences": [
  {
   "wheel": "A",
   "files_differing": [
    "amm_sim_rs-0.1.0.dist-info/RECORD",
    "amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json"
   ],
   "files_identical": [
    "amm_sim_rs/__init__.py",
    "amm_sim_rs/amm_sim_rs.abi3.so",
    "amm_sim_rs-0.1.0.dist-info/METADATA",
    "amm_sim_rs-0.1.0.dist-info/WHEEL"
   ],
   "so_strings_n8_diff_first20": [],
   "so_note": "the .so is byte-identical between p1 and p2, so the strings -n 8 diff is empty",
   "sbom_line_diffs": [
    {
     "line": 16,
     "p1": "\"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
     "p2": "\"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\","
    },
    {
     "line": 25,
     "p1": "\"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\",",
     "p2": "\"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\","
    },
    {
     "line": 7931,
     "p1": "\"ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
     "p2": "\"ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\","
    }
   ],
   "record_diff": "only the SBOM line in RECORD differs (its sha256 and size, 307932 vs 307953 bytes in A)"
  },
  {
   "wheel": "B",
   "files_differing": [
    "amm_sim_rs-0.1.0.post1.dist-info/RECORD",
    "amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json"
   ],
   "files_identical": [
    "amm_sim_rs/__init__.py",
    "amm_sim_rs/amm_sim_rs.abi3.so",
    "amm_sim_rs-0.1.0.post1.dist-info/METADATA",
    "amm_sim_rs-0.1.0.post1.dist-info/WHEEL"
   ],
   "so_strings_n8_diff_first20": [],
   "so_note": "the .so is byte-identical between p1 and p2, so the strings -n 8 diff is empty",
   "sbom_line_diffs": [
    {
     "line": 16,
     "p1": "\"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
     "p2": "\"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\","
    },
    {
     "line": 25,
     "p1": "\"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\",",
     "p2": "\"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\","
    },
    {
     "line": 7931,
     "p1": "\"ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
     "p2": "\"ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\","
    }
   ],
   "record_diff": "only the SBOM line in RECORD differs (its sha256 and size)"
  }
 ],
 "gate": {
  "ran": true,
  "wheels": "p1",
  "ch_sha256": "6dd68f77a70900319460215374143dbd5d924198450a46d9f5f91f6b1e3d35c3",
  "ch_a": "525.5258821780834",
  "ch_b": "525.5258821780834",
  "ch_expected": "525.5258821780834",
  "v2_sha256": "28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab",
  "v2_b": {
   "calls": 21580,
   "oog": 3,
   "max_ok_gas": 243554,
   "init_max": 236377
  },
  "v2_b_detail": "both harness runs (A and B labels, V2 vs V2) identical: afterSwap calls 21580 ok 21577 oog 3 max_ok_gas 243554; afterInitialize calls 2 max_ok_gas 236377; paired n 2 mean_diff 0.0; harness valid=false because of the 3 OOG, as expected",
  "pass": true
 },
 "equals_reference": {
  "a": false,
  "b": false
 },
 "seconds": {
  "toolchain_uv_and_pip": 3,
  "toolchain_rustup": 6,
  "build_p1_a": 18,
  "build_p2_a": 14,
  "build_p1_b": 9,
  "build_p2_b": 10,
  "gate_ch_a": 36,
  "gate_ch_b": 33,
  "gate_v2_b": 3
 },
 "notes": [
  "Wheel A and B sha256 differ between the two checkout paths, but only because maturin's CycloneDX SBOM (dist-info/sboms/amm_sim_rs.cyclonedx.json) records the absolute checkout path in 3 places (bom-ref/ref 'path+file://<checkout>/amm_sim_rs#0.1.0'); RECORD then differs by that file's hash and size. The compiled amm_sim_rs.abi3.so, __init__.py, METADATA and WHEEL are byte-identical across paths, so --remap-path-prefix removed the path from the binary.",
  "Zip timestamps are pinned by SOURCE_DATE_EPOCH: every entry is dated 26-Feb-07 23:12 (unzip -Zl), same in both paths.",
  "The wheel size difference between paths (13 bytes, 719300 vs 719313 for A, 727737 vs 727750 for B) is the longer path '.cache/pathtwo/x' vs '.cache/p1' in the SBOM.",
  "Neither A nor B matches Taylor's reference sha256 (A 11fcc274..., B 6c6a439e...). Reported only; no other fix was tried.",
  "The B patch (instrumentation.patch) and harness.py were taken from source_files of artifact 02c134d9...; the patch was copied to scratch/ in each checkout and applied with git apply; version edited with sed in amm_sim_rs/pyproject.toml.",
  "V2 code came from the 'code' field of artifact 1f4f14f0... (sha256 a9830b417dd43806c144e8b4a217cda1317850bb52578b18a3237307cf8dfa16); each replacement occurred exactly once; result sha256 28417e11... as required.",
  "uv venv --python 3.12 picked the host CPython 3.12.3 (/usr/bin/python3.12) rather than downloading one.",
  "Cargo.lock generated once in p1 with cargo generate-lockfile (311 packages; e.g. pyo3 0.22.6, revm 18.0.0) and copied to the p2 checkout; both copies have the same sha256. It is git-ignored in the checkouts.",
  "The CH gate summed the submission edges in seed order 0..999 from one run_batch(CH, Vanilla, MatchRunner._build_configs(), 8) call; the mean is printed with repr().",
  "Absolute workspace paths in the SBOM diffs are replaced with <workspace>.",
  "Gate run on Linux x86_64 with p1's wheels, in a separate venv: wheel + numpy + py-solc-x==2.1.0 + pyrevm==0.3.7, then uv pip install --no-deps -e . in the p1 checkout."
 ]
}