Skip to content

README: bring up to date with v1.4.0/v1.5.0, fix a stale benchmark figure - #151

Merged
martinus merged 1 commit into
masterfrom
readme-refresh
Jul 26, 2026
Merged

README: bring up to date with v1.4.0/v1.5.0, fix a stale benchmark figure#151
martinus merged 1 commit into
masterfrom
readme-refresh

Conversation

@martinus

Copy link
Copy Markdown
Owner

The README was last substantively updated in #118, two releases ago. It was
missing everything shipped since, and carried one figure that no longer matched
docs/benchmarks.md.

One factual error

The path-hash-index row claimed a smaller hashfile of "41 vs 73 MiB on the
benchmark tree"
. Neither number appears anywhere in docs/benchmarks.md, which
measures 39.7 vs 70.9 MiB — and that measurement comes from the
larger-than-RAM tree, not the 2.07M-file / ~230 GiB tree the surrounding table
describes. Both the numbers and the attribution are corrected.

The table intro had the same problem in miniature: it said "benchmarked on real
btrfs data (2.07M files, ~230 GiB)" while several rows draw from the other
benchmark. It now names both trees up front.

Missing since v1.3.0

Each verified present in the tree, not taken from a commit title:

Consistency and readability

  • Dropped the standalone larger-than-RAM [!NOTE]. The same ~13× claim appeared
    three times (Why-oans table, that note, "vs upstream duperemove"); its unique
    content — peak RSS and hashfile size — is now a row in the speedups table,
    where the reader is already comparing figures.
  • Marked upstream issue references as upstream #NNN throughout. Bare #331,
    #374, #376, #387 now read as oans issues, since oans has its own numbers
    in that range. Matches the style already used for #396/#407.

Checks

All nine internal links resolve; the #larger-than-ram-dedupe and
#what-the-fork-changes anchors match real headings; and the headline numbers
(~11 min → ~92 s, ~294 → ~188 s, 13.8 vs 179.7 s) were each checked against
docs/benchmarks.md.

I did not run scripts/verify.sh: the diff is markdown-only and touches no
code, so the build/test/valgrind gate has nothing to exercise. Say the word if
you'd rather it ran anyway.

Left alone deliberately, as they look intentional rather than stale: the Debian
dep list omitting libatomic (added for Fedora 41 in #82; build-essential
covers it on Debian), and "Requires Linux 3.13+".

🤖 Generated with Claude Code

…gure

The README was last substantively updated in #118, two releases ago, so it
was missing everything shipped since and carried one number that no longer
matched the benchmark doc.

Fix a wrong figure: the path-hash row claimed "41 vs 73 MiB on the benchmark
tree". Neither number appears in docs/benchmarks.md, which measures 39.7 vs
70.9 MiB -- and that figure comes from the larger-than-RAM tree, not the
2.07M-file tree the surrounding table describes. Correct both the numbers and
the attribution, and reword the table intro, which named only one of the two
benchmarks the rows actually draw from.

Add the missing user-facing work:
  - paths beyond PATH_MAX are hashed and deduped (#117/#124/#128)
  - the streaming dedupe pipeline (#116), which had no bullet at all
  - the O(extents^2) fragmented-file scan fix (#134)
  - the two dedupe-phase races (#123, #129)
  - clang ASAN/UBSAN/TSAN CI legs, warnings-as-errors, make check-all
  - --cpu-threads, absent from both CLI lists despite being in --help
  - progress polish: scan-phase throughput (#120), idle workers (#143)

Tighten for readability: drop the standalone larger-than-RAM NOTE, which
stated the same ~13x claim a third time; its unique content (RSS, hashfile
size) moves into the speedups table where the reader is already comparing
figures. Mark upstream issue references as "upstream #NNN" throughout -- bare
markfasheh#331/markfasheh#374/markfasheh#376/markfasheh#387 now read as oans issues, since oans has its own numbers
in that range.

Docs-only; no code touched.

Co-Authored-By: Claude <noreply@anthropic.com>
@martinus
martinus merged commit 1867cdc into master Jul 26, 2026
8 checks passed
@martinus
martinus deleted the readme-refresh branch July 26, 2026 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant