Skip to content

v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Aug 09:17

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-uring cargo feature is gone;
  • config::Backend::IoUring is renamed IoUringRemoved (it now resolves to the
    portable backend);
  • io_backend::UringBackend is 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

  • backend in config.toml now actually selects the ingest backend. It was
    parsed and validated, then ignored — selection came from build features alone,
    so setting rayon or io-uring changed nothing. greplm status also reports
    the backend genuinely in use rather than the one a build feature implied.

Removed

  • The io-uring cargo feature and its backend. It was a stub that deferred to
    a buffered read while reporting itself as io_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. The IoBackend trait stays as the seam
    and docs/ROADMAP.md records the numbers so the decision can be revisited for
    cold-cache indexing of very large trees.

    A config.toml written before this change may still say backend = "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