{
 "blocked": null,
 "versions": {
  "rustc": "rustc 1.99.1 (58cf8f9c3 2026-10-13)",
  "maturin": "maturin 1.16.0",
  "zig": "0.17.1",
  "python": "Python 3.12.16",
  "uv": "uv 0.13.7 (x86_64-unknown-linux-gnu)",
  "cargo": "cargo 1.99.1 (5f94df478 2026-08-27)",
  "rustup": "rustup 1.29.3 (edbc831ce 2026-11-02)",
  "numpy": "2.5.4",
  "py-solc-x": "2.1.0",
  "pyrevm": "0.3.7",
  "host": "Linux x86_64"
 },
 "source_date_epoch": 1770505944,
 "commit": "6b6921f8d463314aa7c96234e1be25a25245f704",
 "cargo_lock": {
  "sha256": "b5efc7f1aaf2c92fafa2015404ff74f760b80135a9e16bacded7f4ba0c81690b",
  "bytes": 75461,
  "packages": 312,
  "text": null,
  "text_xz_base64": "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",
  "text_note": "The whole Cargo.lock is 75461 bytes, more than the 64000-byte limit of this result, so it is given exactly as xz (python lzma FORMAT_XZ) + base64: python -c \"import lzma,base64,sys;sys.stdout.buffer.write(lzma.decompress(base64.b64decode(open('b64').read())))\" reproduces it; its sha256 must equal cargo_lock.sha256. Generated once in p1 by cargo generate-lockfile (lockfile version = 4) and copied byte-identical into p2."
 },
 "builds": [
  {
   "path": "p1",
   "checkout": "<workspace>/.cache/p1/amm-challenge",
   "a_sha256": "5f4785c01cdd3dff39dc2118582db2015510e30f9cd8ff794f4ab6e4ddb55f4b",
   "a_bytes": 719308,
   "a_file": "amm_sim_rs-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "b_sha256": "f5ee255c342e09867c58e4fa83b586504b8b84491c975cd7fb20265e255e0664",
   "b_bytes": 727746,
   "b_file": "amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"
  },
  {
   "path": "p2",
   "checkout": "<workspace>/.cache/pathtwo/x/amm-challenge",
   "a_sha256": "b0a834d247774c5d69edcb44b8b6f0b01327d9d37363032c72042f8a82a3ff28",
   "a_bytes": 719319,
   "a_file": "amm_sim_rs-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "b_sha256": "89e93247297e5670a59c86390e8ca9dd270ec684b22953ccfcf62b7590df009e",
   "b_bytes": 727756,
   "b_file": "amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl"
  }
 ],
 "same_across_paths": {
  "a": false,
  "b": false
 },
 "differences": [
  {
   "wheel": "A",
   "file": "amm_sim_rs-0.1.0.dist-info/RECORD",
   "p1_bytes": 499,
   "p2_bytes": 499,
   "p1_sha256": "444ab8c9ca62874800d9854d6510f4220b8f895d91b2a77487668a1371d43a11",
   "p2_sha256": "e0ec2efa31bd36700f4c77668a8a963a19076f156150c6db26778a1749b18b11",
   "record_differing_lines": [
    [
     "amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=6eLk--HVqXjyRUI8aNLD2_OVbybBT7b2eVGvWwd0X6M,307947",
     "amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=vPgwgHx97Tjhtgz_MtJCN5pMeT3bIUl0Ez7Hxn4upnQ,307968"
    ]
   ],
   "cause": "only the RECORD line holding the SBOM hash/size differs"
  },
  {
   "wheel": "A",
   "file": "amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json",
   "p1_bytes": 307947,
   "p2_bytes": 307968,
   "p1_sha256": "e9e2e4fbe1d5a978f245423c68d2c3dbf3956f26c14fb6f67951af5b07745fa3",
   "p2_sha256": "bcf830807c7ded38e1b60cff32d242379a4c793ddb214974133ec7c67e2ea674",
   "diff_lines_p1_minus_p2_plus": [
    "-      \"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
    "+      \"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\",",
    "-          \"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\",",
    "+          \"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\",",
    "-      \"ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
    "+      \"ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\","
   ],
   "cause": "SBOM bom-ref/ref fields embed the absolute checkout path as path+file://<checkout>/amm_sim_rs#0.1.0 (3 lines); --remap-path-prefix does not affect it"
  },
  {
   "wheel": "B",
   "file": "amm_sim_rs-0.1.0.post1.dist-info/RECORD",
   "p1_bytes": 523,
   "p2_bytes": 523,
   "p1_sha256": "ecbafaccd900f07b4e64efd3097c5f95b12b69f55aac62de9ac7ffb3053a08f8",
   "p2_sha256": "425ea35409447a17ad8e830a0b7ba41c06402b488b92f748e314082ee95c9e37",
   "record_differing_lines": [
    [
     "amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=6eLk--HVqXjyRUI8aNLD2_OVbybBT7b2eVGvWwd0X6M,307947",
     "amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=vPgwgHx97Tjhtgz_MtJCN5pMeT3bIUl0Ez7Hxn4upnQ,307968"
    ]
   ],
   "cause": "only the RECORD line holding the SBOM hash/size differs"
  },
  {
   "wheel": "B",
   "file": "amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json",
   "p1_bytes": 307947,
   "p2_bytes": 307968,
   "p1_sha256": "e9e2e4fbe1d5a978f245423c68d2c3dbf3956f26c14fb6f67951af5b07745fa3",
   "p2_sha256": "bcf830807c7ded38e1b60cff32d242379a4c793ddb214974133ec7c67e2ea674",
   "diff_lines_p1_minus_p2_plus": [
    "-      \"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
    "+      \"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\",",
    "-          \"bom-ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\",",
    "+          \"bom-ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0 bin-target-0\",",
    "-      \"ref\": \"path+file://<workspace>/.cache/p1/amm-challenge/amm_sim_rs#0.1.0\",",
    "+      \"ref\": \"path+file://<workspace>/.cache/pathtwo/x/amm-challenge/amm_sim_rs#0.1.0\","
   ],
   "cause": "SBOM bom-ref/ref fields embed the absolute checkout path as path+file://<checkout>/amm_sim_rs#0.1.0 (3 lines); --remap-path-prefix does not affect it"
  },
  {
   "note": "amm_sim_rs/amm_sim_rs.abi3.so, METADATA, WHEEL and __init__.py are byte-identical between p1 and p2 for both A and B (A .so 1626664 bytes, B .so 1643000 bytes), so there is no strings -n 8 diff to list; all zip entries carry date_time (2026, 2, 7, 23, 12, 24) = SOURCE_DATE_EPOCH in both paths"
  }
 ],
 "gate": {
  "ran": true,
  "wheels": "p1 A and p1 B, each in its own uv venv (python 3.12) with numpy, py-solc-x==2.1.0, pyrevm==0.3.7, then uv pip install --no-deps -e . of p1's checkout",
  "ch_sha256": "6dd68f77a70900319460215374143dbd5d924198450a46d9f5f91f6b1e3d35c3",
  "ch_a": "525.5258821780834",
  "ch_b": "525.5258821780834",
  "ch_mean_decimal_sum": {
   "a": "525.52588217808343827",
   "b": "525.52588217808343827"
  },
  "ch_matches_expected": true,
  "v2_sha256": "28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab",
  "v2_b": {
   "calls": 21580,
   "oog": 3,
   "max_ok_gas": 243554,
   "init_max": 236377
  },
  "v2_matches_expected": true,
  "v2_harness_exit": 2,
  "v2_note": "harness exits 2 because any OOG marks a run invalid; both runs (V2 and --other V2) gave identical stats"
 },
 "equals_reference": {
  "a": false,
  "b": false,
  "reference_a": "11fcc2748d430bc73c5acb107ca1fab9a6719b86bc2b0960c9cbcc374b6eba4e",
  "reference_b": "6c6a439e3aff01fe014123559ec5c1b6414b515a74cbe0402a31ded19716bfce"
 },
 "seconds": {
  "uv_download": 1,
  "venv_and_pip": 4,
  "rustup_and_toolchain": 8,
  "generate_lockfile": 4,
  "build_p1_a": 21,
  "build_p1_b": 11,
  "build_p2_a": 18,
  "build_p2_b": 11,
  "gate_ch_a_run_batch": 29.646413803100586,
  "gate_ch_b_run_batch": 31.43803381919861,
  "gate_v2_run_v2": 0.412,
  "gate_v2_run_other": 0.419
 },
 "notes": [
  "Builds used the brief's exact command and env: SOURCE_DATE_EPOCH=1770505944 (git log -1 --format=%ct), CARGO_INCREMENTAL=0, RUSTFLAGS with --remap-path-prefix=<checkout>=/src, <CARGO_HOME>=/cargo, <RUSTUP_HOME>=/rustup as absolute paths of each checkout; maturin build --release --strip --locked --zig --target x86_64-unknown-linux-gnu --compatibility manylinux2014 --features pyo3/abi3-py310.",
  "Order per checkout: wheel A on the unchanged commit (+Cargo.lock), then git apply scratch/instrumentation.patch (sha256 11f79c95f30eb7d829be6c34d57caf28f5b3de39dce8f81bb62a8029231e0e1e, from source_files of artifact 02c134d9...) and version = \"0.1.0.post1\" in amm_sim_rs/pyproject.toml, then wheel B in the same target dir.",
  "Across the two checkout paths on this one machine the compiled .so is byte-identical for A and for B; the wheels still differ only because maturin's CycloneDX SBOM (dist-info/sboms/amm_sim_rs.cyclonedx.json) records the absolute checkout path (3 lines), which changes its size (307947 vs 307968 bytes) and the RECORD line for it. Report only; no fix was tried.",
  "Within a path the SBOM is identical for A and B (sha256 e9e2e4fb... in p1, bcf83080... in p2).",
  "Neither p1 wheel equals Taylor's reference hashes (A 11fcc274..., B 6c6a439e...); p1 sizes A 719308, B 727746 bytes. Since the SBOM embeds the checkout path, a reference built in a different path cannot match byte-for-byte even with an identical .so.",
  "Gate: CH (sha256 verified) vs VanillaStrategy, seeds 0..999 with MatchRunner._build_configs (n_simulations=1000, build_base_config(seed=None), BASELINE_VARIANCE), one amm_sim_rs.run_batch(..., 8); mean = sum(edges['submission'])/1000 in float gives 525.5258821780834 with both A and B.",
  "V2 = artifact 1f4f14f0... code (sha256 a9830b41...) with the two edits, sha256 28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab verified; python scratch/harness.py V2.sol 10043 10045 out.json --other V2.sol with wheel B: Submission afterSwap calls 21580, oog 3, max_ok_gas 243554; afterInitialize max_ok_gas 236377.",
  "Workspace absolute paths are written as <workspace>. Everything was done under the workspace's .cache/ folder, which was removed afterwards; no wheel was downloaded or uploaded."
 ]
}