From 52abb032f39fffe9752637718dc1c6d0dcc6fb03 Mon Sep 17 00:00:00 2001 From: Anionix Date: Fri, 17 Jul 2026 02:46:28 +0900 Subject: [PATCH 1/3] Record FastLanes Linux retry evidence --- docs/research-log.md | 2 ++ research/formats/fastlanes.json | 45 ++++++++++++++++++++++++++++++--- tests/test_research.py | 5 ++++ 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/docs/research-log.md b/docs/research-log.md index b48d943..ad894af 100644 --- a/docs/research-log.md +++ b/docs/research-log.md @@ -34,6 +34,8 @@ The claims runner keeps the corrected TsFile time-series workload as `ADAPTED` a The 2026-07-17 retry added the exact 13-column mixed-schema case and corrected fatal classification for worker failures and crashes. The lock-pinned Python package could not build under macOS arm64 Clang 21 because `src/table/stats.cpp` promotes a `std::string` null-argument warning to an error. The official C++ `quick_fuzz_test` built after downgrading the two observed warning classes, but all ten pinned cases exited `SIGTRAP`; this is experimental evidence, not an upstream bug claim. +The Linux x86_64 retry on [workflow run 29520329351](https://github.com/Anionix/data-format-lab/actions/runs/29520329351) built the pinned Python extension successfully with Python 3.12.13, Clang 21.1.8, CMake 4.1.2, and Ninja 1.13.2. The 1,000,000-row numeric control and all five string-boundary cases exited `SIGSEGV`; the 13-column mixed case raised `UNREACHABLE` at `src/wizard/wizard.cpp:1252`. Malformed comma input raised a typed-cast error in this Linux run. The result is `FAILED` and remains outside every ranking; it is distinct from the earlier macOS build blocker and from the lab's historical comma-delimiter mistake. + The 2026-07-17 Nimble retry pinned core `9da673...`, Velox `e06dd...`, and OpenZL `6b48...`. The dependency provenance was not fully lock-pure: protobuf library `35.1` came from Nix, `protoc 33.4` and fmt `12.1.0` came from Homebrew, and CMake reported the compiler/library mismatch. A dependency-resolving CMake path reached the bundled xsimd project but stopped at its pre-3.5 minimum-version declaration under CMake 4.1.2. The earlier protobuf/fmt target failure and this newer configure failure are both `UNSUPPORTED` build evidence; the 1,024-column projection comparison was not run. The 2026-07-17 AnyBlox retry found official bundler and `anyblox2csv` targets at the pinned commits, but the artifact still required an undated nightly Rust toolchain. This host had Homebrew Rust 1.93.1 and no `rustup`; stable compilation failed with `E0554/E0599`. The input bundle and compiler were not checksum-complete, so no round trip or performance result was promoted. diff --git a/research/formats/fastlanes.json b/research/formats/fastlanes.json index 5bc6364..514e241 100644 --- a/research/formats/fastlanes.json +++ b/research/formats/fastlanes.json @@ -5,10 +5,10 @@ "source_commits": {"core": "f0edc1020a538f1f8098640fce8347c9ac247a0d"}, "primary_source": "https://fastlanes.io/", "claim": "nested encodings designed for parallel SIMD-friendly decoding", - "attempted_on": "2026-07-14", + "attempted_on": "2026-07-17", "comparability": "PARTIAL", "state": "FAILED", - "claim_summary": "numeric data round-tripped; partial-vector string dictionary lookup failed; Python binding rebuild blocked before mixed-schema test", + "claim_summary": "the macOS exploratory numeric control round-tripped, but the reproducible Linux x86_64 retry built successfully and then crashed numeric and string cases; the 13-column mixed case reached an UNREACHABLE path", "correction": "the earlier numeric -11 result used comma-separated input against the official pipe-delimited reader and is superseded", "attempts": [ { @@ -70,7 +70,46 @@ "warning_overrides": ["-Wno-error=character-conversion", "-Wno-error=nonnull"] }, "result": "target built after warning overrides; all 10 CTest cases exited SIGTRAP" + }, + { + "entrypoint": "official pyfastlanes editable build and claims workflow on Linux x86_64", + "attempted_on": "2026-07-17", + "workload": "1,000,000 rows and 8 numeric columns; string rows 1,023, 1,024, 1,025, 2,048, and 2,049; 1,024 rows and 13 mixed columns; malformed comma input", + "environment": { + "os": "Ubuntu 24.04 GitHub-hosted runner", + "kernel": "6.17.0-1020-azure", + "architecture": "x86_64", + "host_python": "3.12.3", + "python": "3.12.13", + "clang": "21.1.8", + "cmake": "4.1.2", + "ninja": "1.13.2", + "scikit_build_core": "0.11.6", + "pybind11": "2.12.1", + "setuptools_scm": "8.3.1", + "build_type": "Release", + "parallelism": 4, + "timeout_seconds": 120, + "package": "pyfastlanes==0.1.3.post9", + "runtime_version": "0.1.4" + }, + "build_command": "python -m venv native/fastlanes/.venv; pip install scikit-build-core==0.11.6 cmake==4.4.0 ninja==1.13.0 pybind11==2.12.1 setuptools-scm==8.3.1; CMAKE_BUILD_PARALLEL_LEVEL=4 pip install --no-build-isolation -e native/fastlanes", + "result": { + "build": "succeeded", + "numeric": "CRASHED SIGSEGV (-11)", + "string_boundaries": "1,023, 1,024, 1,025, 2,048, and 2,049 all CRASHED SIGSEGV (-11)", + "mixed": "HARNESS_FAILED RuntimeError: UNREACHABLE at src/wizard/wizard.cpp:1252", + "comma_malformed": "HARNESS_FAILED RuntimeError: invalid character in signed integer; child process returned 0 because the worker captured the exception" + }, + "workflow_run": { + "run_id": "29520329351", + "url": "https://github.com/Anionix/data-format-lab/actions/runs/29520329351", + "artifact_name": "data-format-lab-fastlanes-linux-x86_64-29520329351", + "results_path": "runs/fastlanes-linux-29520329351/results.json", + "archive_path": "outputs/release/data-format-lab-fastlanes-linux-x86_64-29520329351.tar.zst", + "archive_sha256": "b9270a10d9cc0f5d81a81e67b8e22af591a06018e767720b9d9c6e4c3689227a" + } } ], - "retry_when": "the official Python extension builds in a reproducible toolchain, round-trips partial-vector string dictionaries, and rejects malformed input without terminating the process" + "retry_when": "a pinned source and toolchain complete the 13-column mixed-schema round trip without SIGSEGV or UNREACHABLE, with the same result independently reproduced on macOS and Linux" } diff --git a/tests/test_research.py b/tests/test_research.py index c76a1e0..3d282e0 100644 --- a/tests/test_research.py +++ b/tests/test_research.py @@ -19,6 +19,11 @@ def test_negative_research_records_are_pinned_and_unranked() -> None: assert "checksum-complete dataset" in records["anyblox"]["retry_when"] assert ".anyblox bundle" in records["anyblox"]["retry_when"] + fastlanes_attempt = records["fastlanes"]["attempts"][-1] + assert fastlanes_attempt["environment"]["architecture"] == "x86_64" + assert fastlanes_attempt["result"]["mixed"].startswith("HARNESS_FAILED") + assert fastlanes_attempt["workflow_run"]["run_id"] == "29520329351" + nimble_json = json.dumps(records["nimble"]) assert "/nix/store/" not in nimble_json assert "/opt/homebrew/" not in nimble_json From c9d3dbd77ce3f127638d290363e3a051a6a5271a Mon Sep 17 00:00:00 2001 From: Anionix Date: Fri, 17 Jul 2026 02:48:17 +0900 Subject: [PATCH 2/3] Clarify host-specific FastLanes selection --- docs/format-selection.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/format-selection.md b/docs/format-selection.md index c8c4beb..076d824 100644 --- a/docs/format-selection.md +++ b/docs/format-selection.md @@ -24,11 +24,13 @@ attempts. They remain research leads, not production recommendations. Their exact commits, failures, and retry conditions are recorded in the [negative-evidence records](../research/formats/). -FastLanes also has no general selection yet. Its corrected pipe-delimited -numeric case round-tripped, but partial-vector string cases failed, malformed -input terminated the process, and the pinned Python binding hit a reproducible -macOS build blocker. Keep it as experimental evidence until those retry -conditions are resolved. +FastLanes also has no general selection yet. Results are host- and +workload-sensitive: an earlier pipe-delimited numeric case round-tripped, but +the pinned Linux retry crashed in the one-million-row numeric case and all +string-boundary cases, while the mixed 13-column case raised an internal +`UNREACHABLE` error. The pinned macOS Python binding also has a reproducible +build blocker. Keep it as experimental evidence until these retry conditions +are resolved. DuckDB is a query engine and can be useful with several of these formats. It is not a competing file-format row in this guide. From 4f79a3c09e67333259c64bf65901861afc131eb0 Mon Sep 17 00:00:00 2001 From: Anionix Date: Fri, 17 Jul 2026 02:54:19 +0900 Subject: [PATCH 3/3] Publish FastLanes retry archive metadata --- docs/research-log.md | 2 +- research/formats/fastlanes.json | 7 +++++-- tests/test_research.py | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/research-log.md b/docs/research-log.md index ad894af..3800796 100644 --- a/docs/research-log.md +++ b/docs/research-log.md @@ -34,7 +34,7 @@ The claims runner keeps the corrected TsFile time-series workload as `ADAPTED` a The 2026-07-17 retry added the exact 13-column mixed-schema case and corrected fatal classification for worker failures and crashes. The lock-pinned Python package could not build under macOS arm64 Clang 21 because `src/table/stats.cpp` promotes a `std::string` null-argument warning to an error. The official C++ `quick_fuzz_test` built after downgrading the two observed warning classes, but all ten pinned cases exited `SIGTRAP`; this is experimental evidence, not an upstream bug claim. -The Linux x86_64 retry on [workflow run 29520329351](https://github.com/Anionix/data-format-lab/actions/runs/29520329351) built the pinned Python extension successfully with Python 3.12.13, Clang 21.1.8, CMake 4.1.2, and Ninja 1.13.2. The 1,000,000-row numeric control and all five string-boundary cases exited `SIGSEGV`; the 13-column mixed case raised `UNREACHABLE` at `src/wizard/wizard.cpp:1252`. Malformed comma input raised a typed-cast error in this Linux run. The result is `FAILED` and remains outside every ranking; it is distinct from the earlier macOS build blocker and from the lab's historical comma-delimiter mistake. +The Linux x86_64 retry on [workflow run 29520329351](https://github.com/Anionix/data-format-lab/actions/runs/29520329351) built the pinned Python extension successfully with Python 3.12.13, Clang 21.1.8, CMake 4.1.2, and Ninja 1.13.2. The 1,000,000-row numeric control and all five string-boundary cases exited `SIGSEGV`; the 13-column mixed case raised `UNREACHABLE` at `src/wizard/wizard.cpp:1252`. Malformed comma input raised a typed-cast error in this Linux run. The result is `FAILED` and remains outside every ranking; it is distinct from the earlier macOS build blocker and from the lab's historical comma-delimiter mistake. The raw archive is preserved in the [v0.1.0 Release](https://github.com/Anionix/data-format-lab/releases/download/v0.1.0/data-format-lab-fastlanes-linux-x86_64-29520329351.tar.zst) with a [checksum sidecar](https://github.com/Anionix/data-format-lab/releases/download/v0.1.0/data-format-lab-fastlanes-linux-x86_64-29520329351.tar.zst.sha256). The 2026-07-17 Nimble retry pinned core `9da673...`, Velox `e06dd...`, and OpenZL `6b48...`. The dependency provenance was not fully lock-pure: protobuf library `35.1` came from Nix, `protoc 33.4` and fmt `12.1.0` came from Homebrew, and CMake reported the compiler/library mismatch. A dependency-resolving CMake path reached the bundled xsimd project but stopped at its pre-3.5 minimum-version declaration under CMake 4.1.2. The earlier protobuf/fmt target failure and this newer configure failure are both `UNSUPPORTED` build evidence; the 1,024-column projection comparison was not run. diff --git a/research/formats/fastlanes.json b/research/formats/fastlanes.json index 514e241..c543a1d 100644 --- a/research/formats/fastlanes.json +++ b/research/formats/fastlanes.json @@ -93,7 +93,7 @@ "package": "pyfastlanes==0.1.3.post9", "runtime_version": "0.1.4" }, - "build_command": "python -m venv native/fastlanes/.venv; pip install scikit-build-core==0.11.6 cmake==4.4.0 ninja==1.13.0 pybind11==2.12.1 setuptools-scm==8.3.1; CMAKE_BUILD_PARALLEL_LEVEL=4 pip install --no-build-isolation -e native/fastlanes", + "build_command": "nix develop --command python -m venv native/fastlanes/.venv; nix develop --command native/fastlanes/.venv/bin/python -m pip install scikit-build-core==0.11.6 cmake==4.4.0 ninja==1.13.0 pybind11==2.12.1 setuptools-scm==8.3.1; CMAKE_BUILD_PARALLEL_LEVEL=4 nix develop --command native/fastlanes/.venv/bin/python -m pip install --no-build-isolation -e native/fastlanes", "result": { "build": "succeeded", "numeric": "CRASHED SIGSEGV (-11)", @@ -107,7 +107,10 @@ "artifact_name": "data-format-lab-fastlanes-linux-x86_64-29520329351", "results_path": "runs/fastlanes-linux-29520329351/results.json", "archive_path": "outputs/release/data-format-lab-fastlanes-linux-x86_64-29520329351.tar.zst", - "archive_sha256": "b9270a10d9cc0f5d81a81e67b8e22af591a06018e767720b9d9c6e4c3689227a" + "archive_sha256": "b9270a10d9cc0f5d81a81e67b8e22af591a06018e767720b9d9c6e4c3689227a", + "release_tag": "v0.1.0", + "release_asset_url": "https://github.com/Anionix/data-format-lab/releases/download/v0.1.0/data-format-lab-fastlanes-linux-x86_64-29520329351.tar.zst", + "release_checksum_url": "https://github.com/Anionix/data-format-lab/releases/download/v0.1.0/data-format-lab-fastlanes-linux-x86_64-29520329351.tar.zst.sha256" } } ], diff --git a/tests/test_research.py b/tests/test_research.py index 3d282e0..8dd26f4 100644 --- a/tests/test_research.py +++ b/tests/test_research.py @@ -23,6 +23,10 @@ def test_negative_research_records_are_pinned_and_unranked() -> None: assert fastlanes_attempt["environment"]["architecture"] == "x86_64" assert fastlanes_attempt["result"]["mixed"].startswith("HARNESS_FAILED") assert fastlanes_attempt["workflow_run"]["run_id"] == "29520329351" + assert fastlanes_attempt["workflow_run"]["release_tag"] == "v0.1.0" + assert fastlanes_attempt["workflow_run"]["release_asset_url"].endswith( + ".tar.zst" + ) nimble_json = json.dumps(records["nimble"]) assert "/nix/store/" not in nimble_json