ethos-parser 0.57.0
The third release of ethos-parser. grounding-check now answers as Ethos v0.6.0 — the verifier this engine is oracled against — does, fault for fault, and does it in a third of the memory.
Platforms
| Archive | Target | State |
|---|---|---|
ethos-parser-0.57.0-aarch64-apple-darwin.tar.gz |
macOS, Apple silicon | verified |
ethos-parser-0.57.0-x86_64-apple-darwin.tar.gz |
macOS, Intel | verified (executed under Rosetta 2) |
verified means built with the pinned Rust 1.88.0, executed, and its output byte-identical to the native build's over the gate corpus. SHA256SUMS.txt records the state beside each digest. Linux and Windows are still not shipped: nothing available can execute them. Nothing is published to crates.io, npm or PyPI.
Install
gh release download v0.57.0 --repo docushell/ethos-parser
shasum -a 256 -c SHA256SUMS.txt --ignore-missing
tar -xzf ethos-parser-0.57.0-aarch64-apple-darwin.tar.gz
./ethos-parser-0.57.0-aarch64-apple-darwin/ethos-parser --versionNeither binary is notarized. A copy downloaded through a browser is quarantined; once the digest checks out, xattr -d com.apple.quarantine ethos-parser-0.57.0-*/ethos-parser clears it. gh release download does not set the attribute.
What changed
Why it is a MINOR — grounding-check's reports change for the same input:
- It gives Ethos v0.6.0's report byte for byte on a valid artifact, and its verdict, error code and path on an invalid one, on every input measured. On 198 of 3,681 mutated artifacts 0.56.0 gave a different code or path — among them an integer at
i64::MIN(a debug build panicked), a million-item array, nesting 128 levels deep, a five-numberbbox, a repeated unknown key, an artifact written as a JSON array, and any two faults Ethos orders by where they sit in the bytes. - Every artifact 0.56.0 judged valid gets a byte-identical report, unless bound to a source over 256 MiB. Of the invalid mutants, 1,969 keep code and path but change
message, which now quotes the parser. --source-artifactis read only for a valid artifact, as Ethos reads it, under Ethos's 256 MiB: an invalid artifact is reported whatever the source path holds — missing, too large, or a FIFO that would block.- For library callers:
GroundingSource'sspansandtablesdefault when absent, andgrounding_check_reading_sourceis new;grounding_checkis unchanged.
Lighter:
- On a valid artifact
grounding-checkpeaks at 3.8–4.1× its input, where 0.56.0 peaked at 13.2–13.5×, and runs 44–47% faster. On the largest gate document's artifact, refused for its 1.6 million spans, 1,923 MiB → 154 MiB and 1.36 s → 0.45 s. - The one slower case: an artifact that parses as JSON but not as a grounding artifact, such as one with an unknown key at its root, still builds Ethos's full tree — +0.15 s on a 48 MiB artifact, same memory.
Tested against the pinned verifier: the oracle pin moved to Ethos v0.6.0, so the test suite checks page-less (Office) artifacts against it for the first time — all 16 committed Office documents and eight schema 1.1.0 rules.
profile_sha256: sha256:de706c10009dac90a6ba0d97d0aa1295b272a5d192afb69713f1a742c888a0b1. The full entry, with every measurement, is in CHANGELOG.md.
Known limits
grounding-check's error messages are its own; only verdict, code and path are Ethos's on an invalid artifact. Its exit code for an invalid artifact is 1, where Ethos's is 2.ethos grounding check <path> -Vexits 0 without checking;ethos-parser grounding-checkdoes not copy that.- An element omitted for its length leaves no trace in the artifact or the representation; it is declared only on stderr, in MCP's summary, and to library callers.
classifyandoverlaystill read their input throughDocument::open, which has no source ceiling.- MCP's refusal of a path that is not a regular file is Unix-only in effect: Windows reports anything but a directory as a file.
- A caller cannot set a hard memory ceiling;
--max-pagesbounds pages, not bytes.