{
 "blocked": null,
 "versions": {
  "rustc": "rustc 1.99.1 (58cf8f9c3 2026-10-13)",
  "cargo": "cargo 1.99.1 (5f94df478 2026-08-27)",
  "maturin": "maturin 1.16.0",
  "zig": "0.17.1",
  "python": "Python 3.12.16",
  "uv": "uv 0.13.7 (x86_64-unknown-linux-gnu)"
 },
 "source_date_epoch": 1770505944,
 "cargo_lock": {
  "sha256": "a180854ccb8f32e0104bafea81d25b08a916116c80b9d44a2e3d17dfeed3cc65",
  "bytes": 75461,
  "p2_copy_sha256": "a180854ccb8f32e0104bafea81d25b08a916116c80b9d44a2e3d17dfeed3cc65",
  "text": null,
  "text_gzip_base64": "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",
  "text_note": "The whole file is 75461 bytes, more than the 64000-byte limit for this result, so it is given gzip-compressed (mtime 0) and base64-encoded in text_gzip_base64. Decompressed, it is the whole file, byte for byte, and matches sha256 above."
 },
 "builds": [
  {
   "path": "p1",
   "checkout": "<workspace>/.cache/p1/amm-challenge",
   "a_file": "amm_sim_rs-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "a_sha256": "f4e5f7fd9aefa31cb7ab4154ea4cc5f16c6d4d24d25936243bb5e7184b829e78",
   "a_bytes": 719300,
   "b_file": "amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "b_sha256": "83690eefd7c309b511e0aabc113d7f93b0e0305df3693ea94b97470b4002f11d",
   "b_bytes": 727737
  },
  {
   "path": "p2",
   "checkout": "<workspace>/.cache/pathtwo/x/amm-challenge",
   "a_file": "amm_sim_rs-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "a_sha256": "d97b521af58394b60f703d903f592ae6e98ee8515ecf55e2a2053d04a7f2c24f",
   "a_bytes": 719312,
   "b_file": "amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
   "b_sha256": "cea05bdf37272ec0d9676fdaec3be43b5dbadecbaa75a7a31c26d985aa735c5b",
   "b_bytes": 727750
  }
 ],
 "same_across_paths": {
  "a": false,
  "b": false
 },
 "so_sha256": {
  "p1A": "414ea6d201d299b2967b2aee72c9704758fa69acf6df6cd295d83598118efd37",
  "p2A": "414ea6d201d299b2967b2aee72c9704758fa69acf6df6cd295d83598118efd37",
  "p1B": "ff88b6353c2aad7342f0a26194f7347e78b9c3b38d683a7449006d423978cd14",
  "p2B": "ff88b6353c2aad7342f0a26194f7347e78b9c3b38d683a7449006d423978cd14"
 },
 "so_same_across_paths": {
  "a": true,
  "b": true
 },
 "differences": [
  {
   "wheel": "A",
   "files_only_in_p1": [],
   "files_only_in_p2": [],
   "zip_metadata_differences": [],
   "files_that_differ": [
    {
     "file": "amm_sim_rs-0.1.0.dist-info/RECORD",
     "p1_sha256": "05822980439a4acfbea604094e0680a89bb4cc3ca37b57d5eab8c3be8295cd9a",
     "p1_bytes": 499,
     "p2_sha256": "03489350219b803915f4ae7acdfa773f790f173958220eaa3c6cdbce44356b84",
     "p2_bytes": 499,
     "diff": [
      "--- p1",
      "+++ p2",
      "@@ -5 +5 @@",
      "-amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=-zmep2LguTVIH0aYKG7LXVjEi0B-JsD9B6K9eujpkiI,307926",
      "+amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=5hquL-vCAeZZKW4WI3hpnbawNGKz-ij7vxJr-1dssB8,307947"
     ]
    },
    {
     "file": "amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json",
     "p1_sha256": "fb399ea762e0b935481f4698286ecb5d58c48b407e26c0fd07a2bd7ae8e99222",
     "p1_bytes": 307926,
     "p2_sha256": "e61aae2febc201e659296e162378699db6b03462b3fa28fbbf126bfb576cb01f",
     "p2_bytes": 307947
    }
   ],
   "so_differs": false,
   "sbom_first_20_differing_lines": [
    "-      \"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\","
   ],
   "sbom_differing_lines_total": 6,
   "zip_entries_p1": [
    "amm_sim_rs/__init__.py (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs/amm_sim_rs.abi3.so (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.dist-info/METADATA (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.dist-info/WHEEL (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.dist-info/sboms/amm_sim_rs.cyclonedx.json (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.dist-info/RECORD (2026, 2, 7, 23, 12, 24)"
   ]
  },
  {
   "wheel": "B",
   "files_only_in_p1": [],
   "files_only_in_p2": [],
   "zip_metadata_differences": [],
   "files_that_differ": [
    {
     "file": "amm_sim_rs-0.1.0.post1.dist-info/RECORD",
     "p1_sha256": "fe5ebf889a3953a250a3018a41c57886024f4ebca0daea4e247afd034c4e89e5",
     "p1_bytes": 523,
     "p2_sha256": "077294a580e80b6d7fef50206ecd2dc6cec39fb0c94a0a7bce594b536ad2f6be",
     "p2_bytes": 523,
     "diff": [
      "--- p1",
      "+++ p2",
      "@@ -5 +5 @@",
      "-amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=-zmep2LguTVIH0aYKG7LXVjEi0B-JsD9B6K9eujpkiI,307926",
      "+amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json,sha256=5hquL-vCAeZZKW4WI3hpnbawNGKz-ij7vxJr-1dssB8,307947"
     ]
    },
    {
     "file": "amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json",
     "p1_sha256": "fb399ea762e0b935481f4698286ecb5d58c48b407e26c0fd07a2bd7ae8e99222",
     "p1_bytes": 307926,
     "p2_sha256": "e61aae2febc201e659296e162378699db6b03462b3fa28fbbf126bfb576cb01f",
     "p2_bytes": 307947
    }
   ],
   "so_differs": false,
   "sbom_first_20_differing_lines": [
    "-      \"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\","
   ],
   "sbom_differing_lines_total": 6,
   "zip_entries_p1": [
    "amm_sim_rs/__init__.py (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs/amm_sim_rs.abi3.so (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.post1.dist-info/METADATA (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.post1.dist-info/WHEEL (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.post1.dist-info/sboms/amm_sim_rs.cyclonedx.json (2026, 2, 7, 23, 12, 24)",
    "amm_sim_rs-0.1.0.post1.dist-info/RECORD (2026, 2, 7, 23, 12, 24)"
   ]
  }
 ],
 "gate": {
  "ran": true,
  "wheels": "p1 A and p1 B",
  "ch_sha256": "6dd68f77a70900319460215374143dbd5d924198450a46d9f5f91f6b1e3d35c3",
  "ch_a": "525.5258821780834",
  "ch_b": "525.5258821780834",
  "ch_expected": "525.5258821780834",
  "ch_a_ok": true,
  "ch_b_ok": true,
  "v2_sha256": "28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab",
  "v2_b": {
   "calls": 21580,
   "oog": 3,
   "max_ok_gas": 243554,
   "init_max": 236377
  },
  "v2_b_other_run": {
   "calls": 21580,
   "oog": 3,
   "max_ok_gas": 243554,
   "init_max": 236377
  },
  "v2_b_ok": true,
  "v2_harness_exit_code": 2,
  "v2_harness_valid": false
 },
 "equals_reference": {
  "a": false,
  "b": false
 },
 "seconds": {
  "build_p1A": 44,
  "build_p2A": 38,
  "build_p1B": 15,
  "build_p2B": 14,
  "gate_ch_a_wall": 231,
  "gate_ch_b_wall": 234,
  "gate_v2_b_wall": 4,
  "gate_v2_b_run_seconds": [
   0.572,
   0.591
  ]
 },
 "notes": [
  "Host: Linux x86_64 (WSL2), 8 CPUs, about 8 GB RAM. Everything ran under the workspace's .cache/. TMPDIR, RUSTUP_HOME, CARGO_HOME, UV_CACHE_DIR, UV_PYTHON_INSTALL_DIR, SOLCX_BINARY_PATH and ZIG_GLOBAL_CACHE_DIR were all in .cache/tc. RUSTUP_TOOLCHAIN was 1.99.1. Absolute paths are shown as <workspace>.",
  "The toolchain was installed as the objective says. uv came from the latest-release tarball (tar --no-same-owner). Rust came from the rustup script (-y --profile minimal --no-modify-path --default-toolchain none), then rustup toolchain install 1.99.1 --profile minimal, then rustup target add x86_64-unknown-linux-gnu. The venv used uv venv --python 3.12 and uv pip install maturin==1.16.0 ziglang==0.17.1 numpy py-solc-x==2.1.0 pyrevm==0.3.7.",
  "Deviation needed to build: this host has no system C compiler or linker (no cc, no gcc). The first build failed with 'error: linker `cc` not found' while linking host build scripts (proc-macro2, quote, libc). The fix was a shim at .cache/tc/bin/cc, placed on PATH, that execs maturin/cargo-zigbuild's own generated zig wrapper (zigcc-x86_64-unknown-linux-gnu.2.17). That wrapper links the host build scripts and proc-macros. Target artifacts are still linked by maturin --zig exactly as specified. Other machines that have a system cc will link their build scripts differently. Here that did not change the shipped .so: it is identical across the two paths.",
  "Both checkouts were at 6b6921f8d463314aa7c96234e1be25a25245f704. p1 was cloned from github.com/benedictbrady/amm-challenge. p2 (.cache/pathtwo/x/amm-challenge) was git-cloned from the p1 clone and checked out at the same commit. Cargo.lock was generated once in p1 with cargo generate-lockfile (resolved 2026-11-08) and copied byte-for-byte into p2. The commit has no Cargo.lock, so another day's generate-lockfile can resolve different versions.",
  "Builds ran in this order: p1 A and p2 A at the same time, then the patch and version edit in both checkouts, then p1 B and p2 B at the same time. Each checkout used its own target dir (amm_sim_rs/target), so B builds reused that checkout's A build cache. The flags were exactly the objective's maturin flags, with SOURCE_DATE_EPOCH=git log -1 --format=%ct, CARGO_INCREMENTAL=0 and RUSTFLAGS remapping that checkout's own absolute path, CARGO_HOME and RUSTUP_HOME. The patch was scratch/instrumentation.patch from artifact 02c134d9\u2026, applied with git apply cleanly, and touches amm_sim_rs/src/evm/strategy.rs and amm_sim_rs/src/lib.rs. The version edit set version = \"0.1.0.post1\" in amm_sim_rs/pyproject.toml.",
  "Result: the wheels are NOT byte-identical across the two paths, for either A or B. The compiled extension amm_sim_rs/amm_sim_rs.abi3.so IS byte-identical across paths, for both A and B (see so_sha256). __init__.py, METADATA and WHEEL are identical too, and all zip timestamps equal SOURCE_DATE_EPOCH (2026-02-07 23:12:24). The only differing content is the CycloneDX SBOM maturin 1.16.0 writes to <dist-info>/sboms/amm_sim_rs.cyclonedx.json. It embeds the absolute checkout path in 3 bom-ref/ref values ('path+file://<checkout>/amm_sim_rs#0.1.0'). Its hash and size then differ in RECORD as well. The wheel size difference (12 bytes for A, 13 for B) comes only from that path. Per the brief, no fix was tried.",
  "strings -n 8: the brief asks for the first 20 differing lines of strings output for the .so, but the .so does not differ, so there are none. Neither unzip nor binutils strings is installed here. Unzipping and comparison used Python zipfile, and a strings -n 8 equivalent (runs of 8 or more ASCII 0x20-0x7e or TAB over the whole file) was ready but not needed.",
  "equals_reference: none of these wheels equals Taylor's reference A 11fcc274\u2026 or B 6c6a439e\u2026. That is expected, since our wheels embed this machine's checkout path in the SBOM. Whether the .so inside the reference wheels matches ours could not be checked, because no wheel was downloaded (forbidden by the brief).",
  "Gate (p1 wheels, Linux x86_64 host): a separate uv venv (Python 3.12) for each wheel, with the wheel, numpy, py-solc-x==2.1.0 and pyrevm==0.3.7, then uv pip install --no-deps -e . in the p1 checkout. solc 0.8.24 was fetched by py-solc-x into SOLCX_BINARY_PATH. CH (sha256 6dd68f77\u2026) ran alone vs VanillaStrategy on seeds 0..999 with configs = MatchRunner(n_simulations=1000, build_base_config(seed=None), variance=BASELINE_VARIANCE)._build_configs() and amm_sim_rs.run_batch with 8 workers. The mean of edges['submission'] in seed order was 525.5258821780834 with both A and B, equal to the expected value.",
  "The first single-call 1000-seed CH run with wheel A was killed by the host (exit 137) after 475 s, probably for memory, since all 1000 results were held at once. The gate was rerun as 10 run_batch calls of 100 seeds each (same configs, sliced from the 1000-config list). Edges were saved per seed, and the mean is sum over seeds 0..999 in seed order / 1000.",
  "V2 (sha256 28417e11\u2026) was derived from artifact 1f4f14f0\u2026 code with the 2 replacements (each matched exactly once). With wheel B, python scratch/harness.py V2.sol 10043 10045 out.json --other V2.sol gave afterSwap calls 21580, oog 3, max_ok_gas 243554 and afterInitialize max_ok_gas 236377 in both runs, matching the brief. The harness exits with code 2 by design, because the OOGs make the run invalid.",
  "Nothing was uploaded or submitted, and no wheel was downloaded."
 ]
}