Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | config: Don't mix [[attr]] and __attribute__((attr)) | Tavian Barnes | 2024-03-19 | 1 | -6/+2 |
| | | | | | GCC and Clang don't support combining the two attribute syntaxes in arbitrary order. For now, just use the GNU style. | ||||
* | Re-run include-what-you-use | Tavian Barnes | 2024-03-11 | 28 | -32/+33 |
| | |||||
* | tests/xtime: Add tests for integer overflow | Tavian Barnes | 2024-03-10 | 2 | -1/+31 |
| | |||||
* | xtime: Call tzset() from main() instead of lazily | Tavian Barnes | 2024-03-07 | 10 | -79/+32 |
| | | | | | | | | | | | | | POSIX specifies[1] that If a thread accesses tzname, daylight, or timezone directly while another thread is in a call to tzset(), or to any function that is required or allowed to set timezone information as if by calling tzset(), the behavior is undefined. So calling it lazily from arbitrary threads is risky. [1]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/tzset.html | ||||
* | tests: Change the timezone for -daystart tests | Tavian Barnes | 2024-03-07 | 2 | -2/+2 |
| | | | | | | | Otherwise, if the test files are created just before midnight, and the test runs just after midnight, -daystart will consider them one day old. Fixes #132 | ||||
* | Release 3.1.33.1.3 | Tavian Barnes | 2024-03-06 | 3 | -2/+14 |
| | |||||
* | ioq: Copy ring_ops from the previous thread | Tavian Barnes | 2024-03-06 | 1 | -1/+4 |
| | | | | | | Otherwise threads 2-N won't use io_uring at all! Oops. Fixes: 8bc72d6c ("ioq: Probe for supported io_uring operations") | ||||
* | eval: Tweak status bar punctuation | Tavian Barnes | 2024-03-06 | 1 | -1/+1 |
| | |||||
* | tests/ioq: Check that we push and pop the same number of times | Tavian Barnes | 2024-03-02 | 1 | -3/+5 |
| | |||||
* | Release 3.1.23.1.2 | Tavian Barnes | 2024-02-29 | 3 | -5/+21 |
| | |||||
* | tests: New bfs_check() macro | Tavian Barnes | 2024-02-29 | 6 | -234/+247 |
| | | | | | We now report failures and continue, rather than aborting after the first failure. | ||||
* | diag: New bfs_diag() macro | Tavian Barnes | 2024-02-29 | 2 | -3/+27 |
| | |||||
* | tests: Add more datetime parsing integration tests | Tavian Barnes | 2024-02-29 | 2 | -4/+6 |
| | |||||
* | xtime: Fix some xgetdate() bugs | Tavian Barnes | 2024-02-28 | 2 | -18/+117 |
| | | | | And add some more test cases. | ||||
* | stat: Use errno_is_like(ENOSYS) for EPERM kludge | Tavian Barnes | 2024-02-28 | 2 | -3/+5 |
| | |||||
* | tests/ioq: New unit test | Tavian Barnes | 2024-02-28 | 4 | -0/+78 |
| | |||||
* | tests/bfs/D_opt: Don't rely on directory link counts | Tavian Barnes | 2024-02-28 | 2 | -12/+1 |
| | | | | Fixes: https://github.com/tavianator/bfs/issues/131 | ||||
* | ioq: Probe for supported io_uring operations | Tavian Barnes | 2024-02-28 | 1 | -18/+67 |
| | |||||
* | ioq: Remove some branches from ioq_slot_{push,pop}() | Tavian Barnes | 2024-02-18 | 1 | -12/+21 |
| | |||||
* | tests: Redirect stdin in bfs_pty() | Tavian Barnes | 2024-02-17 | 1 | -1/+1 |
| | | | | Otherwise bfs will think it's interactive. | ||||
* | ioq: Ensure ioq_ent is sufficiently aligned | Tavian Barnes | 2024-02-16 | 2 | -2/+9 |
| | | | | | | | The natural alignment of struct ioq_ent is only 2 on m68k, so over-align it to at least 4 bytes on all platforms. Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=m68k&ver=3.1-1&stamp=1707699583 | ||||
* | Release 3.1.13.1.1 | Tavian Barnes | 2024-02-16 | 3 | -2/+14 |
| | |||||
* | ioq: Add batched ioqq_push/pop operations | Tavian Barnes | 2024-02-15 | 1 | -49/+127 |
| | |||||
* | ioq: Don't push immediately in ioq_check_cancel() | Tavian Barnes | 2024-02-15 | 1 | -10/+6 |
| | |||||
* | ioq: Add a missing close() if bfs_opendir() fails | Tavian Barnes | 2024-02-15 | 1 | -0/+2 |
| | |||||
* | ioq: Don't use the symbolic IO_WQ_[UN]BOUND indices | Tavian Barnes | 2024-02-14 | 1 | -2/+2 |
| | | | | They are only available since liburing 2.2, which is newer than CI. | ||||
* | ioq: Factor out io_uring initialization | Tavian Barnes | 2024-02-14 | 1 | -37/+73 |
| | |||||
* | ioq: Make -j also limit the io_uring worker threads | Tavian Barnes | 2024-02-14 | 1 | -0/+9 |
| | |||||
* | ioq: Replay IOQ_STOP messages rather than spam them | Tavian Barnes | 2024-02-14 | 1 | -4/+5 |
| | |||||
* | ioq: Pack ioq_ent args structs | Tavian Barnes | 2024-02-14 | 1 | -3/+3 |
| | |||||
* | bftw: Document which bftw_file nodes go with which lists | Tavian Barnes | 2024-02-14 | 1 | -3/+17 |
| | |||||
* | expr: Pack struct bfs_expr a bit | Tavian Barnes | 2024-02-14 | 1 | -15/+9 |
| | |||||
* | stat: Pack struct bfs_stat a bit | Tavian Barnes | 2024-02-14 | 2 | -28/+24 |
| | |||||
* | eval: Add thousands separators to -status | Tavian Barnes | 2024-02-12 | 1 | -2/+2 |
| | |||||
* | sanity: Don't use self-init for uninit() | Tavian Barnes | 2024-02-12 | 3 | -7/+7 |
| | | | | | | | | | | | Self-initialization like bool ret = ret; is a GCC trick to suppress uninitialized variable warnings, but it's not actually well-defined, and will trip a recent enough MemorySanitizer: src/eval.c:1088:13: runtime error: load of value 128, which is not a valid value for type 'bool' | ||||
* | ioq: Get rid of IOQ_STRIDE | Tavian Barnes | 2024-02-12 | 1 | -20/+5 |
| | | | | Benchmarks show it hurts more than it helps. | ||||
* | ioq: Shrink the io_urings | Tavian Barnes | 2024-02-12 | 1 | -4/+2 |
| | |||||
* | bench: Add a stat() benchmark | Tavian Barnes | 2024-02-12 | 1 | -4/+53 |
| | |||||
* | Merge pull request #130 from thesamesam/gentoo | Tavian Barnes | 2024-02-07 | 1 | -0/+3 |
|\ | | | | | README.md: bfs is now in Gentoo as sys-apps/bfs | ||||
| * | README.md: bfs is now in Gentoo as sys-apps/bfs | Sam James | 2024-02-07 | 1 | -0/+3 |
|/ | |||||
* | Release 3.13.1 | Tavian Barnes | 2024-02-06 | 3 | -2/+46 |
| | |||||
* | opt: Enable BFTW_STAT when profitable | Tavian Barnes | 2024-02-06 | 2 | -0/+93 |
| | |||||
* | ctx: Fill in ctx->threads earlier | Tavian Barnes | 2024-02-06 | 3 | -23/+20 |
| | |||||
* | color: New API to check if stat() is necessary | Tavian Barnes | 2024-02-06 | 2 | -6/+11 |
| | |||||
* | bftw: stat() files asynchronously | Tavian Barnes | 2024-02-06 | 4 | -212/+507 |
| | |||||
* | mtab: Take the basename directly in bfs_might_be_mount() | Tavian Barnes | 2024-02-05 | 3 | -6/+5 |
| | | | | This avoids some hot xbaseoff() calls. | ||||
* | tests: Fix --stop | Tavian Barnes | 2024-02-05 | 1 | -1/+1 |
| | |||||
* | build: Rename test targets | Tavian Barnes | 2024-02-04 | 1 | -10/+15 |
| | |||||
* | ci/macos: Try the new M1 runner | Tavian Barnes | 2024-02-03 | 1 | -1/+1 |
| | |||||
* | tests: Run more integration tests by default | Tavian Barnes | 2024-02-03 | 1 | -6/+12 |
| | | | | | | | The traversal behaviour of -j1, -j2, and -jN (N >= 3) are all different enough to be worth running the whole test suite against them. Sorting (-s) is another dimension worth testing. Having these tests run automatically would have caught some recently-fixed bugs earlier. |