From c901196a52dd16dda01bcd77a881d0485114b3d4 Mon Sep 17 00:00:00 2001 From: Anionix Date: Fri, 17 Jul 2026 02:45:49 +0900 Subject: [PATCH] Record FastLanes Linux retry failures --- docs/format-selection.md | 12 +++++++----- docs/research-log.md | 2 +- research/formats/fastlanes.json | 21 +++++++++++++++++++-- 3 files changed, 27 insertions(+), 8 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. diff --git a/docs/research-log.md b/docs/research-log.md index b48d943..f3e2552 100644 --- a/docs/research-log.md +++ b/docs/research-log.md @@ -26,7 +26,7 @@ The investigation then asked whether vendor and project claims were plausible, a [FastLanes](https://github.com/cwida/FastLanes), [Nimble](https://github.com/facebookincubator/nimble), and [AnyBlox](https://github.com/AnyBlox/vldb-2025) were attempted from pinned source commits. Mixed-column conversion, official build, or toolchain reproduction did not complete. Their failures are versioned evidence with retry conditions, not blank table cells. -Correction: the FastLanes numeric failure was caused by the lab writing comma-separated input to a reader configured for a pipe delimiter. With `|`, one million rows by eight numeric columns round-trip. Separate string tests still show a partial-vector boundary: 1,024 and 2,048 rows succeed while 1,023, 1,025, and 2,049 fail dictionary lookup. Invalid comma input can also terminate the process. The robustness lane records these as distinct harness, conformance, and crash-resistance observations rather than one format verdict. +Correction: the first FastLanes numeric failure was caused by the lab writing comma-separated input to a reader configured for a pipe delimiter. A later Linux retry used `|` and the pinned official binding, but one million numeric rows and all five string-boundary cases still exited `SIGSEGV`; the 13-column case raised `RuntimeError: UNREACHABLE`, and malformed comma input raised a normal `RuntimeError`. The earlier pipe-delimited numeric success is therefore host- or workload-specific, not a general claim. The [Linux workflow run](https://github.com/Anionix/data-format-lab/actions/runs/29520329351) retains per-case artifacts and hashes. The robustness lane records these as distinct harness, conformance, and crash-resistance observations rather than one format verdict. Follow-up on 2026-07-17: the pinned FastLanes Python binding was rebuilt from the official source before attempting the mixed 13-column table. On macOS ARM64 with the lab's Python 3.12 and Clang 21 environment, compilation stopped at `TypedStats` with `-Werror,-Wnonnull`. This is a reproducible build blocker, not evidence that the mixed-schema writer itself failed; the machine-readable attempt and exact pinned commit remain in `research/formats/fastlanes.json`. diff --git a/research/formats/fastlanes.json b/research/formats/fastlanes.json index 5bc6364..80440fd 100644 --- a/research/formats/fastlanes.json +++ b/research/formats/fastlanes.json @@ -8,8 +8,8 @@ "attempted_on": "2026-07-14", "comparability": "PARTIAL", "state": "FAILED", - "claim_summary": "numeric data round-tripped; partial-vector string dictionary lookup failed; Python binding rebuild blocked before mixed-schema test", - "correction": "the earlier numeric -11 result used comma-separated input against the official pipe-delimited reader and is superseded", + "claim_summary": "results are host- and workload-sensitive: the latest Linux retry crashed in numeric and string cases and failed the mixed-schema harness", + "correction": "the earlier numeric -11 result used comma-separated input against the official pipe-delimited reader; a separate Linux retry with the corrected delimiter still observed SIGSEGV, so the earlier numeric success is not a general claim", "attempts": [ { "entrypoint": "official pipe-delimited numeric conversion", @@ -26,6 +26,23 @@ "workload": "malformed delimiter input", "result": "process exited -11; retained as robustness evidence" }, + { + "entrypoint": "official pyfastlanes binding on Linux x86_64", + "attempted_on": "2026-07-17", + "workflow_run": "https://github.com/Anionix/data-format-lab/actions/runs/29520329351", + "workload": "1,000,000 numeric rows, five string-boundary cases, one 13-column mixed case, and malformed comma input", + "environment": { + "os": "Linux x86_64", + "runner": "ubuntu-24.04", + "python": "3.12.13", + "clang": "21.1.8", + "cmake": "4.1.2", + "ninja": "1.13.2", + "package": "pyfastlanes==0.1.3.post9", + "runtime": "0.1.4" + }, + "result": "numeric and all five string cases exited SIGSEGV; the mixed 13-column case raised RuntimeError UNREACHABLE; malformed comma input raised RuntimeError. The workflow preserved per-case inputs, artifacts, logs, and SHA-256 hashes." + }, { "entrypoint": "official pyfastlanes editable build with scikit-build-core", "attempted_on": "2026-07-17",