Fixed bug #55992: --delay with ms accuracy (around 5 ms).

This commit is contained in:
Ole Tange 2019-09-22 07:30:08 +02:00
parent 512059bf1e
commit 372d3fdf24
22 changed files with 177 additions and 77 deletions

View file

@ -209,7 +209,7 @@ 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 20190822 ('Dorian') released <<[stable]>> Subject: GNU Parallel 20190822 ('Dorian/Stallman') released <<[stable]>>
GNU Parallel 20190822 ('Dorian') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ GNU Parallel 20190822 ('Dorian') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
@ -225,12 +225,16 @@ Quote of the month:
New in this release: New in this release:
* --delay is now accurate to around 5 ms.
* --nice is now inherited by the nice level that GNU Parallel is started at. So 'nice -n10 parallel' will also cause remote jobs to be run at nice level 10. * --nice is now inherited by the nice level that GNU Parallel is started at. So 'nice -n10 parallel' will also cause remote jobs to be run at nice level 10.
* GNU Parallel will be presented at Driving IT 2019: https://ida.dk/arrangementer-og-kurser/konferencer/driving-it/tools * GNU Parallel will be presented at Driving IT 2019: https://ida.dk/arrangementer-og-kurser/konferencer/driving-it/tools
* Greenland Ice Sheet solid ice discharge from 1986 through 2017 https://www.earth-syst-sci-data.net/11/769/2019/essd-11-769-2019.pdf * Greenland Ice Sheet solid ice discharge from 1986 through 2017 https://www.earth-syst-sci-data.net/11/769/2019/essd-11-769-2019.pdf
* App Center Cloud Build Machines > Installed Software > Utilities https://docs.microsoft.com/en-us/appcenter/build/software
https://dualuse.io/blog/curryfinger/ https://dualuse.io/blog/curryfinger/
https://wiki.cac.washington.edu/display/hyakusers/Hyak+parallel-sql https://wiki.cac.washington.edu/display/hyakusers/Hyak+parallel-sql

View file

@ -1677,7 +1677,7 @@ sub parse_options(@) {
$ENV{'PARALLEL_RSYNC_OPTS'} = $opt::rsync_opts || $ENV{'PARALLEL_RSYNC_OPTS'} = $opt::rsync_opts ||
$ENV{'PARALLEL_RSYNC_OPTS'} || '-rlDzR'; $ENV{'PARALLEL_RSYNC_OPTS'} || '-rlDzR';
# Default: Same nice level as GNU Parallel is started at # Default: Same nice level as GNU Parallel is started at
$opt::nice ||= getpriority(0,0) || 0; $opt::nice ||= eval { getpriority(0,0) } || 0;
if(defined $opt::help) { usage(); exit(0); } if(defined $opt::help) { usage(); exit(0); }
if(defined $opt::embed) { embed(); exit(0); } if(defined $opt::embed) { embed(); exit(0); }
if(defined $opt::sqlandworker) { if(defined $opt::sqlandworker) {
@ -3214,7 +3214,7 @@ sub init_run_jobs() {
if ($sshlogin->jobs_running() < $sshlogin->max_jobs_running()) { if ($sshlogin->jobs_running() < $sshlogin->max_jobs_running()) {
if($opt::delay if($opt::delay
and and
$opt::delay > ::now() - $Global::newest_starttime) { $opt::delay - 0.008 > ::now() - $Global::newest_starttime) {
# It has been too short since last start # It has been too short since last start
next; next;
} }
@ -5699,7 +5699,7 @@ sub reap_usleep() {
if(reapers()) { if(reapers()) {
if(not $Global::total_completed % 100) { if(not $Global::total_completed % 100) {
if($opt::timeout) { if($opt::timeout) {
# Force cleaning the timeout queue for every 1000 jobs # Force cleaning the timeout queue for every 100 jobs
# Fixes potential memleak # Fixes potential memleak
$Global::timeoutq->process_timeouts(); $Global::timeoutq->process_timeouts();
} }
@ -5716,13 +5716,6 @@ sub reap_usleep() {
if($opt::limit) { if($opt::limit) {
kill_youngest_if_over_limit(); kill_youngest_if_over_limit();
} }
if($ms > 0.002) {
# When a child dies, wake up from sleep (or select(,,,))
$SIG{CHLD} = sub { kill "ALRM", $$ };
usleep($ms);
# --compress needs $SIG{CHLD} unset
$SIG{CHLD} = 'DEFAULT';
}
exit_if_disk_full(); exit_if_disk_full();
if($opt::linebuffer) { if($opt::linebuffer) {
my $something_printed = 0; my $something_printed = 0;
@ -5739,6 +5732,19 @@ sub reap_usleep() {
$ms = $ms/2+0.001; $ms = $ms/2+0.001;
} }
} }
if($ms > 0.002) {
# When a child dies, wake up from sleep (or select(,,,))
$SIG{CHLD} = sub { kill "ALRM", $$ };
if($opt::delay) {
# The 0.004s is approximately the time it takes for one round
usleep(1000*($Global::newest_starttime +
$opt::delay - 0.004 - ::now()));
} else {
usleep($ms);
}
# --compress needs $SIG{CHLD} unset
$SIG{CHLD} = 'DEFAULT';
}
# Sleep exponentially longer (1.1^n) if a job did not finish, # Sleep exponentially longer (1.1^n) if a job did not finish,
# though at most 1000 ms. # though at most 1000 ms.
return (($ms < 1000) ? ($ms * 1.1) : ($ms)); return (($ms < 1000) ? ($ms * 1.1) : ($ms));

View file

@ -18,7 +18,8 @@ install_packages() {
# Compression # Compression
compression_pkgs="zstd clzip liblz4-tool lzop pigz pixz pxz gzip plzip pbzip2 lzma xz-utils lzip bzip2 lbzip2 lrzip" compression_pkgs="zstd clzip liblz4-tool lzop pigz pixz pxz gzip plzip pbzip2 lzma xz-utils lzip bzip2 lbzip2 lrzip"
# Shells # Shells
shell_pkgs="ash csh dash fdclone fish fizsh ksh mksh posh rc rush sash tcsh yash zsh" # (csh = bsd-csh that is broken)
shell_pkgs="ash dash fdclone fish fizsh ksh mksh posh rc rush sash tcsh yash zsh"
# Databases # Databases
database_pkgs="postgresql mysql-server sqlite" database_pkgs="postgresql mysql-server sqlite"
if $INSTALL $test_pkgs $packaging_pkgs $shebang_pkgs $sql_pkgs $compression_pkgs $shell_pkgs $database_pkgs; then if $INSTALL $test_pkgs $packaging_pkgs $shebang_pkgs $sql_pkgs $compression_pkgs $shell_pkgs $database_pkgs; then
@ -143,9 +144,11 @@ create_shell_logins() {
# Remove env_parallel from .profile # Remove env_parallel from .profile
ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc' ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc'
ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin' ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin'
ssh nopathbash@lo 'echo $PATH; echo 1 | parallel echo' || echo Should FAIL ssh nopathcsh@lo 'echo >> .login setenv PATH /bin:/usr/bin'
ssh nopathcsh@lo 'echo $PATH; echo 1 | parallel echo' || echo Should FAIL ssh nopathbash@lo 'echo $PATH; echo 1 | parallel echo' ||
echo Great - this should FAIL: parallel should not be found
ssh nopathcsh@lo 'echo $PATH; echo 1 | parallel echo' ||
echo Great - this should FAIL: parallel should not be found
) )
} }
@ -184,10 +187,34 @@ add_freebsd() {
echo Ciphers +aes256-cbc echo Ciphers +aes256-cbc
} }
tmux_versions() {
(cd /tmp
git clone https://github.com/tmux/tmux.git
make_one() {
rsync -a --delete tmux/ tmux$1/
cd tmux$1
git reset --hard
git checkout $1
./autogen.sh &&
./configure &&
make -j2 &&
sudo cp tmux /usr/local/bin/tmux-$1
}
export -f make_one
echo '# Building tmux'
seq 1.8 0.1 3.0 |
stdout parallel --lb --tag '/usr/local/bin/tmux-{} -V || make_one {}'
seq 1.8 0.1 3.0 |
parallel -k -v /usr/local/bin/tmux-{} -V
)
}
misc() { misc() {
parallel --record-env parallel --record-env
sudo cp /usr/bin/tmux /usr/local/bin/tmux1.8 #sudo cp /usr/bin/tmux /usr/local/bin/tmux1.8
# Build locale for LC_ALL=zh_HK.big5hkscs perl -e 1
sudo locale-gen zh_HK
} }
install_packages && install_packages &&

View file

@ -3,6 +3,7 @@
# Argument can be substring of tests (such as 'local') # Argument can be substring of tests (such as 'local')
export LANG=C export LANG=C
export LC_ALL=C
unset LC_MONETARY unset LC_MONETARY
SHFILE=/tmp/unittest-parallel.sh SHFILE=/tmp/unittest-parallel.sh
MAX_SEC_PER_TEST=900 MAX_SEC_PER_TEST=900

View file

@ -444,14 +444,17 @@ par_newline_in_command() {
par_wd_3dot_local() { par_wd_3dot_local() {
echo 'bug #45993: --wd ... should also work when run locally' echo 'bug #45993: --wd ... should also work when run locally'
parallel --wd /bi 'pwd; echo $OLDPWD; echo' ::: fail (
parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd /bi 'pwd; echo $OLDPWD; echo' ::: fail
parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK
parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
) |
perl -pe 's:/mnt/4tb::; s:/home/tange:~:;' | perl -pe 's:/mnt/4tb::; s:/home/tange:~:;' |
perl -pe 's:parallel./:parallel/:;' |
perl -pe 's/'`hostname`'/hostname/g; s/\d+/0/g' perl -pe 's/'`hostname`'/hostname/g; s/\d+/0/g'
parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
} }
par_X_eta_div_zero() { par_X_eta_div_zero() {

View file

@ -515,4 +515,8 @@ par_tmp_full() {
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | LC_ALL=C sort | compgen -A function | grep par_ | LC_ALL=C sort |
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' |
perl -pe 's/,31,0/,15,0/' |
perl -pe 's:~:'$HOME':' |
perl -pe 's:'$PWD':.:' |
perl -pe 's:'$HOME':~:'

View file

@ -4,6 +4,16 @@
# Each should be taking 1-3s and be possible to run in parallel # Each should be taking 1-3s and be possible to run in parallel
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
par_profiles_with_space() {
echo '### bug #42902: profiles containing arguments with space'
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH;
parallel -JFULLPATH echo FULLPATH ::: $0
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: . |
perl -pe 's:parallel./:parallel/:'
}
par_fifo_under_csh() { par_fifo_under_csh() {
echo '### Test --fifo under csh' echo '### Test --fifo under csh'

View file

@ -90,7 +90,7 @@ par_continuous_output() {
echo "Test delayed output with '$1'" echo "Test delayed output with '$1'"
echo "-u is optimal but hard to reach, due to non-mixing" echo "-u is optimal but hard to reach, due to non-mixing"
seq 10 | seq 10 |
parallel -j1 $1 --delay 1 -N0 echo | parallel -j1 $1 --delay 1.5 -N0 echo |
parallel -j4 $1 -N0 'sleep 0.6;date' | parallel -j4 $1 -N0 'sleep 0.6;date' |
timestamp -dd | timestamp -dd |
perl -pe 's/(.).*/$1/' perl -pe 's/(.).*/$1/'

View file

@ -90,4 +90,5 @@ par_tee_ssh() {
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
compgen -A function | grep par_ | sort | compgen -A function | grep par_ | sort |
parallel --joblog /tmp/jl-`basename $0` --retries 3 -j300% --tag -k '{} 2>&1' parallel --joblog /tmp/jl-`basename $0` --retries 3 -j300% --tag -k '{} 2>&1' |
perl -pe "s//'/g;s//'/g"

View file

@ -47,7 +47,6 @@ par_path_remote_csh() {
env_parallel --filter --env A,PATH -Slo echo '$PATH' ::: OK env_parallel --filter --env A,PATH -Slo echo '$PATH' ::: OK
# Sleep needed to avoid stderr/stdout mixing # Sleep needed to avoid stderr/stdout mixing
sleep 1 sleep 1
echo Right now it seems csh does not respect $PATH if set from Perl
echo Done echo Done
_EOS _EOS
} }
@ -91,21 +90,21 @@ par_bar_m() {
par_retries_1() { par_retries_1() {
echo '### Test of --retries - it should run 13 jobs in total'; echo '### Test of --retries - it should run 13 jobs in total';
export PARALLEL="--retries 1 -S 12/localhost,1/:,parallel@parallel-server1 -uq" export PARALLEL="--retries 1 -S 12/localhost,1/:,parallel@lo -uq"
seq 0 12 | seq 0 12 |
parallel perl -e 'print "job{}\n";exit({})' 2>/dev/null | wc -l parallel perl -e 'print "job{}\n";exit({})' 2>/dev/null | wc -l
} }
par_retries_2() { par_retries_2() {
echo '### Test of --retries - it should run 25 jobs in total'; echo '### Test of --retries - it should run 25 jobs in total';
export PARALLEL="--retries 2 -S 12/localhost,1/:,parallel@parallel-server1 -uq" export PARALLEL="--retries 2 -S 12/localhost,1/:,parallel@lo -uq"
seq 0 12 | seq 0 12 |
parallel perl -e 'print "job{}\n";exit({})' 2>/dev/null | wc -l parallel perl -e 'print "job{}\n";exit({})' 2>/dev/null | wc -l
} }
par_retries_4() { par_retries_4() {
echo '### Test of --retries - it should run 49 jobs in total'; echo '### Test of --retries - it should run 49 jobs in total';
export PARALLEL="--retries 4 -S 12/localhost,1/:,parallel@parallel-server1 -uq" export PARALLEL="--retries 4 -S 12/localhost,1/:,parallel@lo -uq"
seq 0 12 | seq 0 12 |
parallel perl -e 'print "job{}\n";exit({})' 2>/dev/null | wc -l parallel perl -e 'print "job{}\n";exit({})' 2>/dev/null | wc -l
} }

View file

@ -128,7 +128,8 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin
rm parallel-embed rm parallel-embed
_EOF _EOF
) )
ssh zsh@lo "$myscript" ssh zsh@lo "$myscript" 2>&1 |
grep -v .zshenv:.:1
} }
par_propagate_env() { par_propagate_env() {
@ -197,14 +198,14 @@ par_PARALLEL_SSHLOGIN() {
echo '### bug #56554: Introduce $PARALLEL_SSHLOGIN' echo '### bug #56554: Introduce $PARALLEL_SSHLOGIN'
(echo lo; echo zsh@lo; echo /usr/bin/ssh csh@lo; echo 1/sh@lo; (echo lo; echo zsh@lo; echo /usr/bin/ssh csh@lo; echo 1/sh@lo;
echo 1//usr/bin/ssh tcsh@lo) | echo 1//usr/bin/ssh tcsh@lo) |
parallel --tag --nonall -S - 'whoami;echo $PARALLEL_SSHLOGIN' | parallel -k --tag --nonall -S - 'whoami;echo $PARALLEL_SSHLOGIN' |
sort LANG=C sort
} }
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
#compgen -A function | grep par_ | sort | #compgen -A function | grep par_ | sort |
compgen -A function | grep par_ | LANG=C sort -r | compgen -A function | grep par_ | LANG=C sort -ri |
# parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1' # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1'
parallel --joblog /tmp/jl-`basename $0` --delay 0.1 -j200% --tag -k '{} 2>&1' | parallel --joblog /tmp/jl-`basename $0` --delay 0.1 -j200% --tag -k '{} 2>&1' |
perl -pe 's/line \d\d\d+:/line XXX:/' | perl -pe 's/line \d\d\d+:/line XXX:/' |

View file

@ -65,12 +65,14 @@ par_env_newline_backslash_bash() {
par_env_newline_backslash_csh() { par_env_newline_backslash_csh() {
echo '### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails' echo '### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails'
test_chr_on_sshlogin 10,92 2/tcsh@lo,2/csh@lo '' test_chr_on_sshlogin 10,92 2/tcsh@lo,2/csh@lo '' |
perl -pe "s/'(.)'/\$1/g"
} }
par_env_newline_backslash_onall_bash() { par_env_newline_backslash_onall_bash() {
echo '### Test --env for \n and \\ - single and double --onall (bash only) - no output is good' echo '### Test --env for \n and \\ - single and double --onall (bash only) - no output is good'
test_chr_on_sshlogin 10,92 :,lo --onall test_chr_on_sshlogin 10,92 :,lo --onall |
grep -v "Unmatched '\"'"
} }
par_env_newline_backslash_onall_csh() { par_env_newline_backslash_onall_csh() {

View file

@ -62,12 +62,6 @@ echo '### bug #42893: --block should not cause decimals in cat_partial'
parallel --dry-run -kvv --pipepart --block 0.12345M -a /tmp/parallel-decimal true; parallel --dry-run -kvv --pipepart --block 0.12345M -a /tmp/parallel-decimal true;
rm /tmp/parallel-decimal rm /tmp/parallel-decimal
echo '### bug #42902: profiles containing arguments with space'
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH;
parallel -JFULLPATH echo FULLPATH ::: $0
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: .
echo '### bug #42892: parallel -a nonexiting --pipepart' echo '### bug #42892: parallel -a nonexiting --pipepart'
parallel --pipepart -a nonexisting wc parallel --pipepart -a nonexisting wc

View file

@ -399,7 +399,7 @@ par_parset 4
par_parset 5 par_parset 5
par_parset The commands to run can be an array par_parset The commands to run can be an array
par_parset <<joe "double space" cartoon>> par_parset <<joe "double space" cartoon>>
par_parset ~/privat/parallel/testsuite par_parset .
par_parset You cannot pipe into parset, but must use a tempfile par_parset You cannot pipe into parset, but must use a tempfile
par_parset 1 par_parset 1
par_parset 10 par_parset 10

View file

@ -212,6 +212,11 @@ par_pipe_compress_blocks 1 2 3
par_pipe_compress_blocks 1 par_pipe_compress_blocks 1
par_pipe_compress_blocks 2 par_pipe_compress_blocks 2
par_pipe_compress_blocks 3 par_pipe_compress_blocks 3
par_profiles_with_space ### bug #42902: profiles containing arguments with space
par_profiles_with_space /bin/bash=/bin/bash
par_profiles_with_space echo '/bin/bash=/bin/bash'
par_profiles_with_space /bin/bash=/bin/bash
par_profiles_with_space With script in $PARALLEL /bin/bash=~/privat/parallel/testsuite
par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway
par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory
par_pxz_complains can not seek in input: Illegal seek par_pxz_complains can not seek in input: Illegal seek

View file

@ -13,7 +13,7 @@ stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }"
1=OK 1 1=OK 1
par_continuous_output Test delayed output with '' par_continuous_output Test delayed output with ''
par_continuous_output -u is optimal but hard to reach, due to non-mixing par_continuous_output -u is optimal but hard to reach, due to non-mixing
par_continuous_output 4 par_continuous_output 6
par_continuous_output 0 par_continuous_output 0
par_continuous_output 0 par_continuous_output 0
par_continuous_output 0 par_continuous_output 0
@ -25,8 +25,7 @@ par_continuous_output 1
par_continuous_output 0 par_continuous_output 0
par_continuous_output Test delayed output with '-u' par_continuous_output Test delayed output with '-u'
par_continuous_output -u is optimal but hard to reach, due to non-mixing par_continuous_output -u is optimal but hard to reach, due to non-mixing
par_continuous_output 4 par_continuous_output 5
par_continuous_output 0
par_continuous_output 0 par_continuous_output 0
par_continuous_output 0 par_continuous_output 0
par_continuous_output 0 par_continuous_output 0
@ -35,6 +34,7 @@ par_continuous_output 1
par_continuous_output 1 par_continuous_output 1
par_continuous_output 1 par_continuous_output 1
par_continuous_output 1 par_continuous_output 1
par_continuous_output 1
par_hostgroup ### --hostgroup force ncpu par_hostgroup ### --hostgroup force ncpu
par_hostgroup parallel par_hostgroup parallel
par_hostgroup parallel par_hostgroup parallel

View file

@ -26,9 +26,7 @@ par_path_remote_csh logged in
par_path_remote_csh CSH Path before: /bin:/usr/bin with no parallel par_path_remote_csh CSH Path before: /bin:/usr/bin with no parallel
par_path_remote_csh parallel: Command not found. par_path_remote_csh parallel: Command not found.
par_path_remote_csh ^^^^^^^^ Not found is OK par_path_remote_csh ^^^^^^^^ Not found is OK
par_path_remote_csh parallel: Warning: Removed lo. par_path_remote_csh /bin:/usr/bin:/tmp OK
par_path_remote_csh parallel: Error: Cannot run any jobs.
par_path_remote_csh Right now it seems csh does not respect /bin:/usr/bin:/tmp if set from Perl
par_path_remote_csh Done par_path_remote_csh Done
par_retries_1 ### Test of --retries - it should run 13 jobs in total par_retries_1 ### Test of --retries - it should run 13 jobs in total
par_retries_1 13 par_retries_1 13

View file

@ -6,7 +6,10 @@ par_zsh_embed your
par_zsh_embed code par_zsh_embed code
par_zsh_embed here par_zsh_embed here
par_zsh_embed parallel_OK par_zsh_embed parallel_OK
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed env_parallel --env OK par_zsh_embed env_parallel --env OK
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed _which_PAR:13: argument list too long: perl par_zsh_embed _which_PAR:13: argument list too long: perl
par_zsh_embed env_parallel: Error: Your environment is too big. par_zsh_embed env_parallel: Error: Your environment is too big.
par_zsh_embed env_parallel: Error: You can try 3 different approaches: par_zsh_embed env_parallel: Error: You can try 3 different approaches:
@ -19,9 +22,17 @@ par_zsh_embed env_parallel: Error: And then use '--env _'
par_zsh_embed env_parallel: Error: For details see: man env_parallel par_zsh_embed env_parallel: Error: For details see: man env_parallel
par_zsh_embed ParsetOK par_zsh_embed ParsetOK
par_zsh_embed Put par_zsh_embed Put
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed your par_zsh_embed your
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed code par_zsh_embed code
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed here par_zsh_embed here
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed /home/zsh/.zshenv:.:1: no such file or directory: env_parallel.zsh
par_zsh_embed Put your code here par_zsh_embed Put your code here
par_tcsh_embed Not implemented par_tcsh_embed Not implemented
par_sh_embed --embed par_sh_embed --embed
@ -54,17 +65,6 @@ par_propagate_env ** test_csh_filter
par_propagate_env FOO=test_csh_filter par_propagate_env FOO=test_csh_filter
par_propagate_env HOME=~ par_propagate_env HOME=~
par_propagate_env ** bug #41805 done par_propagate_env ** bug #41805 done
par_PARALLEL_SSHLOGIN ### bug #56554: Introduce $PARALLEL_SSHLOGIN
par_PARALLEL_SSHLOGIN lo lo
par_PARALLEL_SSHLOGIN lo tange
par_PARALLEL_SSHLOGIN sh@lo sh
par_PARALLEL_SSHLOGIN sh@lo sh@lo
par_PARALLEL_SSHLOGIN /usr/bin/ssh csh@lo csh
par_PARALLEL_SSHLOGIN /usr/bin/ssh csh@lo /usr/bin/ssh csh@lo
par_PARALLEL_SSHLOGIN /usr/bin/ssh tcsh@lo tcsh
par_PARALLEL_SSHLOGIN /usr/bin/ssh tcsh@lo /usr/bin/ssh tcsh@lo
par_PARALLEL_SSHLOGIN zsh@lo zsh
par_PARALLEL_SSHLOGIN zsh@lo zsh@lo
par_no_route_to_host ### no route to host with | and -j0 causes inf loop par_no_route_to_host ### no route to host with | and -j0 causes inf loop
par_no_route_to_host ssh: connect to host i.p.n.r port 22: No route to host par_no_route_to_host par_no_route_to_host ssh: connect to host i.p.n.r port 22: No route to host par_no_route_to_host
par_no_route_to_host parallel: This job finished: par_no_route_to_host parallel: This job finished:
@ -147,3 +147,14 @@ par_ash_embed your
par_ash_embed code par_ash_embed code
par_ash_embed here par_ash_embed here
par_ash_embed Put your code here par_ash_embed Put your code here
par_PARALLEL_SSHLOGIN ### bug #56554: Introduce $PARALLEL_SSHLOGIN
par_PARALLEL_SSHLOGIN /usr/bin/ssh csh@lo /usr/bin/ssh csh@lo
par_PARALLEL_SSHLOGIN /usr/bin/ssh csh@lo csh
par_PARALLEL_SSHLOGIN /usr/bin/ssh tcsh@lo /usr/bin/ssh tcsh@lo
par_PARALLEL_SSHLOGIN /usr/bin/ssh tcsh@lo tcsh
par_PARALLEL_SSHLOGIN lo lo
par_PARALLEL_SSHLOGIN lo tange
par_PARALLEL_SSHLOGIN sh@lo sh
par_PARALLEL_SSHLOGIN sh@lo sh@lo
par_PARALLEL_SSHLOGIN zsh@lo zsh
par_PARALLEL_SSHLOGIN zsh@lo zsh@lo

View file

@ -39,7 +39,7 @@ https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
To silence this citation notice: run 'parallel --citation' once. To silence this citation notice: run 'parallel --citation' once.
10 files to edit 10 files to edit
[?2004h[?1049h[?1h=[?2004h[?12h[?12l[?25l"file1" [New File] [>c]10;?]11;?~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 0,0-1All[?25h[?25lE173: 9 more files to edit[?2004h0,0-1All[?25h[?2004l[?2004l[?1l>[?1049lAcademic tradition requires you to cite works you base your article on. [?2004h[?1049h[?1h=[?2004h[?12h[?12l[?25l"file1" [New File]½ [>c]10;?]11;?~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 0,0-1All[?25h[?25lE173: 9 more files to edit[?2004h0,0-1All[?25h[?2004l[?2004l[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
If you use programs that use GNU Parallel to process data for an article in a If you use programs that use GNU Parallel to process data for an article in a
scientific publication, please cite: scientific publication, please cite:

View file

@ -80,15 +80,6 @@ echo '### bug #42893: --block should not cause decimals in cat_partial'
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 258900 129450 |(true) </tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 258900 129450 |(true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 388350 129450 |(true) </tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 388350 129450 |(true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 517800 71095 |(true) </tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 517800 71095 |(true)
echo '### bug #42902: profiles containing arguments with space'
### bug #42902: profiles containing arguments with space
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH; parallel -JFULLPATH echo FULLPATH ::: $0
/bin/bash=/bin/bash
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0
echo '/bin/bash=/bin/bash'
/bin/bash=/bin/bash
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: .
With script in $PARALLEL /bin/bash=~/privat/parallel/testsuite
echo '### bug #42892: parallel -a nonexiting --pipepart' echo '### bug #42892: parallel -a nonexiting --pipepart'
### bug #42892: parallel -a nonexiting --pipepart ### bug #42892: parallel -a nonexiting --pipepart
parallel --pipepart -a nonexisting wc parallel --pipepart -a nonexisting wc

View file

@ -10,13 +10,14 @@ MAXTIME=50 RETRIES=3 MAXPROC=100 MAXINNERPROC=3
< dragonfly < dragonfly
< vax < vax
< minix < minix
32,33d20 32,33d21
< beaglebone < beaglebone
< cubieboard2 < cubieboard2
### Copy commands to servers ### Copy commands to servers
bin/parallel qnx copy qnx bin/parallel parallel bin/parallel qnx copy qnx bin/parallel parallel
bin/parallel pidora copy pidora bin/parallel parallel bin/parallel pidora copy pidora bin/parallel parallel
bin/parallel tru64 copy tru64 bin/parallel parallel bin/parallel tru64 copy tru64 bin/parallel parallel
bin/parallel hpux-ia64 copy hpux-ia64 bin/parallel parallel
bin/parallel raspbian copy raspbian bin/parallel parallel bin/parallel raspbian copy raspbian bin/parallel parallel
bin/parallel solaris copy solaris bin/parallel parallel bin/parallel solaris copy solaris bin/parallel parallel
bin/parallel openindiana copy openindiana bin/parallel parallel bin/parallel openindiana copy openindiana bin/parallel parallel
@ -41,6 +42,7 @@ bin/parallel minix copy minix bin/parallel parallel
bin/env_parallel qnx copy qnx bin/env_parallel env_parallel bin/env_parallel qnx copy qnx bin/env_parallel env_parallel
bin/env_parallel pidora copy pidora bin/env_parallel env_parallel bin/env_parallel pidora copy pidora bin/env_parallel env_parallel
bin/env_parallel tru64 copy tru64 bin/env_parallel env_parallel bin/env_parallel tru64 copy tru64 bin/env_parallel env_parallel
bin/env_parallel hpux-ia64 copy hpux-ia64 bin/env_parallel env_parallel
bin/env_parallel raspbian copy raspbian bin/env_parallel env_parallel bin/env_parallel raspbian copy raspbian bin/env_parallel env_parallel
bin/env_parallel solaris copy solaris bin/env_parallel env_parallel bin/env_parallel solaris copy solaris bin/env_parallel env_parallel
bin/env_parallel openindiana copy openindiana bin/env_parallel env_parallel bin/env_parallel openindiana copy openindiana bin/env_parallel env_parallel
@ -65,6 +67,7 @@ bin/env_parallel minix copy minix bin/env_parallel env_parallel
bin/env_parallel.ash qnx copy qnx bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash qnx copy qnx bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash pidora copy pidora bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash pidora copy pidora bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash tru64 copy tru64 bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash tru64 copy tru64 bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash hpux-ia64 copy hpux-ia64 bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash raspbian copy raspbian bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash raspbian copy raspbian bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash solaris copy solaris bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash solaris copy solaris bin/env_parallel.ash env_parallel.ash
bin/env_parallel.ash openindiana copy openindiana bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash openindiana copy openindiana bin/env_parallel.ash env_parallel.ash
@ -89,6 +92,7 @@ bin/env_parallel.ash minix copy minix bin/env_parallel.ash env_parallel.ash
bin/env_parallel.bash qnx copy qnx bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash qnx copy qnx bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash pidora copy pidora bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash pidora copy pidora bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash tru64 copy tru64 bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash tru64 copy tru64 bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash hpux-ia64 copy hpux-ia64 bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash raspbian copy raspbian bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash raspbian copy raspbian bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash solaris copy solaris bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash solaris copy solaris bin/env_parallel.bash env_parallel.bash
bin/env_parallel.bash openindiana copy openindiana bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash openindiana copy openindiana bin/env_parallel.bash env_parallel.bash
@ -113,6 +117,7 @@ bin/env_parallel.bash minix copy minix bin/env_parallel.bash env_parallel.bash
bin/env_parallel.csh qnx copy qnx bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh qnx copy qnx bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh pidora copy pidora bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh pidora copy pidora bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh tru64 copy tru64 bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh tru64 copy tru64 bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh hpux-ia64 copy hpux-ia64 bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh raspbian copy raspbian bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh raspbian copy raspbian bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh solaris copy solaris bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh solaris copy solaris bin/env_parallel.csh env_parallel.csh
bin/env_parallel.csh openindiana copy openindiana bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh openindiana copy openindiana bin/env_parallel.csh env_parallel.csh
@ -137,6 +142,7 @@ bin/env_parallel.csh minix copy minix bin/env_parallel.csh env_parallel.csh
bin/env_parallel.dash qnx copy qnx bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash qnx copy qnx bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash pidora copy pidora bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash pidora copy pidora bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash tru64 copy tru64 bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash tru64 copy tru64 bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash hpux-ia64 copy hpux-ia64 bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash raspbian copy raspbian bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash raspbian copy raspbian bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash solaris copy solaris bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash solaris copy solaris bin/env_parallel.dash env_parallel.dash
bin/env_parallel.dash openindiana copy openindiana bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash openindiana copy openindiana bin/env_parallel.dash env_parallel.dash
@ -161,6 +167,7 @@ bin/env_parallel.dash minix copy minix bin/env_parallel.dash env_parallel.dash
bin/env_parallel.fish qnx copy qnx bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish qnx copy qnx bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish pidora copy pidora bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish pidora copy pidora bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish tru64 copy tru64 bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish tru64 copy tru64 bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish hpux-ia64 copy hpux-ia64 bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish raspbian copy raspbian bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish raspbian copy raspbian bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish solaris copy solaris bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish solaris copy solaris bin/env_parallel.fish env_parallel.fish
bin/env_parallel.fish openindiana copy openindiana bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish openindiana copy openindiana bin/env_parallel.fish env_parallel.fish
@ -185,6 +192,7 @@ bin/env_parallel.fish minix copy minix bin/env_parallel.fish env_parallel.fish
bin/env_parallel.ksh qnx copy qnx bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh qnx copy qnx bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh pidora copy pidora bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh pidora copy pidora bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh tru64 copy tru64 bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh tru64 copy tru64 bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh hpux-ia64 copy hpux-ia64 bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh raspbian copy raspbian bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh raspbian copy raspbian bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh solaris copy solaris bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh solaris copy solaris bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.ksh openindiana copy openindiana bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh openindiana copy openindiana bin/env_parallel.ksh env_parallel.ksh
@ -209,6 +217,7 @@ bin/env_parallel.ksh minix copy minix bin/env_parallel.ksh env_parallel.ksh
bin/env_parallel.mksh qnx copy qnx bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh qnx copy qnx bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh pidora copy pidora bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh pidora copy pidora bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh tru64 copy tru64 bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh tru64 copy tru64 bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh hpux-ia64 copy hpux-ia64 bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh raspbian copy raspbian bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh raspbian copy raspbian bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh solaris copy solaris bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh solaris copy solaris bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.mksh openindiana copy openindiana bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh openindiana copy openindiana bin/env_parallel.mksh env_parallel.mksh
@ -233,6 +242,7 @@ bin/env_parallel.mksh minix copy minix bin/env_parallel.mksh env_parallel.mksh
bin/env_parallel.pdksh qnx copy qnx bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh qnx copy qnx bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh pidora copy pidora bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh pidora copy pidora bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh tru64 copy tru64 bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh tru64 copy tru64 bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh hpux-ia64 copy hpux-ia64 bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh raspbian copy raspbian bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh raspbian copy raspbian bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh solaris copy solaris bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh solaris copy solaris bin/env_parallel.pdksh env_parallel.pdksh
bin/env_parallel.pdksh openindiana copy openindiana bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh openindiana copy openindiana bin/env_parallel.pdksh env_parallel.pdksh
@ -257,6 +267,7 @@ bin/env_parallel.pdksh minix copy minix bin/env_parallel.pdksh env_parallel.pdks
bin/env_parallel.sh qnx copy qnx bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh qnx copy qnx bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh pidora copy pidora bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh pidora copy pidora bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh tru64 copy tru64 bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh tru64 copy tru64 bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh hpux-ia64 copy hpux-ia64 bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh raspbian copy raspbian bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh raspbian copy raspbian bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh solaris copy solaris bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh solaris copy solaris bin/env_parallel.sh env_parallel.sh
bin/env_parallel.sh openindiana copy openindiana bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh openindiana copy openindiana bin/env_parallel.sh env_parallel.sh
@ -281,6 +292,7 @@ bin/env_parallel.sh minix copy minix bin/env_parallel.sh env_parallel.sh
bin/env_parallel.tcsh qnx copy qnx bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh qnx copy qnx bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh pidora copy pidora bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh pidora copy pidora bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh tru64 copy tru64 bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh tru64 copy tru64 bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh hpux-ia64 copy hpux-ia64 bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh raspbian copy raspbian bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh raspbian copy raspbian bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh solaris copy solaris bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh solaris copy solaris bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.tcsh openindiana copy openindiana bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh openindiana copy openindiana bin/env_parallel.tcsh env_parallel.tcsh
@ -305,6 +317,7 @@ bin/env_parallel.tcsh minix copy minix bin/env_parallel.tcsh env_parallel.tcsh
bin/env_parallel.zsh qnx copy qnx bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh qnx copy qnx bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh pidora copy pidora bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh pidora copy pidora bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh tru64 copy tru64 bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh tru64 copy tru64 bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh hpux-ia64 copy hpux-ia64 bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh raspbian copy raspbian bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh raspbian copy raspbian bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh solaris copy solaris bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh solaris copy solaris bin/env_parallel.zsh env_parallel.zsh
bin/env_parallel.zsh openindiana copy openindiana bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh openindiana copy openindiana bin/env_parallel.zsh env_parallel.zsh
@ -329,6 +342,7 @@ bin/env_parallel.zsh minix copy minix bin/env_parallel.zsh env_parallel.zsh
bin/parcat qnx copy qnx bin/parcat parcat bin/parcat qnx copy qnx bin/parcat parcat
bin/parcat pidora copy pidora bin/parcat parcat bin/parcat pidora copy pidora bin/parcat parcat
bin/parcat tru64 copy tru64 bin/parcat parcat bin/parcat tru64 copy tru64 bin/parcat parcat
bin/parcat hpux-ia64 copy hpux-ia64 bin/parcat parcat
bin/parcat raspbian copy raspbian bin/parcat parcat bin/parcat raspbian copy raspbian bin/parcat parcat
bin/parcat solaris copy solaris bin/parcat parcat bin/parcat solaris copy solaris bin/parcat parcat
bin/parcat openindiana copy openindiana bin/parcat parcat bin/parcat openindiana copy openindiana bin/parcat parcat
@ -365,8 +379,9 @@ debian Works on debian
debian-ppc Works on debian-ppc debian-ppc Works on debian-ppc
freebsd Works on freebsd.polarhome.com freebsd Works on freebsd.polarhome.com
hpux Works on hpux64 hpux Works on hpux64
hpux-ia64 Works on hpux-ia64
hurd Works on hurd hurd Works on hurd
macosx Works on macosx.polarhome.com macosx Works on macosx
mandriva Works on mandriva.polarhome.com mandriva Works on mandriva.polarhome.com
miros Works on miros.polarhome.com miros Works on miros.polarhome.com
netbsd Works on netbsd.polarhome.com netbsd Works on netbsd.polarhome.com
@ -460,6 +475,8 @@ hpux 1
hpux 1 hpux 1
hpux-ia64 2 hpux-ia64 2
hpux-ia64 1 hpux-ia64 1
hurd 1
hurd 1
macosx 2 macosx 2
macosx 2 macosx 2
mandriva 1 mandriva 1
@ -521,8 +538,10 @@ hurd OK readonly tmp
hpux Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 hpux Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000
hpux OK readonly tmp hpux OK readonly tmp
hpux-ia64 Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable hpux-ia64 Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
hpux-ia64 at /home/t/tange/bin/parallel line 0000 hpux-ia64 at ~/bin/parallel line 0000
hpux-ia64 OK readonly tmp hpux-ia64 OK readonly tmp
hurd Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000.
hurd OK readonly tmp
macosx Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /Users/tange/bin/parallel line 0000 macosx Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /Users/tange/bin/parallel line 0000
macosx OK readonly tmp macosx OK readonly tmp
mandriva Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 mandriva Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000
@ -593,6 +612,8 @@ hpux bash only A
hpux test funcA hpux test funcA
hpux-ia64 bash only A hpux-ia64 bash only A
hpux-ia64 test funcA hpux-ia64 test funcA
hurd bash only A
hurd test funcA
macosx bash only A macosx bash only A
macosx test funcA macosx test funcA
mandriva bash only A mandriva bash only A
@ -665,6 +686,8 @@ hpux test funcB
hpux bash only B hpux bash only B
hpux-ia64 test funcB hpux-ia64 test funcB
hpux-ia64 bash only B hpux-ia64 bash only B
hurd test funcB
hurd bash only B
macosx test funcB macosx test funcB
macosx bash only B macosx bash only B
mandriva test funcB mandriva test funcB
@ -765,6 +788,18 @@ freebsd ~/.profile
freebsd ~/.cshrc freebsd ~/.cshrc
freebsd ~/.tcshrc freebsd ~/.tcshrc
freebsd install-OK freebsd install-OK
hpux-ia64 Installed env_parallel in:
hpux-ia64 ~/.bashrc
hpux-ia64 ~/.shrc
hpux-ia64 ~/.zshenv
hpux-ia64 ~/.config/fish/config.fish
hpux-ia64 ~/.kshrc
hpux-ia64 ~/.mkshrc
hpux-ia64 ~/.profile
hpux-ia64 ~/.cshrc
hpux-ia64 ~/.tcshrc
hpux-ia64 install-OK
hpux-ia64 bin/env_parallel: line 33: ~/.cshrc: Permission denied
hurd Installed env_parallel in: hurd Installed env_parallel in:
hurd ~/.bashrc hurd ~/.bashrc
hurd ~/.shrc hurd ~/.shrc
@ -1003,6 +1038,7 @@ freebsd env_parallel run-OK
hurd env_parallel run-OK hurd env_parallel run-OK
hpux env_parallel run-OK hpux env_parallel run-OK
hpux-ia64 env_parallel run-OK hpux-ia64 env_parallel run-OK
hurd env_parallel run-OK
macosx env_parallel run-OK macosx env_parallel run-OK
mandriva env_parallel run-OK mandriva env_parallel run-OK
miros env_parallel run-OK miros env_parallel run-OK
@ -1044,6 +1080,7 @@ freebsd Syntax error: "(" unexpected (expecting word)
hurd reading from process substitution OK hurd reading from process substitution OK
hpux reading from process substitution OK hpux reading from process substitution OK
hpux-ia64 reading from process substitution OK hpux-ia64 reading from process substitution OK
hurd reading from process substitution OK
macosx reading from process substitution OK macosx reading from process substitution OK
mandriva reading from process substitution OK mandriva reading from process substitution OK
miros reading from process substitution OK miros reading from process substitution OK
@ -1097,6 +1134,8 @@ hpux ### Test if empty command name in process list causes problems
hpux OK_with_empty_cmd hpux OK_with_empty_cmd
hpux-ia64 ### Test if empty command name in process list causes problems hpux-ia64 ### Test if empty command name in process list causes problems
hpux-ia64 OK_with_empty_cmd hpux-ia64 OK_with_empty_cmd
hurd ### Test if empty command name in process list causes problems
hurd OK_with_empty_cmd
macosx ### Test if empty command name in process list causes problems macosx ### Test if empty command name in process list causes problems
macosx OK_with_empty_cmd macosx OK_with_empty_cmd
mandriva ### Test if empty command name in process list causes problems mandriva ### Test if empty command name in process list causes problems
@ -1152,6 +1191,7 @@ freebsd eval: 1: Syntax error: word unexpected (expecting ")")
hurd 1 2 1 2 3 1 2 3 4 hurd 1 2 1 2 3 1 2 3 4
hpux hpux
hpux-ia64 1 2 1 2 3 1 2 3 4 hpux-ia64 1 2 1 2 3 1 2 3 4
hurd 1 2 1 2 3 1 2 3 4
macosx 1 2 1 2 3 1 2 3 4 macosx 1 2 1 2 3 1 2 3 4
mandriva 1 2 1 2 3 1 2 3 4 mandriva 1 2 1 2 3 1 2 3 4
miros 1 2 1 2 3 1 2 3 4 miros 1 2 1 2 3 1 2 3 4
@ -1181,6 +1221,7 @@ freebsd eval: 1: Syntax error: word unexpected (expecting ")")
hurd 2 2 3 2 3 4 hurd 2 2 3 2 3 4
hpux hpux
hpux-ia64 1 2 1 2 1 2 hpux-ia64 1 2 1 2 1 2
hurd 2 2 3 2 3 4
macosx 2 2 3 2 3 4 macosx 2 2 3 2 3 4
mandriva 2 2 3 2 3 4 mandriva 2 2 3 2 3 4
miros 1 2 1 2 1 2 miros 1 2 1 2 1 2
@ -1225,6 +1266,7 @@ freebsd 1 2,1 2 3,1 2 3 4
hurd 1 2,1 2 3,1 2 3 4 hurd 1 2,1 2 3,1 2 3 4
hpux ,, hpux ,,
hpux-ia64 1 2,1 2 3,1 2 3 4 hpux-ia64 1 2,1 2 3,1 2 3 4
hurd 1 2,1 2 3,1 2 3 4
macosx 1 2,1 2 3,1 2 3 4 macosx 1 2,1 2 3,1 2 3 4
mandriva 1 2,1 2 3,1 2 3 4 mandriva 1 2,1 2 3,1 2 3 4
miros 1 2,1 2 3,1 2 3 4 miros 1 2,1 2 3,1 2 3 4

View file

@ -158,9 +158,9 @@ B
(echo 1; echo; echo 2) | parallel --no-run-if-empty echo (echo 1; echo; echo 2) | parallel --no-run-if-empty echo
9 9
parallel ::: ls 'echo foo' pwd parallel ::: ls 'echo foo' pwd
abc-file
abc0-file abc0-file
abc_-file abc_-file
abc-file
def-file def-file
fixedlen fixedlen
num1000000 num1000000
@ -397,12 +397,12 @@ pre-A-post
=ls =ls
parallel 'set a="{}"; if( { test -d "$a" } ) echo "$a is a dir"' ::: * parallel 'set a="{}"; if( { test -d "$a" } ) echo "$a is a dir"' ::: *
/bin/bash: -c: line 0: syntax error near unexpected token `)' /bin/bash: -c: line 0: syntax error near unexpected token `)'
/bin/bash: -c: line 0: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/bin/bash: -c: line 0: syntax error near unexpected token `)'
/bin/bash: -c: line 0: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"' /bin/bash: -c: line 0: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/bin/bash: -c: line 0: syntax error near unexpected token `)' /bin/bash: -c: line 0: syntax error near unexpected token `)'
/bin/bash: -c: line 0: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"' /bin/bash: -c: line 0: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/bin/bash: -c: line 0: syntax error near unexpected token `)' /bin/bash: -c: line 0: syntax error near unexpected token `)'
/bin/bash: -c: line 0: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/bin/bash: -c: line 0: syntax error near unexpected token `)'
/bin/bash: -c: line 0: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"' /bin/bash: -c: line 0: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/bin/bash: -c: line 0: syntax error near unexpected token `)' /bin/bash: -c: line 0: syntax error near unexpected token `)'
/bin/bash: -c: line 0: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"' /bin/bash: -c: line 0: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"'
@ -831,7 +831,6 @@ foo bar baz
in my_func baz in my_func baz
parallel --record-env parallel --record-env
cat ~/.parallel/ignored_vars|sort cat ~/.parallel/ignored_vars|sort
_
BASH_FUNC_run_once%% BASH_FUNC_run_once%%
BASH_FUNC_run_test%% BASH_FUNC_run_test%%
COLORFGBG COLORFGBG
@ -888,7 +887,6 @@ PROFILEHOME
PWD PWD
QT_ACCESSIBILITY QT_ACCESSIBILITY
QT_AUTO_SCREEN_SCALE_FACTOR QT_AUTO_SCREEN_SCALE_FACTOR
S_COLORS
SERVER1 SERVER1
SERVER2 SERVER2
SESSION_MANAGER SESSION_MANAGER
@ -897,6 +895,7 @@ SHELL_SESSION_ID
SHLVL SHLVL
SSH_AGENT_PID SSH_AGENT_PID
SSH_AUTH_SOCK SSH_AUTH_SOCK
S_COLORS
TERM TERM
TIMEOUT TIMEOUT
TMPDIR TMPDIR
@ -919,6 +918,8 @@ XDG_SESSION_ID
XDG_SESSION_PATH XDG_SESSION_PATH
XDG_SESSION_TYPE XDG_SESSION_TYPE
XDG_VTNR XDG_VTNR
_
mysqlrootpass
# The function is only copied if using Bash # The function is only copied if using Bash
my_func2() { my_func2() {
echo in my_func2 $VAR $1 echo in my_func2 $VAR $1