summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* build: Use $^ instead of ${.ALLSRC}HEADmainTavian Barnes2 days6-13/+11
|
* build/config: Simplify top-level rule with .ALLSRCTavian Barnes2 days1-10/+4
|
* bench: New --sorted benchmarkTavian Barnes3 days1-1/+40
|
* bench/ioq: Track latency percentilesTavian Barnes3 days1-36/+171
|
* bench/ioq: Don't track the latency of failed requestsTavian Barnes3 days1-9/+6
| | | | This fixes a hang observed with low queue depths like -d32.
* Add support for __attribute__((counted_by(...)))Tavian Barnes3 days7-8/+17
|
* tests/posix: Add a test for POSIX bug 1859Tavian Barnes3 days3-1/+12
| | | | ... which requires we process root paths strictly in-order.
* Merge pull request #154 from ↵Tavian Barnes3 days1-12/+21
|\ | | | | | | | | tavianator/dependabot/github_actions/cross-platform-actions/action-0.28.0 build(deps): bump cross-platform-actions/action from 0.27.0 to 0.28.0
| * ci: Don't run duplicate jobs on PRsTavian Barnes3 days1-8/+17
| | | | | | | | Link: https://wildwolf.name/github-actions-how-to-avoid-running-the-same-workflow-multiple-times/
| * ci: Update OpenBSD to 7.7Tavian Barnes3 days1-1/+1
| |
| * build(deps): bump cross-platform-actions/action from 0.27.0 to 0.28.0dependabot[bot]9 days1-3/+3
|/ | | | | | | | | | | | | | | | Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 0.27.0 to 0.28.0. - [Release notes](https://github.com/cross-platform-actions/action/releases) - [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md) - [Commits](https://github.com/cross-platform-actions/action/compare/v0.27.0...v0.28.0) --- updated-dependencies: - dependency-name: cross-platform-actions/action dependency-version: 0.28.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* bfstd: Add some more integer parsing functionsTavian Barnes2025-04-187-54/+218
|
* tests/bfstd: Add some xstrtox() testsTavian Barnes2025-04-181-0/+65
|
* tests/bfstd: Factor tests into separate functionsTavian Barnes2025-04-181-25/+42
|
* configure: Work around a Bash 3 bugTavian Barnes2025-04-171-1/+3
| | | | | | | | | | | | | Before Bash 4, the `command` builtin did not work properly in AND-OR lists when set -e was active, leading to set -e command nonesuch || echo none failing without echoing. Work around it by runing `command nproc` in a subshell. Link: https://stackoverflow.com/q/68143965
* tests: Switch from unbuffer to ptyxTavian Barnes2025-04-164-22/+5
| | | | | | | | | | | | | | | | unbuffer is part of expect, which is not actively maintained. This recently led to a CI failure on NetBSD which looked like can't find package Expect while executing "package require Expect" (file "/usr/pkg/bin/unbuffer" line 6) Rather than debug this, I just reimplemented unbuffer myself. This also reduces our test dependencies, which is nice. Link: https://sourceforge.net/p/expect/bugs/107/ Link: https://github.com/tavianator/bfs/actions/runs/14421150823/job/40444068385
* tests/ptyx: New utility to run a command in a ptyTavian Barnes2025-04-162-0/+261
|
* bfstd: Add a tcsetwinsize() polyfillTavian Barnes2025-04-154-0/+23
|
* bfstd: Add a tcgetwinsize() polyfillTavian Barnes2025-04-153-34/+40
|
* configure: Fix make bench in out-of-tree buildsTavian Barnes2025-04-111-1/+1
| | | | Fixes: 3678c2e ("bench/ioq: New ioq microbenchmark")
* ctx: Don't leak ctx->kindsTavian Barnes2025-04-031-0/+1
| | | | Fixes: 9c911d7 ("ctx: Track the token kind of each argument")
* parse: Disallow -files0-from with explicit rootsTavian Barnes2025-04-012-0/+20
| | | | This matches the behaviour of GNU find.
* ctx: Track the token kind of each argumentTavian Barnes2025-04-013-0/+22
|
* parse: Only process the last -files0-fromTavian Barnes2025-04-0114-61/+168
| | | | | | | | GNU find intentionally makes later -files0-from options override earlier ones, for symmetry with similar features like du --files0-from. Change bfs to match. Link: https://savannah.gnu.org/bugs/?66965
* color: New %p[xX] formats for expressions in diagnosticsTavian Barnes2025-04-014-36/+66
|
* parse: Track expressions, not just strings, for conflict reportingTavian Barnes2025-03-307-59/+137
|
* list: Switch back to the memcpy()/memset() SLIST_REMOVE() implementationTavian Barnes2025-03-291-19/+12
| | | | | | | | | The thread-local scratch variables make it non-reentrant for no good reason. I don't consider the theoretical strict-aliasing violation to be practically relevant. This partially reverts commit 90791fc ("list: Make SLIST_REMOVE() more type-safe").
* tests/posix: New test for -exec return valueTavian Barnes2025-03-252-0/+19
|
* bench/ioq: Use nproc()Tavian Barnes2025-03-121-1/+1
|
* bfstd: Fix nproc() on systems without dynamically sized CPU masksTavian Barnes2025-03-101-2/+14
| | | | Notes: Fixes: a36774b ("bfstd: Take sched_getaffinity() into account in nproc()")
* build/flags: Add -lrt on FreeBSD for timer_create()Tavian Barnes2025-03-101-0/+1
| | | | Notes: Fixes: 881d590 ("xtime: Add a wrapper for timer_create()/setitimer()")
* tests/xtime: Don't waste time checking the system's timegm()Tavian Barnes2025-03-101-2/+9
| | | | Just check our wrapper's error detection, like we do for xmktime().
* tests: Add missing #include <sys/wait.h>Tavian Barnes2025-03-101-0/+1
| | | | Notes: Fixes: 1aefb83 ("tests/units: Run each test in a separate process")
* diag: Don't leave unused assertion messages in the binaryTavian Barnes2025-03-042-14/+27
| | | | | Rather than hiding them with %.0s, use a ternary to replace them with an empty string if they would be unused.
* diag: Get rid of struct bfs_locationTavian Barnes2025-03-045-70/+56
| | | | | | | | Just add the standard prefix to the passed format string in the diagnostic macros themselves. This lets us write the whole message with one dprintf() call, minimizing interleaving. It's also a net win for binary size.
* tests/units: Run each test in a separate processTavian Barnes2025-02-271-27/+161
|
* bfstd: Take sched_getaffinity() into account in nproc()Tavian Barnes2025-02-273-5/+58
|
* bfstd: New nproc() functionTavian Barnes2025-02-273-15/+21
|
* Release 4.0.64.0.6Tavian Barnes2025-02-263-2/+22
|
* Micro-optimize word-at-a-time loop tailsTavian Barnes2025-02-212-10/+14
| | | | | | Compilers apparently aren't smart enough to infer that the odd tail length fixup "loops" run at most once, and could be converted to ifs, so do that manually.
* tests/gnu/fls_overflow: Skip if the FS doesn't support 64-bit timesTavian Barnes2025-02-211-1/+1
| | | | Notes: Fixes: dd5df1f ("eval: Don't error out in -ls if the time overflows")
* ioq: Fix typo in commentTavian Barnes2025-02-181-1/+1
|
* tests/xspawn: Test bfs_spawn_resolve() with a relative $PATHTavian Barnes2025-02-181-26/+62
|
* trie: Use load8_beu*() for trie_mismatch()Tavian Barnes2025-02-131-29/+23
|
* bfstd: Use load8_leu*() for asciinlen()Tavian Barnes2025-02-131-24/+20
|
* bit: Add the load8_[bl]euN() utilitiesTavian Barnes2025-02-132-2/+63
|
* trie: Make nibble indices big-endianTavian Barnes2025-02-132-7/+11
| | | | Otherwise the order doesn't match lexicographical order on bytes.
* tests/xtouch: Use xstrtol()Tavian Barnes2025-02-131-5/+2
|
* trie: New trie_node_size() helperTavian Barnes2025-02-131-3/+9
|
* configure: Add separate --enable-lto knobTavian Barnes2025-02-132-3/+9
|