Releases: tavianator/bfs
Releases · tavianator/bfs
Version 1.0
This is the first release of bfs with support for all of GNU find's primitives.
Changes since 0.96:
- Implemented
-fstype
- Implemented
-exec/-execdir ... +
- Implemented BSD's
-X
- Fixed the tests under Bash 3 (mostly for macOS)
- Some minor optimizations and fixes
Version 0.96
73/76 GNU find features supported.
- Implemented -nouser and -nogroup
- Implemented -printf and -fprintf
- Implemented -ls and -fls
- Implemented -type with multiple types at once (e.g. -type f,d,l)
- Fixed 32-bit builds
- Fixed -lname on "symlinks" in Linux /proc
- Fixed -quit to take effect as soon as it's reached
- Stopped redirecting standard input from /dev/null for -ok and -okdir, as that violates POSIX
- Many test suite improvements
Version 0.88
67/76 GNU find features supported.
- Fixed the build on macOS, and some other UNIXes
- Implemented
-regex
,-iregex
,-regextype
, and BSD's-E
- Implemented
-x
(same as-mount
/-xdev
) from BSD - Implemented
-mnewer
(same as-newer
) from BSD - Implemented
-depth N
from BSD - Implemented
-sparse
from FreeBSD - Implemented the
T
andP
suffices for-size
, for BSD compatibility - Added support for
-gid NAME
and-uid NAME
as in BSD
Version 0.84.1
Bugfix release.
- Fixed #7 again
- Like GNU find, don't print warnings by default if standard input is not a terminal
- Redirect standard input from /dev/null for -ok and -okdir
- Skip . when -delete'ing
- Fixed -execdir when the root path has no slashes
- Fixed -execdir in /
- Support -perm +MODE for symbolic modes
- Fixed the build on FreeBSD
Version 0.84
64/76 GNU find features supported.
- Spelling suggestion improvements
- Handle
--
- (Untested) support for exotic file types like doors, ports, and whiteouts
- Improved robustness in the face of closed std{in,out,err}
- Fixed the build on macOS
- Implement
-ignore_readdir_race
,-noignore_readdir_race
- Implement
-perm
0.82
62/76 GNU find features supported.
- Rework optimization levels
-O1
- Simple boolean simplification
-O2
- Purity-based optimizations, allowing side-effect-free tests like
-name
or-type
to be moved or removed
- Purity-based optimizations, allowing side-effect-free tests like
-O3
(default):- Re-order tests to reduce the expected cost (TODO)
-O4
- Aggressive optimizations that may have surprising effects on warning/error messages and runtime, but should not otherwise affect the results
-Ofast
:- Always the highest level, currently the same as
-O4
- Always the highest level, currently the same as
- Color files with multiple hard links correctly
- Treat
-
,)
, and,
as paths when required to by POSIX)
and,
are only supported before the expression begins
- Implement
-D opt
- Implement
-D rates
- Implement
-fprint
- Implement
-fprint0
- Implement BSD's
-f
- Suggest fixes for typo'd arguments
0.79
- Remove an errant debug
printf()
from-used
- Implement the
{} ;
variants of-exec
,-execdir
,-ok
, and-okdir
0.74
0.70
53/76 GNU find features supported.
- New
make install
andmake uninstall
targets - Squelch non-positional warnings for
-follow
- Reduce memory footprint by as much as 64% by closing
DIR*
s earlier - Speed up
bfs
by ~5% by using a better FD cache eviction policy - Fix infinite recursion when evaluating
! expr
- Optimize unused pure expressions (e.g.
-empty -a -false
) - Optimize double-negation (e.g.
! ! -name foo
) - Implement
-D stat
and-D tree
- Implement
-O
0.67
Initial release.
51/76 GNU find features supported.