diff --git a/doc/release_new_version b/doc/release_new_version index 2cc4351a..02289980 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -206,9 +206,9 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20181122 ('Kilogram/brexitdeal/Stan Lee/Cesar Sayoc/Tree of Life/Iran') released <<[stable]>> +Subject: GNU Parallel 20181222 ('Kilogram/brexitdeal/Stan Lee/Cesar Sayoc/Tree of Life/Iran') released <<[stable]>> -GNU Parallel 20181122 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ +GNU Parallel 20181222 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ <> @@ -216,9 +216,7 @@ Quote of the month: New in this release: -* https://codeday.me/bug/20181015/298447.html - -* https://qiita.com//grohiro/items/4db3fa951a4778c5c479 +* https://qiita.com/hana_shin/items/53c3c78525c9c758ae7c * Bug fixes and man page updates. diff --git a/src/niceload b/src/niceload index 06fd286e..ab53322e 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20181122; +$Global::version = 20181124; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index bcddca2a..0331668d 100755 --- a/src/parallel +++ b/src/parallel @@ -120,17 +120,27 @@ if($Global::semaphore) { $sem = acquire_semaphore(); } $SIG{TERM} = \&start_no_new_jobs; -while(start_more_jobs()) {} + if($opt::tee) { # All jobs must be running in parallel for --tee + while(start_more_jobs()) {} $Global::start_no_new_jobs = 1; + if(not $Global::JobQueue->empty()) { + ::error("--tee requres --jobs to be higher. Try --jobs 0."); + ::wait_and_exit(255); + } } elsif($opt::pipe and not $opt::pipepart) { + # Fill all jobslots + while(start_more_jobs()) {} spreadstdin(); +} else { + # Reap one - start one + while(reaper() + start_more_jobs()) {} } ::debug("init", "Start draining\n"); drain_job_queue(); ::debug("init", "Done draining\n"); -reaper(); +reapers(); ::debug("init", "Done reaping\n"); if($Global::semaphore) { $sem->release(); @@ -186,11 +196,14 @@ sub max_jobs_running { # Returns: # $Global::max_jobs_running if(not $Global::max_jobs_running) { - for my $sshlogin (values %Global::host) { $sshlogin->max_jobs_running(); } } + if(not $Global::max_jobs_running) { + ::error("Cannot run any jobs."); + wait_and_exit(255); + } return $Global::max_jobs_running; } @@ -462,15 +475,6 @@ sub spreadstdin { # %Global::running # Returns: N/A - if($opt::tee) { - # Spawn all jobs - # read a record - # Write record to all jobs - if(not $Global::JobQueue->empty()) { - ::error("--tee requres --jobs to be higher. Try --jobs 0."); - } - } - my $buf = ""; my ($recstart,$recend) = recstartrecend(); my $recendrecstart = $recend.$recstart; @@ -1555,7 +1559,7 @@ sub check_invalid_option_combinations { sub init_globals { # Defaults: - $Global::version = 20181122; + $Global::version = 20181124; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -4035,86 +4039,95 @@ sub start_no_new_jobs { $Global::start_no_new_jobs ||= 1; } +sub reapers { + # Run reaper until there are no more left + # Returns: + # @pids_reaped = pids of reaped processes + my @pids_reaped; + my $pid; + while($pid = reaper()) { + push @pids_reaped, $pid; + } + return @pids_reaped; +} + sub reaper { - # A job finished. - # Print the output. - # Start another job + # A job finished: + # * Set exitstatus, exitsignal, endtime. + # * Free ressources for new job + # * Update median runtime + # * Print output + # * If --halt = now: Kill children + # * Print progress # Uses: - # %Global::sshmaster # %Global::running # $opt::timeout # $Global::timeoutq - # $opt::halt # $opt::keeporder # $Global::total_running # Returns: - # @pids_reaped = PIDs of children finished + # $stiff = PID of child finished my $stiff; - my @pids_reaped; - my $total_reaped; debug("run", "Reaper "); - if (($stiff = waitpid(-1, &WNOHANG)) > 0) { - # $stiff = pid of dead process - if(wantarray) { - push(@pids_reaped,$stiff); - } - $total_reaped++; - if($Global::sshmaster{$stiff}) { - # This is one of the ssh -M: ignore - next; - } - my $job = $Global::running{$stiff}; + if(($stiff = waitpid(-1, &WNOHANG)) <= 0) { + # No jobs waiting to be reaped + return 0; + } - # '-a <(seq 10)' will give us a pid not in %Global::running - $job or return 0; - delete $Global::running{$stiff}; - $Global::total_running--; - if($job->{'commandline'}{'skip'}) { - # $job->skip() was called - $job->set_exitstatus(-2); - $job->set_exitsignal(0); + # $stiff = pid of dead process + my $job = $Global::running{$stiff}; + + # '-a <(seq 10)' will give us a pid not in %Global::running + # The same will one of the ssh -M: ignore + $job or return 0; + delete $Global::running{$stiff}; + $Global::total_running--; + if($job->{'commandline'}{'skip'}) { + # $job->skip() was called + $job->set_exitstatus(-2); + $job->set_exitsignal(0); + } else { + $job->set_exitstatus($? >> 8); + $job->set_exitsignal($? & 127); + } + + debug("run", "seq ",$job->seq()," died (", $job->exitstatus(), ")"); + $job->set_endtime(::now()); + my $sshlogin = $job->sshlogin(); + $sshlogin->dec_jobs_running(); + if($job->should_be_retried()) { + # Free up file handles + $job->free_ressources(); + } else { + # The job is done + $sshlogin->inc_jobs_completed(); + # Free the jobslot + $job->free_slot(); + if($opt::timeout and not $job->exitstatus()) { + # Update average runtime for timeout only for successful jobs + $Global::timeoutq->update_median_runtime($job->runtime()); + } + if($opt::keeporder) { + $job->print_earlier_jobs(); } else { - $job->set_exitstatus($? >> 8); - $job->set_exitsignal($? & 127); + $job->print(); } - - debug("run", "seq ",$job->seq()," died (", $job->exitstatus(), ")"); - $job->set_endtime(::now()); - my $sshlogin = $job->sshlogin(); - $sshlogin->dec_jobs_running(); - if($job->should_be_retried()) { - # Free up file handles - $job->free_ressources(); - } else { - # The job is done - $sshlogin->inc_jobs_completed(); - # Free the jobslot - $job->free_slot(); - if($opt::timeout and not $job->exitstatus()) { - # Update average runtime for timeout only for successful jobs - $Global::timeoutq->update_median_runtime($job->runtime()); - } - if($opt::keeporder) { - $job->print_earlier_jobs(); - } else { - $job->print(); - } - if($job->should_we_halt() eq "now") { - # Kill children - ::kill_sleep_seq($job->pid()); - ::killall(); - ::wait_and_exit($Global::halt_exitstatus); - } - } - $job->cleanup(); - - if($opt::progress) { - my %progress = progress(); - ::status_no_nl("\r",$progress{'status'}); + if($job->should_we_halt() eq "now") { + # Kill children + ::kill_sleep_seq($job->pid()); + ::killall(); + ::wait_and_exit($Global::halt_exitstatus); } } + $job->cleanup(); + + if($opt::progress) { + my %progress = progress(); + ::status_no_nl("\r",$progress{'status'}); + } + debug("run", "done "); - return wantarray ? @pids_reaped : $total_reaped; + return $stiff; } @@ -4123,8 +4136,11 @@ sub __USAGE__ {} sub killall { # Kill all jobs by killing their process groups - + # Uses: + # $Global::start_no_new_jobs = we are stopping + # $Global::killall = Flag to not run reaper $Global::start_no_new_jobs ||= 1; + # Do not reap killed children: Ignore them instead $Global::killall ||= 1; kill_sleep_seq(keys %Global::running); } @@ -4145,35 +4161,35 @@ sub kill_sleep_seq { } sub kill_sleep { + # Kill pids with a signal and wait a while for them to die + # Input: + # $signal = signal to send to @pids + # $sleep_max = number of ms to sleep at most before returning + # @pids = pids to kill (actually process groups) + # Uses: + # $Global::killall = set by killall() to avoid calling reaper + # Returns: + # @pids = pids still alive my ($signal, $sleep_max, @pids) = @_; ::debug("kill","kill_sleep $signal ",(join " ",sort @pids),"\n"); kill $signal, @pids; my $sleepsum = 0; my $sleep = 0.001; - my @dead; while(@pids and $sleepsum < $sleep_max) { if($Global::killall) { # Killall => don't run reaper - my $stiff; - while (($stiff = waitpid(-1, &WNOHANG)) > 0) { - # remove $stiff from @pids - @pids = grep { $_ != $stiff } @pids; + while(waitpid(-1, &WNOHANG) > 0) { $sleep = $sleep/2+0.001; } - } elsif(@dead = reaper()) { - # Remove reaped pids - for my $stiff (@dead) { - @pids = grep { $_ != $stiff } @pids; - } + } elsif(reapers()) { $sleep = $sleep/2+0.001; } - @pids = grep { kill( 0, $_) } @pids; $sleep *= 1.1; ::usleep($sleep); $sleepsum += $sleep; - # Remove dead children - @pids = grep { kill( 0, $_) } @pids; + # Keep only living children + @pids = grep { kill(0, $_) } @pids; } return @pids; } @@ -4188,7 +4204,7 @@ sub wait_and_exit { killall(); } for (keys %Global::unkilled_children) { - # Kill any (non-jobs) children + # Kill any (non-jobs) children (e.g. reserved processes) kill 9, $_; waitpid($_,0); delete $Global::unkilled_children{$_}; @@ -5095,8 +5111,7 @@ sub reap_usleep { # $ms/2+0.001 if children reaped # $ms*1.1 if no children reaped my $ms = shift; - if(reaper()) { - while(reaper()) {} + if(reapers()) { if(not $Global::total_completed % 100) { if($opt::timeout) { # Force cleaning the timeout queue for every 1000 jobs @@ -6302,7 +6317,7 @@ sub simultaneous_sshlogin_limit { my $serverlogin = $self->serverlogin(); ::warning("ssh to $serverlogin only allows ". "for $ssh_limit simultaneous logins.", - "You may raise this by changing ". + "You may raise this by changing", "/etc/ssh/sshd_config:MaxStartups and MaxSessions on $serverlogin.", "You can also try --sshdelay 0.1", "Using only ".($ssh_limit-1)." connections ". @@ -6316,9 +6331,12 @@ sub simultaneous_sshlogin_limit { sub simultaneous_sshlogin { # Using $sshlogin try to see if we can do $wanted_processes # simultaneous logins - # (ssh host echo simultaneouslogin & ssh host echo simultaneouslogin & ...)|grep simul|wc -l + # (ssh host echo simul-login & ssh host echo simul-login & ...) | + # grep simul|wc -l + # Input: + # $wanted_processes = Try for this many logins in parallel # Returns: - # Number of succesful logins + # $ssh_limit = Number of succesful parallel logins local $/ = "\n"; my $self = shift; my $wanted_processes = shift; @@ -6326,7 +6344,8 @@ sub simultaneous_sshlogin { my $serverlogin = $self->serverlogin(); my $sshdelay = $opt::sshdelay ? "sleep $opt::sshdelay;" : ""; # TODO sh -c wrapper to work for csh - my $cmd = "$sshdelay$sshcmd $serverlogin -- echo simultaneouslogin &1 &"x$wanted_processes; + my $cmd = ("$sshdelay$sshcmd $serverlogin -- ". + "echo simultaneouslogin &1 &")x$wanted_processes; ::debug("init", "Trying $wanted_processes logins at $serverlogin\n"); open (my $simul_fh, "-|", "($cmd)|grep simultaneouslogin | wc -l") or ::die_bug("simultaneouslogin"); @@ -6343,8 +6362,10 @@ sub set_ncpus { sub user_requested_processes { # Parse the number of processes that the user asked for using -j + # Input: + # $opt_P = string formatted as for -P # Returns: - # the number of processes to run on this sshlogin + # $processes = the number of processes to run on this sshlogin my $self = shift; my $opt_P = shift; my $processes; @@ -6390,6 +6411,11 @@ sub user_requested_processes { } sub ncpus { + # Number of CPU threads + # --use_sockets_instead_of_threads = count socket instead + # --use_cores_instead_of_threads = count physical cores instead + # Returns: + # $ncpus = number of cpu (threads) on this sshlogin local $/ = "\n"; my $self = shift; if(not defined $self->{'ncpus'}) { @@ -6886,6 +6912,8 @@ sub sct_tru64() { } sub sshcommand { + # Returns: + # $sshcommand = the command (incl options) to run when using ssh my $self = shift; if (not defined $self->{'sshcommand'}) { $self->sshcommand_of_sshlogin(); @@ -6894,6 +6922,8 @@ sub sshcommand { } sub serverlogin { + # Returns: + # $sshcommand = the command (incl options) to run when using ssh my $self = shift; if (not defined $self->{'serverlogin'}) { $self->sshcommand_of_sshlogin(); @@ -6902,14 +6932,15 @@ sub serverlogin { } sub sshcommand_of_sshlogin { + # Compute ssh command and serverlogin from sshlogin # 'server' -> ('ssh -S /tmp/parallel-ssh-RANDOM/host-','server') # 'user@server' -> ('ssh','user@server') # 'myssh user@server' -> ('myssh','user@server') # 'myssh -l user server' -> ('myssh -l user','server') # '/usr/bin/myssh -l user server' -> ('/usr/bin/myssh -l user','server') - # Returns: - # sshcommand - defaults to 'ssh' - # login@host + # Sets: + # $self->{'sshcommand'} + # $self->{'serverlogin'} my $self = shift; my ($sshcmd, $serverlogin); # If $opt::ssh is unset, use $PARALLEL_SSH or 'ssh' @@ -6963,7 +6994,7 @@ sub sshcommand_of_sshlogin { sub control_path_dir { # Returns: - # path to directory + # $control_path_dir = dir of control path (for -M) my $self = shift; if(not defined $self->{'control_path_dir'}) { $self->{'control_path_dir'} = @@ -7051,6 +7082,8 @@ sub cleanup_cmd { sub rsync { # rsync 3.1.x uses protocol 31 which is unsupported by 2.5.7. # If the version >= 3.1.0: downgrade to protocol 30 + # Returns: + # $rsync = "rsync" or "rsync --protocol 30" if(not $rsync) { my @out = `rsync --version`; for (@out) { @@ -7117,8 +7150,8 @@ sub unget { sub empty { my $self = shift; - my $empty = (not @{$self->{'unget'}}) - && $self->{'commandlinequeue'}->empty(); + my $empty = (not @{$self->{'unget'}}) && + $self->{'commandlinequeue'}->empty(); ::debug("run", "JobQueue->empty $empty "); return $empty; } @@ -7487,7 +7520,7 @@ sub grouped { open(my $fdr,"<", $self->fh($fdno,'name')) || ::die_bug("fdr: Cannot open ".$self->fh($fdno,'name')); $self->set_fh($fdno,'r',$fdr); - # Unlink if required + # Unlink if not debugging $Global::debug or ::rm($self->fh($fdno,"unlink")); } } @@ -9993,12 +10026,12 @@ sub replaced { sub replace_placeholders { # Replace foo{}bar with fooargbar - # Uses: - # @Arg::arg = arguments as strings to be use in {= =} # Input: # $targetref = command as shell words # $quote = should everything be quoted? # $quote_arg = should replaced arguments be quoted? + # Uses: + # @Arg::arg = arguments as strings to be use in {= =} # Returns: # @target with placeholders replaced my $self = shift; @@ -10524,7 +10557,8 @@ sub unget { sub empty { my $self = shift; - my $empty = (not @{$self->{'unget'}}) && $self->{'arg_queue'}->empty(); + my $empty = (not @{$self->{'unget'}}) && + $self->{'arg_queue'}->empty(); ::debug("run", "CommandLineQueue->empty $empty"); return $empty; } @@ -10745,8 +10779,8 @@ sub unget { sub empty { my $self = shift; - my $empty = not @{$self->{'unget'}}; - $empty &&= $self->{'arg_sub_queue'}->empty(); + my $empty = (not @{$self->{'unget'}}) && + $self->{'arg_sub_queue'}->empty(); ::debug("run", "RecordQueue->empty $empty"); return $empty; } @@ -10821,8 +10855,8 @@ sub unget { sub empty { my $self = shift; - my $empty = (not @{$self->{'unget'}} and - $self->{'arg_sub_queue'}->empty()); + my $empty = (not @{$self->{'unget'}}) && + $self->{'arg_sub_queue'}->empty(); ::debug("run", "RecordColQueue->empty $empty"); return $empty; } @@ -10907,8 +10941,8 @@ sub unget { sub empty { my $self = shift; - my $empty = (not @Global::unget_argv - and not @{$self->{'unget'}}); + my $empty = (not @Global::unget_argv) && + not @{$self->{'unget'}}; for my $fh (@{$self->{'fhs'}}) { $empty &&= eof($fh); } diff --git a/src/sql b/src/sql index 98996848..18fa8de3 100755 --- a/src/sql +++ b/src/sql @@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20181122; + $Global::version = 20181124; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index 4b45e843..9caebeb2 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -854,6 +854,17 @@ par_empty_input_on_stdin() { true | stdout parallel --shuf echo } +par_tee_too_many_args() { + echo '### Fail if there are more arguments than --jobs' + seq 11 |parallel -k --tag --pipe -j4 --tee grep {} ::: {1..4} + seq 11 |parallel -k --tag --pipe -j4 --tee grep {} ::: {1..5} +} + +par_space_envvar() { + echo "### bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'" + export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK' +} + export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | LC_ALL=C sort | parallel -j6 --tag -k --joblog +/tmp/jl-`basename $0` '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index a1c17840..963b92fc 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -354,7 +354,6 @@ par_long_line_remote() { parallel -j1 -S lo -N 10000 echo {} |wc } - export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | LC_ALL=C sort | parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-30s.sh b/testsuite/tests-to-run/parallel-local-30s.sh index 958311cc..269f531d 100755 --- a/testsuite/tests-to-run/parallel-local-30s.sh +++ b/testsuite/tests-to-run/parallel-local-30s.sh @@ -151,7 +151,7 @@ par_test_detected_shell() { tmp="/tmp/test_unknown_shell_$shell" cp $(which "$shell") "$tmp" chmod +x "$tmp" - $tmp -c 'ppar -Dinit echo ::: 1; true' | + $tmp -c 'parallel -Dinit echo ::: 1; true' | grep Global::shell rm "$tmp" } diff --git a/testsuite/tests-to-run/parallel-local-mem.sh b/testsuite/tests-to-run/parallel-local-mem.sh index 2515367f..e7f53b3e 100755 --- a/testsuite/tests-to-run/parallel-local-mem.sh +++ b/testsuite/tests-to-run/parallel-local-mem.sh @@ -20,7 +20,7 @@ export -f perl5.14parallel par_2gb_records_N() { echo '### bug #44358: 2 GB records cause problems for -N' - echo '5 GB version: Eats 12.5 GB' + echo '5 GB version: Eats 12.5 GB RAM + 4 GB Swap' (gendata 5000MB; echo FOO; gendata 3000MB; echo FOO; gendata 1000MB;) | @@ -33,7 +33,7 @@ par_2gb_records_N() { perl5.14parallel --pipe --recend FOO -N2 --block 1g -k LANG=c wc -c echo '### -L >4GB'; - echo 'Eats 12.5 GB'; + echo 'Eats 12.5 GB RAM + 6 GB Swap'; (head -c 5000MB /dev/zero; echo FOO; head -c 3000MB /dev/zero; echo FOO; head -c 1000MB /dev/zero;) | diff --git a/testsuite/tests-to-run/parallel-local-race02.sh b/testsuite/tests-to-run/parallel-local-race02.sh index 28890cce..725d1b6c 100644 --- a/testsuite/tests-to-run/parallel-local-race02.sh +++ b/testsuite/tests-to-run/parallel-local-race02.sh @@ -125,6 +125,22 @@ par_linebuffer_tag_slow_output() { parallel --delay 0.5 -j0 --tag --line-buffer halfline ::: a b } +par_continuous_output() { + # After the first batch, each jobs should output when it finishes. + # Old versions delayed output by $jobslots jobs + doit() { + echo "Test delayed output with '$1'" + echo "-u is optimal but hard to reach, due to non-mixing" + seq 10 | + parallel -j1 $1 --delay 1 -N0 echo | + parallel -j4 $1 -N0 'sleep 0.6;date' | + timestamp -dd | + perl -pe 's/(.).*/$1/' + } + export -f doit + parallel -k doit ::: '' -u +} + export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | sort | # parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-ssh3.sh b/testsuite/tests-to-run/parallel-local-ssh3.sh index 205d987c..c7639c5c 100644 --- a/testsuite/tests-to-run/parallel-local-ssh3.sh +++ b/testsuite/tests-to-run/parallel-local-ssh3.sh @@ -40,11 +40,6 @@ echo '### bug #45906: {= in header =}' parallel --rpl '{G} $_=lc($_)' -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: RETURNFILE45906; ls returnfile45906 -echo '### bug #45907: --header : + --return {header}' - rm returnfile45907; - ppar --header : -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: G returnfile45907; - ls returnfile45907 - echo "### bug #47608: parallel --nonall -S lo 'echo ::: ' blocks" parallel --nonall -S lo 'echo ::: ' @@ -59,6 +54,13 @@ echo '### bug #49404: "Max jobs to run" does not equal the number of jobs specif stdout parallel -S 16/lo --progress true ::: {1..10} | grep /.10 EOF +par_header_in_return() { + echo '### bug #45907: --header : + --return {header}' + rm returnfile45907 + parallel --header : -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: G returnfile45907 + ls returnfile45907 +} + par_trc_with_space() { echo '### Test --trc with space added in filename' cd diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh index f2c37eb6..4b481fef 100644 --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -153,11 +153,25 @@ par_env_parallel_big_env() { env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK } +par_no_route_to_host() { + echo '### no route to host with | and -j0 causes inf loop' + via_parallel() { + seq 11 | stdout parallel -j0 -S 192.168.1.199 echo + } + export -f via_parallel + raw() { + stdout ssh 192.168.1.199 echo + } + export -f raw + + parallel -k ::: raw via_parallel +} + 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 | compgen -A function | grep par_ | sort -r | # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1' - parallel --joblog /tmp/jl-`basename $0` -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/\[\d\d\d+\]:/[XXX]:/' diff --git a/testsuite/tests-to-run/parallel-local13.sh b/testsuite/tests-to-run/parallel-local13.sh index 59e761b2..e9b5a0b3 100644 --- a/testsuite/tests-to-run/parallel-local13.sh +++ b/testsuite/tests-to-run/parallel-local13.sh @@ -255,13 +255,13 @@ echo 'Because of -t these lines can be flipped around therefore sort' stdout parallel -k -X -s30 -t echo < stairs.xi | sort echo '### -t echo this plus that < space.xi' stdout xargs -t echo this plus that < space.xi -stdout parallel -k -t echo this plus that < space.xi +stdout parallel -k -t echo this plus that < space.xi | sort echo '### -n1 printf "@%s@\n" < empty.xi' stdout xargs -n1 printf "@%s@\n" < empty.xi stdout parallel -k -n1 printf "@%s@\n" < empty.xi echo '### -n2 -t echo < foobar.xi' stdout xargs -n2 -t echo < foobar.xi -stdout parallel -k -n2 -t echo < foobar.xi +stdout parallel -k -n2 -t echo < foobar.xi | sort EOF diff --git a/testsuite/tests-to-run/parallel-local164.sh b/testsuite/tests-to-run/parallel-local164.sh index 8075d543..7c713c64 100644 --- a/testsuite/tests-to-run/parallel-local164.sh +++ b/testsuite/tests-to-run/parallel-local164.sh @@ -133,7 +133,4 @@ echo 'bug #34241: --pipe should not spawn unneeded processes - part 2' echo No .par should exist; stdout ls *.par -echo "bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'" - export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK' - EOF diff --git a/testsuite/tests-to-run/parallel-tutorial.sh b/testsuite/tests-to-run/parallel-tutorial.sh index baf454a6..1eb60ad2 100644 --- a/testsuite/tests-to-run/parallel-tutorial.sh +++ b/testsuite/tests-to-run/parallel-tutorial.sh @@ -82,6 +82,9 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/ s{rsync error: some files/attrs were not transferred .*\n}{}; s{.* GtkDialog .*\n}{}; ' | + perl -ne '/GTK2_RC_FILES/ and next; + /GTK_RC_FILES/ and next; + print' | uniq # 3+3 .par files (from --files), 1 .tms-file from tmux attach find {$TMPDIR,/var/tmp,/tmp}/{fif,tms,par[^a]}* -mmin -10 2>/dev/null | wc -l diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index ce5b268d..a2ec62ee 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -1251,11 +1251,9 @@ par_PARALLEL_ENV OK as file par_PARALLEL_ENV ### PARALLEL_ENV as fifo par_PARALLEL_ENV OK as fifo par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero -par_X_eta_div_zero +par_X_eta_div_zero 0 par_X_eta_div_zero Computers / CPU cores / Max jobs to run par_X_eta_div_zero 0:local / 0 / 0 -par_X_eta_div_zero -par_X_eta_div_zero Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete par_append_joblog ### can you append to a joblog using + par_append_joblog 1 par_append_joblog 1 @@ -1485,6 +1483,9 @@ 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 979 980 5875 par_slow_pipe_regexp 25022 25022 150131 +par_space_envvar ### bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu' +par_space_envvar echo 'space in envvar OK' +par_space_envvar space in envvar OK par_tagstring_pipe bug #50228: --pipe --tagstring broken par_tagstring_pipe 1 1000 1000 3893 par_tagstring_pipe 2 1000 1000 5000 @@ -1519,6 +1520,14 @@ par_tee 4 -l 122853 par_tee 4 -c 815290 par_tee 5 -l 122853 par_tee 5 -c 815290 +par_tee_too_many_args ### Fail if there are more arguments than --jobs +par_tee_too_many_args 1 1 +par_tee_too_many_args 1 10 +par_tee_too_many_args 1 11 +par_tee_too_many_args 2 2 +par_tee_too_many_args 3 3 +par_tee_too_many_args 4 4 +par_tee_too_many_args parallel: Error: --tee requres --jobs to be higher. Try --jobs 0. par_testquote ash "#&/ par_testquote ash ()*=?' par_testquote bash "#&/ diff --git a/testsuite/wanted-results/parallel-local-100s b/testsuite/wanted-results/parallel-local-100s index 6e70b593..817eb3dc 100644 --- a/testsuite/wanted-results/parallel-local-100s +++ b/testsuite/wanted-results/parallel-local-100s @@ -372,30 +372,6 @@ par_test_build_and_install test -d "parallel-00000000" || mkdir "parallel-000000 par_test_build_and_install (cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \ par_test_build_and_install am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) par_test_build_and_install make[0]: Entering directory '~/privat/parallel/src' -par_test_build_and_install pod2man --release='00000000' --center='parallel' \ -par_test_build_and_install --section=1 ./sql > ./sql.1n \ -par_test_build_and_install && mv ./sql.1n ./sql.1 \ -par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1" -par_test_build_and_install pod2html --title "GNU SQL" ./sql > ./sql.htmln \ -par_test_build_and_install && mv ./sql.htmln ./sql.html \ -par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html" -par_test_build_and_install rm -f ./pod2htm* -par_test_build_and_install pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \ -par_test_build_and_install && mv ./niceload.htmln ./niceload.html \ -par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html" -par_test_build_and_install rm -f ./pod2htm* -par_test_build_and_install pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \ -par_test_build_and_install && mv ./parcat.htmln ./parcat.html \ -par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html" -par_test_build_and_install rm -f ./pod2htm* -par_test_build_and_install pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \ -par_test_build_and_install && mv ./parset.htmln ./parset.html \ -par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html" -par_test_build_and_install rm -f ./pod2htm* -par_test_build_and_install pod2texi --output=./sql.texi ./sql \ -par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi" -par_test_build_and_install pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \ -par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf" par_test_build_and_install make[0]: Leaving directory '~/privat/parallel/src' par_test_build_and_install test -n "" \ par_test_build_and_install || find "parallel-00000000" -type d ! -perm -755 \ diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 7eefb323..f71a7713 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -27,8 +27,8 @@ par_interactive sleep 0.1; echo opt-p 2 ?...n par_interactive sleep 0.1; echo opt-p 3 ?...y par_interactive spawn /tmp/parallel-script-for-expect par_k ### Test -k -par_k parallel: Warning: Only enough file handles to run 9 jobs in parallel. -par_k parallel: Warning: Running 'parallel -j0 -N 9 --pipe parallel -j0' or +par_k parallel: Warning: Only enough file handles to run 8 jobs in parallel. +par_k parallel: Warning: Running 'parallel -j0 -N 8 --pipe parallel -j0' or par_k parallel: Warning: raising 'ulimit -n' or 'nofile' in /etc/security/limits.conf par_k parallel: Warning: or /proc/sys/fs/file-max may help. par_k begin diff --git a/testsuite/wanted-results/parallel-local-mem b/testsuite/wanted-results/parallel-local-mem index 6b3739ea..e556a5cd 100644 --- a/testsuite/wanted-results/parallel-local-mem +++ b/testsuite/wanted-results/parallel-local-mem @@ -15,7 +15,7 @@ par_2gb_record_reading Eats 4.7 GB par_2gb_record_reading parallel: Warning: --blocksize >= 2G causes problems. Using 2G-1. par_2gb_record_reading 2300000004 par_2gb_records_N ### bug #44358: 2 GB records cause problems for -N -par_2gb_records_N 5 GB version: Eats 12.5 GB +par_2gb_records_N 5 GB version: Eats 12.5 GB RAM + 4 GB Swap par_2gb_records_N parallel: Warning: A record was longer than 1000000000. Increasing to --blocksize 1300000001. par_2gb_records_N parallel: Warning: A record was longer than 1300000001. Increasing to --blocksize 1690000003. par_2gb_records_N parallel: Warning: A record was longer than 1690000003. Increasing to --blocksize 2147483647. @@ -28,7 +28,7 @@ par_2gb_records_N parallel: Warning: A record was longer than 1690000003. Increa par_2gb_records_N 4600000007 par_2gb_records_N 1000000001 par_2gb_records_N ### -L >4GB -par_2gb_records_N Eats 12.5 GB +par_2gb_records_N Eats 12.5 GB RAM + 6 GB Swap par_2gb_records_N parallel: Warning: A record was longer than 1000000000. Increasing to --blocksize 1300000001. par_2gb_records_N parallel: Warning: A record was longer than 1300000001. Increasing to --blocksize 1690000003. par_2gb_records_N parallel: Warning: A record was longer than 1690000003. Increasing to --blocksize 2147483647. diff --git a/testsuite/wanted-results/parallel-local-race02 b/testsuite/wanted-results/parallel-local-race02 index 6e7e945a..831ad3e5 100644 --- a/testsuite/wanted-results/parallel-local-race02 +++ b/testsuite/wanted-results/parallel-local-race02 @@ -11,6 +11,30 @@ Control case: Burn for 2.9 seconds stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 -q perl -e "while(1){ }" ::: 1 | \grep -q CPUTIME=1 1=OK 1 +par_continuous_output Test delayed output with '' +par_continuous_output -u is optimal but hard to reach, due to non-mixing +par_continuous_output 4 +par_continuous_output 0 +par_continuous_output 0 +par_continuous_output 0 +par_continuous_output 1 +par_continuous_output 1 +par_continuous_output 1 +par_continuous_output 1 +par_continuous_output 1 +par_continuous_output 0 +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 4 +par_continuous_output 0 +par_continuous_output 0 +par_continuous_output 0 +par_continuous_output 0 +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 parallel par_hostgroup parallel diff --git a/testsuite/wanted-results/parallel-local-ssh1 b/testsuite/wanted-results/parallel-local-ssh1 index 58ac2fb2..d1e61ca6 100644 --- a/testsuite/wanted-results/parallel-local-ssh1 +++ b/testsuite/wanted-results/parallel-local-ssh1 @@ -28,7 +28,7 @@ echo '### Stop if all hosts are filtered and there are no hosts left to run on' ### Stop if all hosts are filtered and there are no hosts left to run on stdout parallel --filter-hosts -S no-such.host echo ::: 1 parallel: Warning: Removed no-such.host. -parallel: Error: There are no hosts left to run on. +parallel: Error: Cannot run any jobs. echo '### Can csh propagate a variable containing \n'; export A=$(seq 3); parallel -S csh@lo --env A bash -c \''echo "$A"'\' ::: dummy ### Can csh propagate a variable containing \n 1 diff --git a/testsuite/wanted-results/parallel-local-ssh3 b/testsuite/wanted-results/parallel-local-ssh3 index 6de7dda2..39e084f3 100644 --- a/testsuite/wanted-results/parallel-local-ssh3 +++ b/testsuite/wanted-results/parallel-local-ssh3 @@ -20,10 +20,6 @@ echo '### bug #45906: {= in header =}' ### bug #45906: {= in header =} rm -f returnfile45906; parallel --rpl '{G} $_=lc($_)' -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: RETURNFILE45906; ls returnfile45906 returnfile45906 -echo '### bug #45907: --header : + --return {header}' -### bug #45907: --header : + --return {header} - rm returnfile45907; ppar --header : -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: G returnfile45907; ls returnfile45907 -returnfile45907 echo "### bug #47608: parallel --nonall -S lo 'echo ::: ' blocks" ### bug #47608: parallel --nonall -S lo 'echo ::: ' blocks parallel --nonall -S lo 'echo ::: ' @@ -39,6 +35,8 @@ echo '### bug #49404: "Max jobs to run" does not equal the number of jobs specif should give 10 running jobs stdout parallel -S 16/lo --progress true ::: {1..10} | grep /.10 1:lo / 16 / 10 +par_header_in_return ### bug #45907: --header : + --return {header} +par_header_in_return returnfile45907 par_hostgroup_only_on_args ### Auto add hostgroup if given on on argument par_hostgroup_only_on_args parallel: Warning: Adding hostgroups: sh@lo par_hostgroup_only_on_args sh diff --git a/testsuite/wanted-results/parallel-local-ssh8 b/testsuite/wanted-results/parallel-local-ssh8 index 2abe1215..672f8034 100644 --- a/testsuite/wanted-results/parallel-local-ssh8 +++ b/testsuite/wanted-results/parallel-local-ssh8 @@ -27,7 +27,7 @@ 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 ^^^^^^^^ Not found is OK par_path_remote_csh parallel: Warning: Removed lo. -par_path_remote_csh parallel: Error: There are no hosts left to run on. +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_retries_1 ### Test of --retries - it should run 13 jobs in total diff --git a/testsuite/wanted-results/parallel-local-ssh9 b/testsuite/wanted-results/parallel-local-ssh9 index ccb5f63f..c2e167d6 100644 --- a/testsuite/wanted-results/parallel-local-ssh9 +++ b/testsuite/wanted-results/parallel-local-ssh9 @@ -54,6 +54,14 @@ par_propagate_env ** test_csh_filter par_propagate_env FOO=test_csh_filter par_propagate_env HOME=~ par_propagate_env ** bug #41805 done +par_no_route_to_host ### no route to host with | and -j0 causes inf loop +par_no_route_to_host ssh: connect to host 192.168.1.199 port 22: No route to host +par_no_route_to_host parallel: Warning: ssh to 192.168.1.199 only allows for 0 simultaneous logins. +par_no_route_to_host parallel: Warning: You may raise this by changing +par_no_route_to_host parallel: Warning: /etc/ssh/sshd_config:MaxStartups and MaxSessions on 192.168.1.199. +par_no_route_to_host parallel: Warning: You can also try --sshdelay 0.1 +par_no_route_to_host parallel: Warning: Using only -1 connections to avoid race conditions. +par_no_route_to_host parallel: Error: Cannot run any jobs. par_ksh_embed --embed par_ksh_embed Redirect the output to a file and add your changes at the end: par_ksh_embed /usr/local/bin/parallel --embed > new_script diff --git a/testsuite/wanted-results/parallel-local13 b/testsuite/wanted-results/parallel-local13 index 26024b73..4959fd87 100644 --- a/testsuite/wanted-results/parallel-local13 +++ b/testsuite/wanted-results/parallel-local13 @@ -1342,9 +1342,9 @@ echo '### -t echo this plus that < space.xi' stdout xargs -t echo this plus that < space.xi echo this plus that this plus that -stdout parallel -k -t echo this plus that < space.xi -echo this plus that '' +stdout parallel -k -t echo this plus that < space.xi | sort echo this plus that ' ' +echo this plus that '' this plus that this plus that echo '### -n1 printf "@%s@\n" < empty.xi' @@ -1365,7 +1365,7 @@ echo foo bar foo bar echo baz ugh baz ugh -stdout parallel -k -n2 -t echo < foobar.xi +stdout parallel -k -n2 -t echo < foobar.xi | sort echo 'foo bar' 'baz ' echo ugh foo bar baz diff --git a/testsuite/wanted-results/parallel-local164 b/testsuite/wanted-results/parallel-local164 index 31970125..c266210b 100644 --- a/testsuite/wanted-results/parallel-local164 +++ b/testsuite/wanted-results/parallel-local164 @@ -314,8 +314,3 @@ bug #34241: --pipe should not spawn unneeded processes - part 2 2 No .par should exist ls: cannot access '*.par': No such file or directory -echo "bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'" -bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu' - export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK' -echo 'space in envvar OK' -space in envvar OK diff --git a/testsuite/wanted-results/parallel-local23 b/testsuite/wanted-results/parallel-local23 index 2a79e7e8..a2543d8d 100644 --- a/testsuite/wanted-results/parallel-local23 +++ b/testsuite/wanted-results/parallel-local23 @@ -61,7 +61,7 @@ echo '### Check that 4 processes are really used' echo '### --version must have higher priority than retired options' ### --version must have higher priority than retired options $NICEPAR --version -g -Y -U -W -T | tail -GNU parallel 20181024 +GNU parallel 20181124 Copyright (C) 2007-2018 Ole Tange and Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. diff --git a/testsuite/wanted-results/parallel-polarhome b/testsuite/wanted-results/parallel-polarhome index 9d8db6e8..92c2ecfe 100644 --- a/testsuite/wanted-results/parallel-polarhome +++ b/testsuite/wanted-results/parallel-polarhome @@ -6,15 +6,12 @@ MAXTIME=50 RETRIES=2 MAXPROC=11 MAXINNERPROC=3 < alpha 7d4 < syllable -13d9 -< debian-ppc -28,32d21 +28,29d24 < dragonfly < vax -< ultrix +31d25 < minix -< irix -34,35d23 +34,35d27 < beaglebone < cubieboard2 ### Copy commands to servers @@ -27,6 +24,7 @@ bin/parallel solaris copy solaris bin/parallel parallel bin/parallel openindiana copy openindiana bin/parallel parallel bin/parallel aix copy aix bin/parallel parallel bin/parallel hpux copy hpux bin/parallel parallel +bin/parallel debian-ppc copy debian-ppc bin/parallel parallel bin/parallel suse copy suse bin/parallel parallel bin/parallel solaris-x86 copy solaris-x86 bin/parallel parallel bin/parallel mandriva copy mandriva bin/parallel parallel @@ -41,6 +39,8 @@ bin/parallel netbsd copy netbsd bin/parallel parallel bin/parallel openbsd copy openbsd bin/parallel parallel bin/parallel freebsd copy freebsd bin/parallel parallel bin/parallel debian copy debian bin/parallel parallel +bin/parallel ultrix copy ultrix bin/parallel parallel +bin/parallel irix copy irix bin/parallel parallel bin/parallel hurd copy hurd bin/parallel parallel bin/parallel minix copy minix bin/parallel parallel bin/env_parallel qnx copy qnx bin/env_parallel env_parallel @@ -52,6 +52,7 @@ 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 aix copy aix bin/env_parallel env_parallel bin/env_parallel hpux copy hpux bin/env_parallel env_parallel +bin/env_parallel debian-ppc copy debian-ppc bin/env_parallel env_parallel bin/env_parallel suse copy suse bin/env_parallel env_parallel bin/env_parallel solaris-x86 copy solaris-x86 bin/env_parallel env_parallel bin/env_parallel mandriva copy mandriva bin/env_parallel env_parallel @@ -66,6 +67,8 @@ bin/env_parallel netbsd copy netbsd bin/env_parallel env_parallel bin/env_parallel openbsd copy openbsd bin/env_parallel env_parallel bin/env_parallel freebsd copy freebsd bin/env_parallel env_parallel bin/env_parallel debian copy debian bin/env_parallel env_parallel +bin/env_parallel ultrix copy ultrix bin/env_parallel env_parallel +bin/env_parallel irix copy irix bin/env_parallel env_parallel bin/env_parallel hurd copy hurd bin/env_parallel env_parallel 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 @@ -77,6 +80,7 @@ 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 aix copy aix bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash hpux copy hpux bin/env_parallel.ash env_parallel.ash +bin/env_parallel.ash debian-ppc copy debian-ppc bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash suse copy suse bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash solaris-x86 copy solaris-x86 bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash mandriva copy mandriva bin/env_parallel.ash env_parallel.ash @@ -91,6 +95,8 @@ bin/env_parallel.ash netbsd copy netbsd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash openbsd copy openbsd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash freebsd copy freebsd bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash debian copy debian bin/env_parallel.ash env_parallel.ash +bin/env_parallel.ash ultrix copy ultrix bin/env_parallel.ash env_parallel.ash +bin/env_parallel.ash irix copy irix bin/env_parallel.ash env_parallel.ash bin/env_parallel.ash hurd copy hurd bin/env_parallel.ash env_parallel.ash 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 @@ -102,6 +108,7 @@ bin/env_parallel.bash solaris copy solaris bin/env_parallel.bash env_parallel.ba bin/env_parallel.bash openindiana copy openindiana bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash aix copy aix bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash hpux copy hpux bin/env_parallel.bash env_parallel.bash +bin/env_parallel.bash debian-ppc copy debian-ppc bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash suse copy suse bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash solaris-x86 copy solaris-x86 bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash mandriva copy mandriva bin/env_parallel.bash env_parallel.bash @@ -116,9 +123,10 @@ bin/env_parallel.bash netbsd copy netbsd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash openbsd copy openbsd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash freebsd copy freebsd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash debian copy debian bin/env_parallel.bash env_parallel.bash +bin/env_parallel.bash ultrix copy ultrix bin/env_parallel.bash env_parallel.bash +bin/env_parallel.bash irix copy irix bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash hurd copy hurd bin/env_parallel.bash env_parallel.bash bin/env_parallel.bash minix copy minix bin/env_parallel.bash env_parallel.bash -bin/env_parallel.bash minix cat: stdout: no space left on device 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 tru64 copy tru64 bin/env_parallel.csh env_parallel.csh @@ -128,6 +136,7 @@ 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 aix copy aix bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh hpux copy hpux bin/env_parallel.csh env_parallel.csh +bin/env_parallel.csh debian-ppc copy debian-ppc bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh suse copy suse bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh solaris-x86 copy solaris-x86 bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh mandriva copy mandriva bin/env_parallel.csh env_parallel.csh @@ -142,6 +151,8 @@ bin/env_parallel.csh netbsd copy netbsd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh openbsd copy openbsd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh freebsd copy freebsd bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh debian copy debian bin/env_parallel.csh env_parallel.csh +bin/env_parallel.csh ultrix copy ultrix bin/env_parallel.csh env_parallel.csh +bin/env_parallel.csh irix copy irix bin/env_parallel.csh env_parallel.csh bin/env_parallel.csh hurd copy hurd bin/env_parallel.csh env_parallel.csh 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 @@ -153,6 +164,7 @@ bin/env_parallel.dash solaris copy solaris bin/env_parallel.dash env_parallel.da bin/env_parallel.dash openindiana copy openindiana bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash aix copy aix bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash hpux copy hpux bin/env_parallel.dash env_parallel.dash +bin/env_parallel.dash debian-ppc copy debian-ppc bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash suse copy suse bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash solaris-x86 copy solaris-x86 bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash mandriva copy mandriva bin/env_parallel.dash env_parallel.dash @@ -167,6 +179,8 @@ bin/env_parallel.dash netbsd copy netbsd bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash openbsd copy openbsd bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash freebsd copy freebsd bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash debian copy debian bin/env_parallel.dash env_parallel.dash +bin/env_parallel.dash ultrix copy ultrix bin/env_parallel.dash env_parallel.dash +bin/env_parallel.dash irix copy irix bin/env_parallel.dash env_parallel.dash bin/env_parallel.dash hurd copy hurd bin/env_parallel.dash env_parallel.dash 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 @@ -178,6 +192,7 @@ bin/env_parallel.fish solaris copy solaris bin/env_parallel.fish env_parallel.fi bin/env_parallel.fish openindiana copy openindiana bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish aix copy aix bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish hpux copy hpux bin/env_parallel.fish env_parallel.fish +bin/env_parallel.fish debian-ppc copy debian-ppc bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish suse copy suse bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish solaris-x86 copy solaris-x86 bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish mandriva copy mandriva bin/env_parallel.fish env_parallel.fish @@ -192,6 +207,8 @@ bin/env_parallel.fish netbsd copy netbsd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish openbsd copy openbsd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish freebsd copy freebsd bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish debian copy debian bin/env_parallel.fish env_parallel.fish +bin/env_parallel.fish ultrix copy ultrix bin/env_parallel.fish env_parallel.fish +bin/env_parallel.fish irix copy irix bin/env_parallel.fish env_parallel.fish bin/env_parallel.fish hurd copy hurd bin/env_parallel.fish env_parallel.fish 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 @@ -203,6 +220,7 @@ 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 aix copy aix bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh hpux copy hpux bin/env_parallel.ksh env_parallel.ksh +bin/env_parallel.ksh debian-ppc copy debian-ppc bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh suse copy suse bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh solaris-x86 copy solaris-x86 bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh mandriva copy mandriva bin/env_parallel.ksh env_parallel.ksh @@ -217,6 +235,8 @@ bin/env_parallel.ksh netbsd copy netbsd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh openbsd copy openbsd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh freebsd copy freebsd bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh debian copy debian bin/env_parallel.ksh env_parallel.ksh +bin/env_parallel.ksh ultrix copy ultrix bin/env_parallel.ksh env_parallel.ksh +bin/env_parallel.ksh irix copy irix bin/env_parallel.ksh env_parallel.ksh bin/env_parallel.ksh hurd copy hurd bin/env_parallel.ksh env_parallel.ksh 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 @@ -228,6 +248,7 @@ bin/env_parallel.mksh solaris copy solaris bin/env_parallel.mksh env_parallel.mk bin/env_parallel.mksh openindiana copy openindiana bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh aix copy aix bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh hpux copy hpux bin/env_parallel.mksh env_parallel.mksh +bin/env_parallel.mksh debian-ppc copy debian-ppc bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh suse copy suse bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh solaris-x86 copy solaris-x86 bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh mandriva copy mandriva bin/env_parallel.mksh env_parallel.mksh @@ -242,6 +263,8 @@ bin/env_parallel.mksh netbsd copy netbsd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh openbsd copy openbsd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh freebsd copy freebsd bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh debian copy debian bin/env_parallel.mksh env_parallel.mksh +bin/env_parallel.mksh ultrix copy ultrix bin/env_parallel.mksh env_parallel.mksh +bin/env_parallel.mksh irix copy irix bin/env_parallel.mksh env_parallel.mksh bin/env_parallel.mksh hurd copy hurd bin/env_parallel.mksh env_parallel.mksh 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 @@ -253,6 +276,7 @@ bin/env_parallel.pdksh solaris copy solaris bin/env_parallel.pdksh env_parallel. bin/env_parallel.pdksh openindiana copy openindiana bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh aix copy aix bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh hpux copy hpux bin/env_parallel.pdksh env_parallel.pdksh +bin/env_parallel.pdksh debian-ppc copy debian-ppc bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh suse copy suse bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh solaris-x86 copy solaris-x86 bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh mandriva copy mandriva bin/env_parallel.pdksh env_parallel.pdksh @@ -267,6 +291,8 @@ bin/env_parallel.pdksh netbsd copy netbsd bin/env_parallel.pdksh env_parallel.pd bin/env_parallel.pdksh openbsd copy openbsd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh freebsd copy freebsd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh debian copy debian bin/env_parallel.pdksh env_parallel.pdksh +bin/env_parallel.pdksh ultrix copy ultrix bin/env_parallel.pdksh env_parallel.pdksh +bin/env_parallel.pdksh irix copy irix bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh hurd copy hurd bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.pdksh minix copy minix bin/env_parallel.pdksh env_parallel.pdksh bin/env_parallel.sh qnx copy qnx bin/env_parallel.sh env_parallel.sh @@ -278,6 +304,7 @@ 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 aix copy aix bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh hpux copy hpux bin/env_parallel.sh env_parallel.sh +bin/env_parallel.sh debian-ppc copy debian-ppc bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh suse copy suse bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh solaris-x86 copy solaris-x86 bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh mandriva copy mandriva bin/env_parallel.sh env_parallel.sh @@ -292,6 +319,8 @@ bin/env_parallel.sh netbsd copy netbsd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh openbsd copy openbsd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh freebsd copy freebsd bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh debian copy debian bin/env_parallel.sh env_parallel.sh +bin/env_parallel.sh ultrix copy ultrix bin/env_parallel.sh env_parallel.sh +bin/env_parallel.sh irix copy irix bin/env_parallel.sh env_parallel.sh bin/env_parallel.sh hurd copy hurd bin/env_parallel.sh env_parallel.sh 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 @@ -303,6 +332,7 @@ bin/env_parallel.tcsh solaris copy solaris bin/env_parallel.tcsh env_parallel.tc bin/env_parallel.tcsh openindiana copy openindiana bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh aix copy aix bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh hpux copy hpux bin/env_parallel.tcsh env_parallel.tcsh +bin/env_parallel.tcsh debian-ppc copy debian-ppc bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh suse copy suse bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh solaris-x86 copy solaris-x86 bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh mandriva copy mandriva bin/env_parallel.tcsh env_parallel.tcsh @@ -317,6 +347,8 @@ bin/env_parallel.tcsh netbsd copy netbsd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh openbsd copy openbsd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh freebsd copy freebsd bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh debian copy debian bin/env_parallel.tcsh env_parallel.tcsh +bin/env_parallel.tcsh ultrix copy ultrix bin/env_parallel.tcsh env_parallel.tcsh +bin/env_parallel.tcsh irix copy irix bin/env_parallel.tcsh env_parallel.tcsh bin/env_parallel.tcsh hurd copy hurd bin/env_parallel.tcsh env_parallel.tcsh 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 @@ -328,6 +360,7 @@ 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 aix copy aix bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh hpux copy hpux bin/env_parallel.zsh env_parallel.zsh +bin/env_parallel.zsh debian-ppc copy debian-ppc bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh suse copy suse bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh solaris-x86 copy solaris-x86 bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh mandriva copy mandriva bin/env_parallel.zsh env_parallel.zsh @@ -342,6 +375,8 @@ bin/env_parallel.zsh netbsd copy netbsd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh openbsd copy openbsd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh freebsd copy freebsd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh debian copy debian bin/env_parallel.zsh env_parallel.zsh +bin/env_parallel.zsh ultrix copy ultrix bin/env_parallel.zsh env_parallel.zsh +bin/env_parallel.zsh irix copy irix bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh hurd copy hurd bin/env_parallel.zsh env_parallel.zsh bin/env_parallel.zsh minix copy minix bin/env_parallel.zsh env_parallel.zsh bin/parcat qnx copy qnx bin/parcat parcat @@ -353,6 +388,7 @@ bin/parcat solaris copy solaris bin/parcat parcat bin/parcat openindiana copy openindiana bin/parcat parcat bin/parcat aix copy aix bin/parcat parcat bin/parcat hpux copy hpux bin/parcat parcat +bin/parcat debian-ppc copy debian-ppc bin/parcat parcat bin/parcat suse copy suse bin/parcat parcat bin/parcat solaris-x86 copy solaris-x86 bin/parcat parcat bin/parcat mandriva copy mandriva bin/parcat parcat @@ -367,6 +403,8 @@ bin/parcat netbsd copy netbsd bin/parcat parcat bin/parcat openbsd copy openbsd bin/parcat parcat bin/parcat freebsd copy freebsd bin/parcat parcat bin/parcat debian copy debian bin/parcat parcat +bin/parcat ultrix copy ultrix bin/parcat parcat +bin/parcat irix copy irix bin/parcat parcat bin/parcat hurd copy hurd bin/parcat parcat bin/parcat minix copy minix bin/parcat parcat bin/stdout qnx copy qnx bin/stdout stdout @@ -378,6 +416,7 @@ bin/stdout solaris copy solaris bin/stdout stdout bin/stdout openindiana copy openindiana bin/stdout stdout bin/stdout aix copy aix bin/stdout stdout bin/stdout hpux copy hpux bin/stdout stdout +bin/stdout debian-ppc copy debian-ppc bin/stdout stdout bin/stdout suse copy suse bin/stdout stdout bin/stdout solaris-x86 copy solaris-x86 bin/stdout stdout bin/stdout mandriva copy mandriva bin/stdout stdout @@ -392,6 +431,8 @@ bin/stdout netbsd copy netbsd bin/stdout stdout bin/stdout openbsd copy openbsd bin/stdout stdout bin/stdout freebsd copy freebsd bin/stdout stdout bin/stdout debian copy debian bin/stdout stdout +bin/stdout ultrix copy ultrix bin/stdout stdout +bin/stdout irix copy irix bin/stdout stdout bin/stdout hurd copy hurd bin/stdout stdout bin/stdout minix copy minix bin/stdout stdout Done copying @@ -406,10 +447,13 @@ Done copying aix Works on aix7 centos Works on centos.polarhome.com debian Works on debian +debian-ppc Works on debian-ppc freebsd Syntax error: Bad fd number hpux Works on hpux64 hpux-ia64 Works on hpux-ia64 hurd Works on hurd +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix Unknown open() mode '>&' at /home/t/tange/bin/parallel line 2458. macosx Works on macosx.polarhome.com mandriva Works on mandriva.polarhome.com miros Works on miros.polarhome.com @@ -445,6 +489,8 @@ centos 1 centos 1 debian 1 debian 2 +debian-ppc 1 +debian-ppc 1 freebsd Syntax error: Bad fd number hpux 1 hpux 1 @@ -452,6 +498,9 @@ hpux-ia64 1 hpux-ia64 1 hurd hurd 1 +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix Unknown open() mode '>&' at /home/t/tange/bin/parallel line 2458. +irix Unknown open() mode '>&' at /home/t/tange/bin/parallel line 2458. macosx 2 macosx 2 mandriva 1 @@ -498,6 +547,8 @@ centos 1 centos 1 debian 2 debian 2 +debian-ppc 1 +debian-ppc 1 freebsd Syntax error: Bad fd number hpux 1 hpux 1 @@ -505,6 +556,9 @@ hpux-ia64 2 hpux-ia64 1 hurd 1 hurd 1 +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix Unknown open() mode '>&' at /home/t/tange/bin/parallel line 2458. +irix Unknown open() mode '>&' at /home/t/tange/bin/parallel line 2458. macosx 2 macosx 2 mandriva 1 @@ -561,6 +615,8 @@ centos at /home/t/tange/bin/parallel line 0000 centos OK readonly tmp debian Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. debian OK readonly tmp +debian-ppc Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. +debian-ppc OK readonly tmp freebsd Syntax error: Bad fd number hpux Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 hpux OK readonly tmp @@ -569,6 +625,8 @@ hpux-ia64 at /home/t/tange/bin/parallel line 0000 hpux-ia64 OK readonly tmp hurd Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. hurd OK readonly tmp +irix Undefined subroutine &main::decode_base64 called at -e line 1. +irix open3: exec of bzip2 -dc failed at -e line 1 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 mandriva Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 @@ -607,6 +665,7 @@ tru64 at /home/t/tange/bin/parallel line 0000 tru64 OK readonly tmp ubuntu Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. ubuntu OK readonly tmp +ultrix open3: wtr should not be null at -e line 1 unixware UX:sh (/bin/sh): ERROR: source: Not found unixware UX:env: ERROR: No such file or directory: bash echo @@ -630,6 +689,8 @@ centos test funcA centos bash only A debian test funcA debian bash only A +debian-ppc test funcA +debian-ppc bash only A freebsd Syntax error: Bad fd number hpux test funcA hpux bash only A @@ -637,6 +698,8 @@ hpux-ia64 test funcA hpux-ia64 bash only A hurd test funcA hurd bash only A +irix Undefined subroutine &main::decode_base64 called at -e line 1. +irix open3: exec of bzip2 -dc failed at -e line 1 macosx test funcA macosx bash only A mandriva test funcA @@ -673,6 +736,7 @@ tru64 test funcA tru64 bash only A ubuntu test funcA ubuntu bash only A +ultrix open3: wtr should not be null at -e line 1 unixware test funcA unixware UX:sh (/bin/sh): ERROR: source: Not found unixware UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 3: `(' unexpected @@ -701,6 +765,8 @@ centos test funcB centos bash only B debian test funcB debian bash only B +debian-ppc test funcB +debian-ppc bash only B freebsd test funcB freebsd bash only B hpux test funcB @@ -709,6 +775,8 @@ hpux-ia64 test funcB hpux-ia64 bash only B hurd test funcB hurd bash only B +irix Undefined subroutine &main::decode_base64 called at -e line 1. +irix open3: exec of bzip2 -dc failed at -e line 1 macosx test funcB macosx bash only B mandriva test funcB @@ -744,6 +812,7 @@ tru64 test funcB tru64 bash only B ubuntu test funcB ubuntu bash only B +ultrix open3: wtr should not be null at -e line 1 unixware test funcB unixware bash only B echo @@ -792,6 +861,17 @@ debian /home/t/tange/.profile debian /home/t/tange/.cshrc debian /home/t/tange/.tcshrc debian install-OK +debian-ppc Installed env_parallel in: +debian-ppc /home/t/tange/.bashrc +debian-ppc /home/t/tange/.shrc +debian-ppc /home/t/tange/.zshenv +debian-ppc /home/t/tange/.config/fish/config.fish +debian-ppc /home/t/tange/.kshrc +debian-ppc /home/t/tange/.mkshrc +debian-ppc /home/t/tange/.profile +debian-ppc /home/t/tange/.cshrc +debian-ppc /home/t/tange/.tcshrc +debian-ppc install-OK freebsd Syntax error: Bad fd number hpux Installed env_parallel in: hpux /home/t/tange/.bashrc @@ -827,6 +907,8 @@ hurd /home/t/tange/.profile hurd /home/t/tange/.cshrc hurd /home/t/tange/.tcshrc hurd install-OK +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix env: bash: No such file or directory macosx Installed env_parallel in: macosx /Users/tange/.bashrc macosx /Users/tange/.shrc @@ -1020,10 +1102,13 @@ unixware UX:env: ERROR: No such file or directory: bash aix env_parallel run-OK centos env_parallel run-OK debian env_parallel run-OK +debian-ppc env_parallel run-OK freebsd Syntax error: Bad fd number hpux env_parallel run-OK hpux-ia64 env_parallel run-OK hurd env_parallel run-OK +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix env: bash: No such file or directory macosx env_parallel run-OK mandriva env_parallel run-OK miros env_parallel run-OK @@ -1049,13 +1134,18 @@ tru64 env_parallel run-OK ubuntu env_parallel run-OK unixware env_parallel run-OK unixware UX:sh (/bin/sh): ERROR: source: Not found +parallel: Warning: Starting 11 processes took > 2 sec. +parallel: Warning: Consider adjusting -j. Press CTRL-C to stop. aix reading from process substitution OK centos reading from process substitution OK debian reading from process substitution OK +debian-ppc reading from process substitution OK freebsd Syntax error: "(" unexpected (expecting word) hpux reading from process substitution OK hpux-ia64 reading from process substitution OK hurd reading from process substitution OK +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix env: bash: No such file or directory macosx reading from process substitution OK mandriva reading from process substitution OK miros reading from process substitution OK @@ -1075,6 +1165,7 @@ sshwithpass minix reading from process substitution OK suse reading from process substitution OK tru64 reading from process substitution OK ubuntu reading from process substitution OK +ultrix Missing name for redirect. unixware UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `(' unexpected # Test empty command name in process list test_empty_cmd() { @@ -1093,6 +1184,8 @@ centos ### Test if empty command name in process list causes problems centos OK_with_empty_cmd debian ### Test if empty command name in process list causes problems debian OK_with_empty_cmd +debian-ppc ### Test if empty command name in process list causes problems +debian-ppc OK_with_empty_cmd freebsd ### Test if empty command name in process list causes problems freebsd OK_with_empty_cmd hpux ### Test if empty command name in process list causes problems @@ -1101,6 +1194,8 @@ hpux-ia64 ### Test if empty command name in process list causes problems hpux-ia64 OK_with_empty_cmd hurd ### Test if empty command name in process list causes problems hurd OK_with_empty_cmd +irix open3: exec of bzip2 -dc failed at -e line 1 +irix Undefined subroutine &main::decode_base64 called at -e line 1. macosx ### Test if empty command name in process list causes problems macosx OK_with_empty_cmd mandriva ### Test if empty command name in process list causes problems @@ -1136,6 +1231,7 @@ tru64 ### Test if empty command name in process list causes problems tru64 OK_with_empty_cmd ubuntu ### Test if empty command name in process list causes problems ubuntu OK_with_empty_cmd +ultrix open3: wtr should not be null at -e line 1 unixware ### Test if empty command name in process list causes problems unixware OK_with_empty_cmd echo @@ -1152,10 +1248,14 @@ unixware OK_with_empty_cmd aix 1 2 1 2 3 1 2 3 4 centos 1 2 1 2 3 1 2 3 4 debian 1 2 1 2 3 1 2 3 4 +debian-ppc 1 2 1 2 3 1 2 3 4 freebsd Syntax error: Bad fd number hpux hpux-ia64 1 2 1 2 3 1 2 3 4 hurd 1 2 1 2 3 1 2 3 4 +irix +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix /usr/freeware/bin/bash: line 1: parset: command not found macosx 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 @@ -1183,10 +1283,14 @@ unixware UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `arr=' unexpec aix 2 2 3 2 3 4 centos 2 2 3 2 3 4 debian 2 2 3 2 3 4 +debian-ppc 2 2 3 2 3 4 freebsd Syntax error: Bad fd number hpux hpux-ia64 1 2 1 2 1 2 hurd 2 2 3 2 3 4 +irix +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix /usr/freeware/bin/bash: line 1: env_parset: command not found macosx 2 2 3 2 3 4 mandriva 2 2 3 2 3 4 miros 1 2 1 2 1 2 @@ -1229,10 +1333,14 @@ unixware UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `arr=' unexpec aix 1 2,1 2 3,1 2 3 4 centos 1 2,1 2 3,1 2 3 4 debian 1 2,1 2 3,1 2 3 4 +debian-ppc 1 2,1 2 3,1 2 3 4 freebsd Syntax error: Bad fd number hpux ,, hpux-ia64 1 2,1 2 3,1 2 3 4 hurd 1 2,1 2 3,1 2 3 4 +irix ,, +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix /usr/freeware/bin/bash: line 1: parset: command not found macosx 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 @@ -1260,10 +1368,14 @@ unixware UX:sh (/bin/sh): ERROR: source: Not found aix 2,2 3,2 3 4 centos 2,2 3,2 3 4 debian 2,2 3,2 3 4 +debian-ppc 2,2 3,2 3 4 freebsd Syntax error: Bad fd number hpux ,, hpux-ia64 1 2,1 2,1 2 hurd 2,2 3,2 3 4 +irix ,, +irix /usr/freeware/bin/bash: line 1: /home/t/tange/setupenv: No such file or directory +irix /usr/freeware/bin/bash: line 1: env_parset: command not found macosx 2,2 3,2 3 4 mandriva 2,2 3,2 3 4 miros 1 2,1 2,1 2 diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index bf604cea..bc618270 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -839,8 +839,6 @@ DISPLAY GOPATH GPG_AGENT_INFO GS_LIB -GTK2_RC_FILES -GTK_RC_FILES HISTCONTROL HOME JAVA_HOME