uutils
coreutils
BlogDocsChangelog

sort: use uucore SIGPIPE handling for broken pipes

#10264
Comparing
Xylphy:sort_ignore_broken_pipe
(
5c78e4e
) with
main
(
7eb78ab
)
CodSpeed Performance Gauge
+38%
Improvements
8
Untouched
103
Skipped
209

Benchmarks

Skipped (209)

Improved

sort_long_line[160000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+38%
981.4 KB712.6 KB
sort_accented_data[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+28%
28.3 MB22.1 MB
sort_ascii_only[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+28%
28.3 MB22.2 MB
sort_mixed_data[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+19%
27.1 MB22.9 MB
sort_unique_locale[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+18%
39.8 MB33.6 MB
sort_key_field[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+8%
51.8 MB47.8 MB
sort_numeric[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+5%
79.2 MB75.5 MB
sort_case_sensitive[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
+3%
17.4 MB16.9 MB

Passed

du_summarize_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
+3%
8.5 ms8.3 ms
du_max_depth_balanced_tree[(6, 4, 10)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
+3%
33.2 ms32.4 ms
dd_copy_64k_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
+1%
612.9 µs606.3 µs
du_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
0%
12.4 ms12.4 ms
dd_copy_1m_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
dd_copy_with_skip
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
dd_copy_with_seek
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
cp_recursive_deep_tree[(120, 4)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
13.6 ms13.6 ms
shuf_lines[100000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
31.6 ms31.6 ms
tsort_wide_dag[100000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
131.6 ms131.5 ms
cp_archive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
78 ms78 ms
df_with_path
src/uu/df/benches/df_bench.rs
CodSpeed Performance Gauge
0%
408.2 µs408.2 µs
ls_recursive_long_all_deep_tree[(100, 4)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
3.2 ms3.2 ms
ls_recursive_deep_tree[(200, 2)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
ls_recursive_long_all_wide_tree[(15000, 1500)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
140.1 ms140.1 ms
ls_recursive_long_all_mixed_tree
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
2.8 ms2.8 ms
ls_recursive_long_all_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
130.3 ms130.3 ms
mv_single_file
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
141.1 ms141.1 ms
seq_large_integers
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
tsort_linear_chain[1000000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
1.6 s1.6 s
ls_recursive_wide_tree[(10000, 1000)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
51.7 ms51.7 ms
expand_custom_tabstops[50000]
src/uu/expand/benches/expand_bench.rs
CodSpeed Performance Gauge
0%
36.9 ms36.9 ms
cut_characters
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
7.4 ms7.4 ms
seq_with_step
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
13.3 ms13.3 ms
seq_integers
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
26.1 ms26.1 ms
expand_many_lines[100000]
src/uu/expand/benches/expand_bench.rs
CodSpeed Performance Gauge
0%
148.6 ms148.6 ms
sort_unique_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
CodSpeed Performance Gauge
0%
4.6 MB4.6 MB
sort_german_c_locale
src/uu/sort/benches/sort_locale_c_bench.rs
CodSpeed Performance Gauge
0%
5.3 MB5.3 MB
sort_german_de_locale
src/uu/sort/benches/sort_locale_de_bench.rs
CodSpeed Performance Gauge
0%
5.3 MB5.3 MB
sort_reverse_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
CodSpeed Performance Gauge
0%
3 MB3 MB
sort_mixed_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
CodSpeed Performance Gauge
0%
3.5 MB3.5 MB
sort_numeric_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
CodSpeed Performance Gauge
0%
8.8 MB8.8 MB
sort_ascii_utf8_locale
src/uu/sort/benches/sort_locale_utf8_bench.rs
CodSpeed Performance Gauge
0%
6.2 MB6.2 MB
sort_dictionary_order[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
42 MB42 MB
dd_copy_with_skip
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
133.4 KB133.4 KB
dd_copy_with_seek
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
133.9 KB133.9 KB
dd_copy_1m_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
1.1 MB1.1 MB
dd_copy_partial
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
133.5 KB133.5 KB
dd_copy_8k_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
137.3 KB137.3 KB
dd_copy_64k_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
192.1 KB192.1 KB
dd_copy_default
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
130.8 KB130.8 KB
dd_copy_separate_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
207.1 KB207.1 KB
dd_copy_4k_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
132.9 KB132.9 KB
rm_recursive_tree
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
608.6 KB608.6 KB
rm_single_file
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
10.9 MB10.9 MB
rm_multiple_files
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
304.7 KB304.7 KB
rm_force_files
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
293.1 KB293.1 KB
shuf_input_range[1000000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
18.5 MB18.5 MB
shuf_lines[100000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
10.2 MB10.2 MB
shuf_repeat_sampling[50000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
1.3 MB1.3 MB
join_full_match
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
56.4 KB56.4 KB
join_french_locale
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
55.6 KB55.6 KB
join_custom_separator
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
96.9 KB96.9 KB
join_partial_overlap
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
55.6 KB55.6 KB
df_deep_directory
src/uu/df/benches/df_bench.rs
CodSpeed Performance Gauge
0%
90.3 KB90.3 KB
df_with_path
src/uu/df/benches/df_bench.rs
CodSpeed Performance Gauge
0%
55.5 KB55.5 KB
expand_custom_tabstops[50000]
src/uu/expand/benches/expand_bench.rs
CodSpeed Performance Gauge
0%
76.4 KB76.4 KB
expand_many_lines[100000]
src/uu/expand/benches/expand_bench.rs
CodSpeed Performance Gauge
0%
55.7 KB55.7 KB
join_french_locale
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
12.8 ms12.8 ms
seq_formatted
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
96.1 ms96.1 ms
seq_custom_separator
src/uu/seq/benches/seq_bench.rs
CodSpeed Performance Gauge
0%
28.7 ms28.7 ms
nl_large_file[10]
src/uu/nl/benches/nl_bench.rs
CodSpeed Performance Gauge
0%
57.2 ms57.2 ms
join_partial_overlap
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
10.5 ms10.5 ms
cut_fields_custom_delim
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
40.8 ms40.8 ms
nl_many_lines[100000]
src/uu/nl/benches/nl_bench.rs
CodSpeed Performance Gauge
0%
44.9 ms44.9 ms
cut_fields_tab
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
34.1 ms34.1 ms
mv_directory
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
3.5 ms3.5 ms
join_full_match
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
12.8 ms12.8 ms
cut_bytes
src/uu/cut/benches/cut_bench.rs
CodSpeed Performance Gauge
0%
8.4 ms8.4 ms
rm_recursive_tree
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
11.8 ms11.8 ms
sort_general_numeric[200000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
43.2 MB43.2 MB
sort_case_insensitive[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
16.9 MB16.9 MB
join_custom_separator
src/uu/join/benches/join_bench.rs
CodSpeed Performance Gauge
0%
12.1 ms12.1 ms
ls_recursive_mixed_tree
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
mv_force_overwrite
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
149.8 ms149.8 ms
split_numeric_suffix
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
5.9 ms5.9 ms
rm_force_files
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
2 ms2 ms
ls_recursive_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
CodSpeed Performance Gauge
0%
55.2 ms55.2 ms
sort_reverse_locale[500000]
src/uu/sort/benches/sort_bench.rs
CodSpeed Performance Gauge
0%
27.5 MB27.5 MB
rm_multiple_files
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
tsort_tree_dag[(10, 3)]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
34.6 ms34.6 ms
tsort_complex_dag[50000]
src/uu/tsort/benches/tsort_bench.rs
CodSpeed Performance Gauge
0%
86.1 ms86.1 ms
cp_preserve_metadata[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
74.9 ms74.9 ms
df_deep_directory
src/uu/df/benches/df_bench.rs
CodSpeed Performance Gauge
0%
382.6 µs382.7 µs
split_lines
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
sort_ascii_c_locale
src/uu/sort/benches/sort_locale_c_bench.rs
CodSpeed Performance Gauge
0%
8.3 MB8.3 MB
shuf_repeat_sampling[50000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
5.2 ms5.2 ms
shuf_input_range[1000000]
src/uu/shuf/benches/shuf_bench.rs
CodSpeed Performance Gauge
0%
163.5 ms163.6 ms
dd_copy_default
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
13.7 ms13.7 ms
split_number_chunks
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
289.7 µs289.7 µs
rm_single_file
src/uu/rm/benches/rm_bench.rs
CodSpeed Performance Gauge
0%
124 ms124 ms
mv_multiple_to_dir
src/uu/mv/benches/mv_bench.rs
CodSpeed Performance Gauge
0%
12.9 ms12.9 ms
cp_recursive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
72.3 ms72.3 ms
sort_mixed_c_locale
src/uu/sort/benches/sort_locale_c_bench.rs
CodSpeed Performance Gauge
0%
3 MB3 MB
dd_copy_separate_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
44.1 ms44.1 ms
cp_recursive_wide_tree[(6000, 800)]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
0%
189.3 ms189.5 ms
split_bytes
src/uu/split/benches/split_bench.rs
CodSpeed Performance Gauge
0%
515.5 µs516.1 µs
dd_copy_8k_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
1 ms1 ms
dd_copy_4k_blocks
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
0%
1.3 ms1.3 ms
du_deep_tree[(100, 3)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
-1%
1.3 ms1.3 ms
cp_large_file[16]
src/uu/cp/benches/cp_bench.rs
CodSpeed Performance Gauge
-1%
370.9 µs374 µs
du_all_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
CodSpeed Performance Gauge
-1%
19.2 ms19.4 ms
dd_copy_partial
src/uu/dd/benches/dd_bench.rs
CodSpeed Performance Gauge
-1%
560.1 µs565.8 µs

Commits

Click on a commit to change the comparison range
Base
main
7eb78ab
-3.28%
sort: ignore broken pipe when writing to stdout
d395a7f
2 days ago
by Xylphy
-0.15%
sort: use uucore SIGPIPE handling for broken pipes Enable uucore SIGPIPE capture + conditional pipe error handling so `sort | head -n 0` does not emit "Broken pipe" diagnostics and matches GNU exit status behavior. Add a shell-pipeline regression test that asserts no stderr and exit code 141 when the downstream closes early. Also apply small idiomatic cleanups (e.g. `.map(Into::into)`).
65f9001
13 hours ago
by Xylphy
+7.51%
Add PIPESTATUS to spell-checker ignore list
3aa889d
6 hours ago
by sylvestre
+33.63%
tests/sort: run broken-pipe pipeline test under bash
5c78e4e
49 minutes ago
by Xylphy
© 2026 CodSpeed Technology
Home Terms Privacy Docs