Skip to content

Releases: tavianator/bfs

Version 1.0

01 May 19:10
1.0
Compare
Choose a tag to compare

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

11 Mar 21:51
0.96
Compare
Choose a tag to compare

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

21 Dec 03:19
0.88
Compare
Choose a tag to compare

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 and P suffices for -size, for BSD compatibility
  • Added support for -gid NAME and -uid NAME as in BSD

Version 0.84.1

02 Dec 16:12
0.84.1
Compare
Choose a tag to compare

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

29 Oct 20:43
0.84
Compare
Choose a tag to compare

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

04 Sep 18:35
0.82
Compare
Choose a tag to compare

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
    • -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
  • 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

01 Jun 21:37
0.79
Compare
Choose a tag to compare
  • Remove an errant debug printf() from -used
  • Implement the {} ; variants of -exec, -execdir, -ok, and -okdir

0.74

01 Jun 21:37
0.74
Compare
Choose a tag to compare

56/76 GNU find features supported.

  • Color broken symlinks correctly
  • Fix #7
  • Fix -daystart's rounding of midnight
  • Implement (most of) -newerXY
  • Implement -used
  • Implement -size

0.70

01 Jun 21:38
0.70
Compare
Choose a tag to compare

53/76 GNU find features supported.

  • New make install and make 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

01 Jun 21:38
0.67
Compare
Choose a tag to compare

Initial release.

51/76 GNU find features supported.