* refactor uu_ls so that crate users can call the command without having
the internal print stdout output
* redo changes
* clippy
* help cspell understand dired
* rebase
* try and optimize for memory and speed performance.
update output handling to add streaming mode.
* work on ci issues, optimize uid and gid cache handling, improve dired output calculations
* test fx: change read_dir parameter to mutable reference in collect_directory_entries and enter_directory functions
* update documentation
* more perf tweaks
* fmt
* tweak perf
* Add back (and shorten) comment for 31_556_952
* Update src/uu/ls/src/ls.rs
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* Update src/uu/ls/src/ls.rs
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
---------
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
In release builds, resolve_locales_dir_from_exe_dir() used .exists()
to check for locale directories, which matches regular files (e.g.
binaries) too. When an individual utility binary like `target/release/wc`
exists alongside the multicall `coreutils` binary, the function
incorrectly treats it as a locale directory.
This causes setup_localization() to call init_localization() with a
wrong path, leading to a FluentBundle that may lack utility-specific
messages. The translate!() macro then returns the raw Fluent key
instead of the resolved message.
Observed in Debian builds where coreutils 0.8.0 is installed on the
host during the build, causing test_files0_stops_after_stdout_write_error
to fail because "wc-error-failed-to-print-result" is emitted verbatim
instead of "failed to print result for /dev/null".
Fix: use .is_dir() so only actual directories are accepted as locale
paths, allowing the embedded locale fallback to work correctly.
The test_env_arg_ignore_signal_valid_signals test was failing on macOS
CI because 100ms was not always enough for the process to terminate
after receiving a fatal signal. Increase the delay to 500ms on macOS
only, keeping 100ms on other platforms.
Fixes flaky failure seen in: https://github.com/uutils/coreutils/actions/runs/24442074142/job/71409227191