Follow-up to 0.5.0: makes a documented setting real, and removes one that was
pretending to work.
A minor rather than a patch release because the greplm-core library API changes.
For anyone depending on that crate:
- the
io-uringcargo feature is gone; config::Backend::IoUringis renamedIoUringRemoved(it now resolves to the
portable backend);io_backend::UringBackendis gone.
Nothing changes for CLI or MCP users, and existing config.toml files keep
working — backend = "io-uring" is still accepted, with a warning.
Changed
backendinconfig.tomlnow actually selects the ingest backend. It was
parsed and validated, then ignored — selection came from build features alone,
so settingrayonorio-uringchanged nothing.greplm statusalso reports
the backend genuinely in use rather than the one a build feature implied.
Removed
-
The
io-uringcargo feature and its backend. It was a stub that deferred to
a buffered read while reporting itself asio_uring, so a build with the feature
on claimed a backend it did not have. Measuring the ingest path across the worker
pool on 5,161 kernel files with a warm page cache: tree-sitter parsing 92.2%,
reads 5.6%, hashing and trigram extraction 2.1%. A perfect batched-read backend
could therefore remove at most ~5.6% of per-file CPU, and less in wall clock
because reads already overlap parsing. TheIoBackendtrait stays as the seam
anddocs/ROADMAP.mdrecords the numbers so the decision can be revisited for
cold-cache indexing of very large trees.A
config.tomlwritten before this change may still saybackend = "io-uring";
it keeps working, resolving to the portable backend with a warning, rather than
failing every command over a value that never did anything.
Full Changelog: v0.5.0...v0.6.0