parallel: Don't die if .../linelen is empty.

This commit is contained in:
Ole Tange 2023-01-15 14:29:51 +01:00
parent fbe533c3d4
commit bf07266ba8
13 changed files with 82 additions and 32 deletions

15
NEWS
View file

@ -1,3 +1,18 @@
20230122
New in this release:
* Bug fixes and man page updates.
News about GNU Parallel:
* The Best Ethical Hacking Tools of 2023 (and their basic usage)
https://www.purevpn.com/blog/the-best-hacking-tools-of-2023/#11_GNU_Parallel
* GNU Parallel: criando atividades em paralelo com shell script
https://www.vivaolinux.com.br/artigo/GNU-Parallel-criando-atividades-em-paralelo-com-shell-script/
20221222 20221222
New in this release: New in this release:

View file

@ -4,9 +4,6 @@
Quote of the month: Quote of the month:
Colorful output
parallel, with --color flag
tasks more vibrant now
--line-buffer, a flag --line-buffer, a flag
parallel, now more precise parallel, now more precise
@ -216,6 +213,11 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
=== Used === === Used ===
Colorful output
parallel, with --color flag
tasks more vibrant now
-- ChatGPT
GNU Parallel absolutely rocks. GNU Parallel absolutely rocks.
-- Austin Mordahl@Stackoverflow -- Austin Mordahl@Stackoverflow

View file

@ -262,28 +262,26 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm> stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20230122 ('Bolsanaro+Brasilia/Pele/MashaAmina<<>>') released Subject: GNU Parallel 20230122 ('Bolsanaristas') released
GNU Parallel 20230122 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4 GNU Parallel 20230122 ('Bolsanaristas') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month: Quote of the month:
<<>> Colorful output
parallel, with --color flag
tasks more vibrant now
-- ChatGPT
New in this release: New in this release:
<<>> * Bug fixes and man page updates.
News about GNU Parallel: News about GNU Parallel:
https://www.purevpn.com/blog/the-best-hacking-tools-of-2023/#11_GNU_Parallel * The Best Ethical Hacking Tools of 2023 (and their basic usage) https://www.purevpn.com/blog/the-best-hacking-tools-of-2023/#11_GNU_Parallel
https://www.vivaolinux.com.br/artigo/GNU-Parallel-criando-atividades-em-paralelo-com-shell-script/
this is wrong-https://climbtheladder.com/10-gnu-parallel-best-practices/
<<>>
* GNU Parallel: criando atividades em paralelo com shell script https://www.vivaolinux.com.br/artigo/GNU-Parallel-criando-atividades-em-paralelo-com-shell-script/
GNU Parallel - For people who live life in the parallel lane. GNU Parallel - For people who live life in the parallel lane.

View file

@ -2833,8 +2833,12 @@ sub init_globals() {
} }
# $xdg_config_home is needed to make env_parallel.fish stop complaining # $xdg_config_home is needed to make env_parallel.fish stop complaining
my $xdg_config_home = $ENV{'XDG_CONFIG_HOME'}; my $xdg_config_home = $ENV{'XDG_CONFIG_HOME'};
# config_dirs = $PARALLEL_HOME, $XDG_CONFIG_HOME/parallel, # Use the first config dir that exists from:
# $(each XDG_CONFIG_DIRS)/parallel, $HOME/.parallel # $PARALLEL_HOME
# $XDG_CONFIG_HOME/parallel
# $(each XDG_CONFIG_DIRS)/parallel
# $HOME/.parallel
#
# Keep only dirs that exist # Keep only dirs that exist
@Global::config_dirs = @Global::config_dirs =
(grep { -d $_ } (grep { -d $_ }
@ -2850,11 +2854,13 @@ sub init_globals() {
::warning("\$PARALLEL_HOME ($ENV{'PARALLEL_HOME'}) does not exist."); ::warning("\$PARALLEL_HOME ($ENV{'PARALLEL_HOME'}) does not exist.");
::warning("Using $Global::config_dir"); ::warning("Using $Global::config_dir");
} }
# cache_dirs = $PARALLEL_HOME, $XDG_CACHE_HOME/parallel, # Use the first cache dir that exists from:
# $PARALLEL_HOME
# $XDG_CACHE_HOME/parallel
# Keep only dirs that exist # Keep only dirs that exist
@Global::cache_dirs = @Global::cache_dirs = (grep { -d $_ }
(grep { -d $_ } $ENV{'PARALLEL_HOME'},
$ENV{'PARALLEL_HOME'}, $ENV{'XDG_CACHE_HOME'}."/parallel"); $ENV{'XDG_CACHE_HOME'}."/parallel");
$Global::cache_dir = $Global::cache_dirs[0] || $Global::cache_dir = $Global::cache_dirs[0] ||
$ENV{'HOME'} . "/.parallel"; $ENV{'HOME'} . "/.parallel";
Job::init_color(); Job::init_color();
@ -13255,7 +13261,7 @@ sub max_length($) {
local $/ = undef; local $/ = undef;
if(open(my $fh, "<", $len_cache)) { if(open(my $fh, "<", $len_cache)) {
$cached_limit = <$fh>; $cached_limit = <$fh>;
$cached_limit || ::die_bug("Cannot read $len_cache"); $cached_limit || ::warning("Invalid content in $len_cache");
close $fh; close $fh;
} }
if(not $cached_limit) { if(not $cached_limit) {

View file

@ -3232,7 +3232,7 @@ then killed. Process groups are dependant on the tty.
See also: B<--ungroup> B<--open-tty> See also: B<--ungroup> B<--open-tty>
=item B<--tag> (beta testing) =item B<--tag>
Tag lines with arguments. Tag lines with arguments.
@ -3245,7 +3245,7 @@ B<--tag> is ignored when using B<-u>.
See also: B<--tagstring> B<--ctag> See also: B<--tagstring> B<--ctag>
=item B<--tagstring> I<str> (beta testing) =item B<--tagstring> I<str>
Tag lines with a string. Tag lines with a string.

View file

@ -3746,7 +3746,8 @@ B<rust-parallel> has a goal of only using Rust. It seems it is
impossible to call bash functions from the command line. You would impossible to call bash functions from the command line. You would
need to put these in a script. need to put these in a script.
Calling script that miss the shebang line (#! as first line) fails. Calling a script that misses the shebang line (#! as first line)
fails.
=head3 EXAMPLES FROM rust-parallel's README.md =head3 EXAMPLES FROM rust-parallel's README.md

View file

@ -1026,7 +1026,7 @@ N+1 records.
With B<--pipepart> GNU B<parallel> can compute the B<--block-size> With B<--pipepart> GNU B<parallel> can compute the B<--block-size>
automatically. A B<--block-size> of B<-1> will use a block size so automatically. A B<--block-size> of B<-1> will use a block size so
that each jobslot will receive approximately 1 block. B<--block -2> that each jobslot will receive approximately 1 block. B<--block -2>
will pass 2 blocks to each jobslot and B<-I<n>> will pass I<n> blocks will pass 2 blocks to each jobslot and B<->I<n> will pass I<n> blocks
to each jobslot. to each jobslot.
This can be done because B<--pipepart> reads from files, and we can This can be done because B<--pipepart> reads from files, and we can

View file

@ -637,7 +637,11 @@ order. It simply skips jobs where values from different input sources
are the same: are the same:
parallel --plus echo {uniq} ::: A B C ::: A B C ::: A B C parallel --plus echo {uniq} ::: A B C ::: A B C ::: A B C
parallel --plus echo {1uniq}+{2uniq}+{3uniq} ::: A B C ::: A B C ::: A B C parallel --plus echo {1uniq}+{2uniq}+{3uniq} \
::: A B C ::: A B C ::: A B C
The behaviour of B<{choose_k}> is undefined, if the input values of each
source are different.
=head2 EXAMPLE: From a to b and b to c =head2 EXAMPLE: From a to b and b to c
@ -1331,7 +1335,8 @@ Here is a simple example of using GNU B<parallel> to call B<srun>:
module load gnu_parallel module load gnu_parallel
my_parallel="parallel --delay .2 -j $SLURM_NTASKS" my_parallel="parallel --delay .2 -j $SLURM_NTASKS"
my_srun="srun --export=all --exclusive -n1 --cpus-per-task=1 --cpu-bind=cores" my_srun="srun --export=all --exclusive -n1"
my_srun="$my_srun --cpus-per-task=1 --cpu-bind=cores"
$my_parallel "$my_srun" echo This is job {} ::: {1..20} $my_parallel "$my_srun" echo This is job {} ::: {1..20}

View file

@ -11,7 +11,10 @@ SOURCEDIR = source
BUILDDIR = build BUILDDIR = build
all: copy all: copy
make html make html 2>&1 | \
grep -v 'WARNING: Could not lex literal_block as "perl". Highlighting skipped.'
install: install:
true dummy true dummy

View file

@ -105,6 +105,26 @@ html_static_path = ['_static']
# #
# html_sidebars = {} # html_sidebars = {}
html_theme_options = {
'logo_only': False,
'display_version': True,
'prev_next_buttons_location': 'bottom',
'style_external_links': False,
'vcs_pageview_mode': '',
# 'style_nav_header_background': 'white',
# Toc options
'collapse_navigation': True,
'sticky_navigation': True,
'navigation_depth': 0,
'includehidden': True,
'titles_only': False
}
html_sidebars = {
'**': ['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'],
}
# -- Options for HTMLHelp output --------------------------------------------- # -- Options for HTMLHelp output ---------------------------------------------

View file

@ -11,7 +11,7 @@ Welcome to GNU Parallel's documentation!
======================================== ========================================
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 3
:caption: parallel :caption: parallel
parallel parallel

View file

@ -965,8 +965,8 @@ par_sem_quote
par_shellcompletion ### --shellcompletion par_shellcompletion ### --shellcompletion
par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac - par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac - par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
par_shellcompletion 01947895bda95d99e1b8948a31b1c1f7 - par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 -
par_shellcompletion 01947895bda95d99e1b8948a31b1c1f7 - par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 -
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
par_slow_pipe_regexp 0 1 1 par_slow_pipe_regexp 0 1 1

View file

@ -600,7 +600,7 @@ par_load_from_PARALLEL ### Test reading load from PARALLEL
par_load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 - par_load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 -
par_load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 - par_load_from_PARALLEL 8a7095c1c23bfadc311fe6b16d950582 -
par_long_line_remote ### Deal with long command lines on remote servers par_long_line_remote ### Deal with long command lines on remote servers
par_long_line_remote 6 6 30006 par_long_line_remote 1 6 30006
par_long_line_remote 6 50 250050 par_long_line_remote 6 50 250050
par_maxlinelen_X_I ### Test max line length -X -I par_maxlinelen_X_I ### Test max line length -X -I
par_maxlinelen_X_I a98747678a5d18c4470a073812437ab2 - par_maxlinelen_X_I a98747678a5d18c4470a073812437ab2 -