Skip to content

Releases: tavianator/bfs

Version 3.0.1

18 Jul 16:47
3.0.1
Compare
Choose a tag to compare

Bug fixes

  • Traversal fixes that mostly affect large directory trees (#107)

    • bfs could encounter EMFILE, close a file, and retry many times, particularly with -j1

    • Breadth-first search could become highly unbalanced, negating many of the benefits of bfs

    • On non-{Linux,FreeBSD} plaforms, directories could stay open longer than necessary, consuming extra memory

Version 3.0

14 Jul 01:54
3.0
Compare
Choose a tag to compare

New features

  • bfs now reads directories asynchronously and in parallel (#101). Performance is significantly improved as a result. Parallelism is controlled by the new -j flag, e.g. -j1, -j2, etc.

Changes

  • bfs now uses the C17 standard version, up from C11

  • Due to #101, bfs now requires some additional C and POSIX features:

  • $LS_COLORS extensions written in different cases (e.g. *.jpg=35:*.JPG=01;35) are now matched case-sensitively, to match the new behaviour of GNU ls since coreutils version 9.2

  • Added a warning/error if $LS_COLORS can't be parsed, depending on whether -color is requested explicitly

  • Filenames with control characters are now escaped when printing with -color

  • Build flags like WITH_ONIGURUMA have been renamed to USE_ONIGURUMA

Bug fixes

  • Fixed handling of the "normal text" color (no in $LS_COLORS) to match GNU ls

Version 2.6.3

31 Jan 18:32
2.6.3
Compare
Choose a tag to compare
  • Fixed running the tests as root on Linux 8b24de3

  • Fixed some tests on Android 2724dfb 0a5a80c

  • Stopped relying on non-POSIX touch(1) features in the tests. This should fix the tests on at least OpenBSD. 2d5edb3

  • User/group caches are now filled lazily instead of eagerly b41dca5

  • More caches and I/O streams are flushed before -exec/-ok f98a1c4

  • Fixed various memory safety issues found by fuzzing
    712b137 5ce883d da02def c55e855

  • Fixed a test failure on certain macOS versions 8b24de3

  • Mitigated a race condition when determining filesystem types (#97)

  • Lots of refactoring and optimization

Version 2.6.2

21 Oct 15:00
2.6.2
Compare
Choose a tag to compare
  • Fixed use of uninitialized memory on parsing errors involving -fprintf

  • Fixed Android build issues (#96)

  • Refactored the test suite

Version 2.6.1

05 Jul 14:32
2.6.1
Compare
Choose a tag to compare
  • Fix stat() errors on GNU Hurd systems with glibc older than 2.35

  • Added fish shell tab completion (#94). Thanks @xfgusta!

Version 2.6

21 May 21:06
2.6
Compare
Choose a tag to compare
  • Fixed deleting large NFS directories on FreeBSD (#67).

  • Added support for a bfs-specific BFS_COLORS environment variable.

  • Refactored the build system, directory structure, and documentation (#88, #89, #91). Thanks @ElectronicsArchiver!

  • Added zsh completion (#86). Thanks @VorpalBlade!

  • Updated the default color scheme to match GNU coreutils 9.1. Files with capabilities set are no longer colored differently by default, resulting in a significant performance improvement.

  • Became less aggressive at triggering automounts

  • Added support for out-of-tree builds with BUILDDIR

Version 2.5

27 Mar 18:23
2.5
Compare
Choose a tag to compare
  • Added compiler-style context for errors and warnings. Errors look like this:

    $ bfs -nam needle
    bfs: error: bfs -nam needle
    bfs: error:     ~~~~
    bfs: error: Unknown argument; did you mean -name?
    

    and warnings look like this:

    $ bfs -print -name 'needle'
    bfs: warning: bfs -print -name needle
    bfs: warning:            ~~~~~~~~~~~~
    bfs: warning: The result of this expression is ignored.
    
  • Updated from C99 to C11

  • Fixed the tests when built against musl

  • Fixed a build error reported on Manjaro

Version 2.4.1

24 Feb 22:46
2.4.1
Compare
Choose a tag to compare
  • Fixed the build when Oniguruma is not installed in the default search paths (#82)

  • Fixed string encoding bugs with Oniguruma enabled

  • Fixed regex error reporting bugs

Version 2.4

22 Feb 17:22
2.4
Compare
Choose a tag to compare
  • Added the Oniguruma regular expression library as an (optional, but enabled by default) dependency (#81). Oniguruma supports more regular expression syntax types than the POSIX regex API, and often performs better. To build bfs without this new dependency, do make WITH_ONIGURUMA= to disable it. Thanks @data-man!

  • Added support for the ed, emacs, grep, and sed regular expression types (#21)

  • Before executing a process with -exec[dir]/-ok[dir], bfs now ensures all output streams are flushed. Previously, I/O from subprocesses could be interleaved unpredictably with buffered I/O from bfs itself.

Version 2.3.1

21 Jan 16:43
2.3.1
Compare
Choose a tag to compare
  • Fixed the build on Debian kFreeBSD

  • Fixed a crash on GNU Hurd when piping bfs's output

  • Fixed a double-close() on non-Linux platforms if fdopendir() fails

  • Reduced memory allocations on startup