Bug Fixes
- apply the rewrite limit to each side like Git
- only compare rewrite destinations to possible sources
Performance
-
force line tokenization into interning loops
Profiling the in-memory blob benchmark on macOS arm64 placed about 45% of
samples inByteLinesWithoutTerminator::next(). Force this small iterator
method into its callers so interning avoids a separate call for each line.
The ordinary inline hint did not produce a useful improvement.Alternating baseline and candidate runs with Rust 1.99 measured roughly
21-23% less interning time on the existing sparse-edit fixtures:- 448 lines: about 8.77 us to 6.76-6.87 us.
- 28,672 lines: about 566-571 us to 447-451 us.
Keep the iterator implementation and public API unchanged. Add direct
coverage for empty inputs and lines, LF/CRLF, an unterminated final CR,
arbitrary bytes, and repeated calls after exhaustion.
Commit Statistics
- 14 commits contributed to the release over the course of 14 calendar days.
- 14 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #3080 from cruessler/add-shortcut-for-trivial-myers-changes (59ba38b)
- Add benchmark for trivial Myers cases (40a6592)
- Merge pull request #3074 from GitoxideLabs/fix/imara-myers-whole-file-occurrences (ad129e1)
- Force line tokenization into interning loops (b898550)
- Benchmark
gix-diffblob stages, algorithms, and allocation reuse (0fc9377) - Merge pull request #3062 from hashhar/hashhar/rename-limit (d568e8b)
- Review (02ebc88)
- Apply the rewrite limit to each side like Git (e571a92)
- Merge pull request #3055 from martinvonz/mz/txulrqqtxoln (cd317d3)
- Review (b7be86d)
- Only compare rewrite destinations to possible sources (cca6c27)
- Merge pull request #3053 from GitoxideLabs/various-improvements (2d8dcc4)
- Release gix-error v0.5.1, gix-utils v0.5.1 (6d1b686)
- Merge pull request #3048 from GitoxideLabs/new-release (5fccccf)