Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | bftw: Replace the circular buffer queue with a linked list | Tavian Barnes | 2018-04-07 | 1 | -91/+39 | |
| | | | | The performance is within 1% with much simpler code. | |||||
* | README: Add a repology badge | Tavian Barnes | 2018-04-05 | 1 | -3/+6 | |
| | ||||||
* | tests: Work around broken rm in cleanup | Tavian Barnes | 2018-03-18 | 1 | -0/+7 | |
| | | | | | | | BusyBox rm, for example, doesn't handle long paths properly, so give it some help. C.f. http://lists.busybox.net/pipermail/busybox/2018-March/086302.html | |||||
* | tests: Don't use process substitution for diff | Tavian Barnes | 2018-03-18 | 1 | -7/+18 | |
| | | | | | This frees up an extra FD for some diff implementations like openbox that need it when ulimit -n is low. | |||||
* | tests: Be robust to ls -i implementation that output a leading space | Tavian Barnes | 2018-03-18 | 1 | -1/+1 | |
| | ||||||
* | tests: Add a --noclean option to preserve the test directory | Tavian Barnes | 2018-03-18 | 1 | -2/+14 | |
| | | | | Useful for debugging testsuite failures. | |||||
* | New 'sanitized' make target | Tavian Barnes | 2018-03-18 | 1 | -1/+4 | |
| | ||||||
* | mtab: Fall back on /proc/mounts if /etc/mtab isn't available | Tavian Barnes | 2018-03-04 | 1 | -0/+4 | |
| | ||||||
* | exec: Fix size accounting when recovering from E2BIG | Tavian Barnes | 2018-02-10 | 1 | -4/+6 | |
| | ||||||
* | Release 1.2.11.2.1 | Tavian Barnes | 2018-02-08 | 3 | -2/+10 | |
| | ||||||
* | exec: Avoid a warning when building with _FORTIFY_SOURCE | Tavian Barnes | 2018-02-06 | 1 | -1/+6 | |
| | | | | | Also, don't pass the address of errno itself to write(), since write() is allowed to modify it. | |||||
* | eval: Don't unnecessarily zero fields in struct eval_state | Tavian Barnes | 2018-02-01 | 1 | -7/+6 | |
| | | | | | | The designated initializer causes everything not mentioned to be zeroed, a waste of time that shows up on profiles. It also has the potential to hide uninitialized-use bugs. | |||||
* | bftw: Open-code the "."/".." checks | Tavian Barnes | 2018-02-01 | 1 | -3/+4 | |
| | | | | | | GCC doesn't (yet) produce very fast code for strcmp() against constant strings (see https://gcc.gnu.org/PR78809), so hand-coding the comparison manually helps significantly. | |||||
* | bftw: Fix the heap implementation | Tavian Barnes | 2018-02-01 | 1 | -1/+21 | |
| | | | | | | | | | | There were two problems: - bubble_down() would always bubble the entry all the way down the heap, instead of stopping at the appropriate place - remove() may need to bubble the replacement entry *up* the heap, if it came from a different subtree | |||||
* | Release 1.21.2 | Tavian Barnes | 2018-01-20 | 3 | -2/+16 | |
| | ||||||
* | printf: Add %w and %Wk for file birth times | Tavian Barnes | 2018-01-20 | 5 | -1/+37 | |
| | | | | | %w and %W were chosen to match the format specifiers for file birth times from stat(1) | |||||
* | stat: New wrapper around the stat() family | Tavian Barnes | 2018-01-08 | 15 | -299/+565 | |
| | | | | | This lets bfs transparently support the new statx() system call on Linux, giving it access to file birth times. | |||||
* | Minor header cleanups | Tavian Barnes | 2018-01-08 | 4 | -9/+12 | |
| | ||||||
* | parse: Minor cleanups from af7878c/7da0d28 | Tavian Barnes | 2018-01-06 | 1 | -6/+2 | |
| | ||||||
* | bftw: Rename 'last' to 'previous' | Tavian Barnes | 2018-01-06 | 1 | -11/+11 | |
| | ||||||
* | Keep track of required FDs per-expr | Tavian Barnes | 2017-12-15 | 5 | -16/+35 | |
| | ||||||
* | exec: Minor whitespace consistency fix | Tavian Barnes | 2017-11-13 | 1 | -1/+1 | |
| | ||||||
* | color: Optimize cfprintf() a bit | Tavian Barnes | 2017-11-13 | 1 | -76/+86 | |
| | ||||||
* | color: Implement %m for cfprintf() | Tavian Barnes | 2017-11-13 | 5 | -11/+19 | |
| | ||||||
* | exec: Fix error reporting | Tavian Barnes | 2017-11-12 | 1 | -5/+9 | |
| | ||||||
* | exec: Recover from E2BIG | Tavian Barnes | 2017-11-12 | 6 | -20/+135 | |
| | ||||||
* | cmdline: Account for files opened during/between evaluations more carefully | Tavian Barnes | 2017-11-12 | 3 | -9/+26 | |
| | ||||||
* | Add support for file birth/creation times on platforms that have it | Tavian Barnes | 2017-11-05 | 7 | -60/+145 | |
| | | | | Fixes #19 | |||||
* | parse: Support -perm +7777, for compatibility with BSD and old GNU find | Tavian Barnes | 2017-11-05 | 4 | -5/+28 | |
| | ||||||
* | Release 1.1.41.1.4 | Tavian Barnes | 2017-10-27 | 3 | -2/+13 | |
| | ||||||
* | exec: Make argument size tracking robust to page-granularity accounting | Tavian Barnes | 2017-10-26 | 1 | -3/+8 | |
| | | | | | | | | From looking at the Linux exec() implementation, it seems a big part of the reason we needed extra headroom was that the arguments/environment are copied page-by-page, so even a small accounting difference could result in an error of an entire page size. Grow the headroom to two entire pages to account for this. | |||||
* | exec: Apply more headroom to avoid E2BIG | Tavian Barnes | 2017-10-22 | 1 | -4/+16 | |
| | | | | | | | | | | | | | I ran into "argument list too long" errors with a bfs -type f -exec grep pattern '{}' + command, despite the current accounting being pretty careful. Some experimentation showed that an additional 2048 bytes of headroom is always safe. While we're at it, explicitly account for the terminating NULL pointers in argv and environ. | |||||
* | Use "error:" prefix consistently | Tavian Barnes | 2017-10-22 | 1 | -4/+4 | |
| | ||||||
* | cmdline: Declare functions in a more natural order | Tavian Barnes | 2017-10-21 | 1 | -7/+7 | |
| | ||||||
* | parse: Keep track of what files are already open | Tavian Barnes | 2017-10-21 | 6 | -50/+185 | |
| | | | | Fixes #22 | |||||
* | Report errors that occur when closing files | Tavian Barnes | 2017-10-21 | 6 | -11/+60 | |
| | | | | Otherwise we miss write errors that occur when flushing the cache. | |||||
* | Add a man page | Tavian Barnes | 2017-10-15 | 3 | -15/+686 | |
| | | | | Fixes #31 | |||||
* | Don't use install -D | Tavian Barnes | 2017-10-13 | 1 | -3/+6 | |
| | | | | | | -D isn't portable to non-GNU Unices, so just use mkdir manually. Fixes #28 | |||||
* | Release 1.1.31.1.3 | Tavian Barnes | 2017-10-04 | 3 | -2/+11 | |
| | ||||||
* | tests: -quit is not POSIX | Tavian Barnes | 2017-09-20 | 1 | -1/+1 | |
| | ||||||
* | util: Wrap faccessat() to fix some portability issues | Tavian Barnes | 2017-09-20 | 4 | -2/+21 | |
| | ||||||
* | opt: More -O4 tweaks | Tavian Barnes | 2017-09-17 | 1 | -24/+15 | |
| | ||||||
* | opt: Use the standard LLONG_MAX instead of the nonstandard LONG_LONG_MAX | Tavian Barnes | 2017-09-17 | 1 | -1/+1 | |
| | ||||||
* | opt: Fix -depth with arguments bigger than INT_MAX | Tavian Barnes | 2017-09-17 | 3 | -4/+32 | |
| | ||||||
* | opt: Move some aggressive optimizations back to -O4 | Tavian Barnes | 2017-09-17 | 2 | -18/+19 | |
| | ||||||
* | parse: Document the bfs meaning of -O in -help | Tavian Barnes | 2017-09-17 | 1 | -2/+15 | |
| | ||||||
* | opt: Have data flow analysis respect always_{true,false} | Tavian Barnes | 2017-09-17 | 1 | -6/+21 | |
| | ||||||
* | tests: Add tests that trigger some optimizations | Tavian Barnes | 2017-09-16 | 9 | -0/+87 | |
| | ||||||
* | opt: Implement some data flow optimizations | Tavian Barnes | 2017-09-16 | 1 | -108/+322 | |
| | ||||||
* | opt: Separate optimization from parsing | Tavian Barnes | 2017-09-16 | 11 | -665/+859 | |
| |