Marcus Holland-Moritz
a80bbaa5bd
feat(metadata_v2): use bit-packing for hardlink table
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
ac53f364a7
feat(internal): add packed_int_vector template
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
6d6e6662f7
test: add more compatibility tests
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
8b7347af76
refactor(metadata_v2): use internal types w/o heap alloc where possible
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
302af7497e
feat(metadata): add directory_iterator
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
ed066dbef1
feat(internal): add directory self-index
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
2a8330b625
refactor(metadata_types): initialize empty directory view
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
26d8e0d4ed
refactor(metadata_types): improve diagnostics
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
efb7fc7b18
refactor(metadata_types): remove unused member
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
822539a992
feat(filesystem_v2): add root() method
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
a0ff15e7ac
refactor: simplify loops by using ranges
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
0e3ceb0b30
refactor: remove internal methods from public interface
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
e6d69866a3
feat: further improve walk_data_order speed by about 20%
...
Before:
```
Benchmark Time CPU Iterations
--------------------------------------------------------------------------
filesystem_walk/walk 50.9 ms 50.8 ms 14
filesystem_walk/walk_data_order 143 ms 142 ms 5
```
After:
```
Benchmark Time CPU Iterations
--------------------------------------------------------------------------
filesystem_walk/walk 50.1 ms 50.0 ms 14
filesystem_walk/walk_data_order 121 ms 121 ms 6
```
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
0bc31efeca
feat: improve performance of filesystem walk / walk_data_order
...
About 80% faster for `walk`, 25% faster for `walk_data_order`.
Before:
```
Benchmark Time CPU Iterations
--------------------------------------------------------------------------
filesystem_walk/walk 91.3 ms 91.3 ms 8
filesystem_walk/walk_data_order 181 ms 181 ms 4
```
After:
```
filesystem_walk/walk 50.1 ms 50.1 ms 14
filesystem_walk/walk_data_order 143 ms 143 ms 5
```
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
32541c3fd9
chore: add filesystem walk benchmark
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
133d98ede2
refactor(metadata_v2): small optimization
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
3d5532085c
refactor(metadata_v2): clean up timing in walk_data_order
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
1c5f345181
feat(file_stat): add perm_string() and mode_string() instance methods
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
a8cf283d4e
fix(dwarfs): limit number of chunks in inodeinfo xattr
...
Highly fragmented files would have *megabytes* in `inodeinfo`, which
not only breaks the xattr interface, but can also dramatically slow
down tools like `eza` who like to read xattrs for no apparent reason.
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
e803efebe6
feat: add inode size cache
2025-03-14 13:39:25 +01:00
Marcus Holland-Moritz
5c9cfd75bb
chore(dwarfs): add caller context to debug logging
2025-02-13 17:41:30 +01:00
Marcus Holland-Moritz
d0c5609172
feat(filesystem_v2): support maxiov parameter for readv()
2025-02-13 17:41:30 +01:00
Marcus Holland-Moritz
9724cf4203
chore: disable artifact uploads while they're unreliable
2025-02-13 17:40:11 +01:00
Marcus Holland-Moritz
5e8829bf67
docs: describe how to install FUSE driver using homebrew on macOS
2025-02-11 22:17:53 +01:00
Marcus Holland-Moritz
4d2af1726c
chore: update change log
v0.10.2
2024-12-02 16:25:35 +01:00
Marcus Holland-Moritz
101fbd6313
test: enforce metadata consistency checks by default
2024-11-21 17:24:06 +01:00
Marcus Holland-Moritz
a17599dc4c
test: add test cases for global metadata checks
2024-11-21 17:23:35 +01:00
Marcus Holland-Moritz
f2d11233d5
fix: work around deprecated boost header
2024-11-20 18:51:37 +01:00
Marcus Holland-Moritz
9bced66c9e
fix: try handling localized error messages on Windows (fixes gh #241 )
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
81585ea8cd
fix(util): add function to handle localized errors on Windows (gh #241 )
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
711358ac74
chore(logger): catch errors during fmt::print (gh #241 )
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
ab26623b30
refactor: clean up logger.h
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
75300dbfc6
fix: sanitize paths on Windows (gh #241 )
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
09d4748e87
test(tools): invalid file name handling on Windows (gh #241 )
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
7431bb627c
fix(windows): handle invalid wide chars in file names (fixes gh #241 )
...
For some reason, Windows allows invalid UTF-16 characters in file names.
Try to handle these gracefully when converting to UTF-8.
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
e8f084d183
fix(logger): handle empty log messages (partial fix for gh #241 )
2024-11-20 18:47:34 +01:00
Marcus Holland-Moritz
0757193056
chore(metadata_types): stricter checks and improved error messages
2024-11-20 15:17:12 +01:00
Marcus Holland-Moritz
7a3c16cc92
fix(metadata_types): mode/uid/gid checks were expecting 16-bit types
2024-11-20 15:17:12 +01:00
Marcus Holland-Moritz
68c44d410c
test: fix unicode path handling in os_access_mock
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
3c958c3769
fix: add missing include
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
82b556c748
fix: remove useless code
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
96ca461879
fix(filesystem_writer): std::move should have been std::forward
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
e8bca0184d
fix: add missing dtor overrides
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
5e959c9cd9
fix(similarity_ordering): ensure dtor is virtual in interface
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
6bfa9f6480
fix(console_writer): add missing header
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
603060d1bc
fix: work around benign data race in libunwind
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
109769a32f
chore: fix more spelling errors
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
118ce8213e
fix: don't pad libarchive output, ever
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
78c37dc6f5
fix(filesystem_extractor): only call closefd() if needed
2024-11-20 13:31:09 +01:00
Marcus Holland-Moritz
b8459adc05
fix: use shared_ptr to manage archive_entry and prevent leaks
2024-11-20 13:31:09 +01:00