From 3b7b988c16eda853fce68d2cc5252c1deb08ca03 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Tue, 23 Jul 2019 09:00:09 +0200 Subject: [PATCH] Released as 20190722 ('Ryugu') --- NEWS | 29 ++ README | 20 +- configure | 20 +- configure.ac | 2 +- doc/haikus | 6 +- doc/release_new_version | 5 +- packager/obs/home:tange/parallel/.osc/_files | 11 +- .../home:tange/parallel/.osc/parallel.spec | 2 +- .../obs/home:tange/parallel/parallel.spec | 2 +- src/niceload | 2 +- src/parallel | 4 +- src/parallel.pod | 37 +- src/sql | 2 +- testsuite/Makefile | 46 +- testsuite/tests-to-run/parallel-local-mem.sh | 3 + testsuite/tests-to-run/parallel-polarhome.sh | 3 +- testsuite/tests-to-run/parallel-tutorial.sh | 4 +- testsuite/wanted-results/parallel-polarhome | 412 +++++++++--------- testsuite/wanted-results/parallel-tutorial | 4 +- 19 files changed, 345 insertions(+), 269 deletions(-) diff --git a/NEWS b/NEWS index c4a055f6..7c1bb7ae 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,32 @@ +20190722 + +* {= uq; =} causes the replacement string to be unquoted. Example: + parallel echo '{=uq;=}.jpg' ::: '*' + +* --tagstring {=...=} is now evaluated for each line with --linebuffer. + +* Use -J ./profile to read a profile in current dir. + +* Speedup of startup by 40%: Find the parent shell differerently on + GNU/Linux, cache information about the CPU and which setpgrp method + to use to make GNU Parallel start 40% faster. + +* $PARALLEL_SSHLOGIN can be used in the command line. + +* Occasionally sane: Simple usage of GNU parallel + https://vfoley.xyz/parallel/ + +* How to run multiple bash scripts in parallel + https://techieroop.com/how-to-run-multiple-bash-scripts-in-parallel/ + +* Announcing Oracle Solaris 11.4 SRU10 + https://blogs.oracle.com/solaris/announcing-oracle-solaris-114-sru10 + +* Руководство по использованию GNU Parallel https://zalinux.ru/?p=2623 + +* Bug fixes and man page updates. + + 20190622 * --shard can now take a column name and optionally a perl diff --git a/README b/README index fe0bf0a7..2d5f81c9 100644 --- a/README +++ b/README @@ -54,11 +54,11 @@ document. Full installation of GNU Parallel is as simple as: - wget https://ftpmirror.gnu.org/parallel/parallel-20190622.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20190622.tar.bz2.sig - gpg parallel-20190622.tar.bz2.sig - bzip2 -dc parallel-20190622.tar.bz2 | tar xvf - - cd parallel-20190622 + wget https://ftpmirror.gnu.org/parallel/parallel-20190722.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20190722.tar.bz2.sig + gpg parallel-20190722.tar.bz2.sig + bzip2 -dc parallel-20190722.tar.bz2 | tar xvf - + cd parallel-20190722 ./configure && make && sudo make install @@ -67,11 +67,11 @@ Full installation of GNU Parallel is as simple as: If you are not root you can add ~/bin to your path and install in ~/bin and ~/share: - wget https://ftpmirror.gnu.org/parallel/parallel-20190622.tar.bz2 - wget https://ftpmirror.gnu.org/parallel/parallel-20190622.tar.bz2.sig - gpg parallel-20190622.tar.bz2.sig - bzip2 -dc parallel-20190622.tar.bz2 | tar xvf - - cd parallel-20190622 + wget https://ftpmirror.gnu.org/parallel/parallel-20190722.tar.bz2 + wget https://ftpmirror.gnu.org/parallel/parallel-20190722.tar.bz2.sig + gpg parallel-20190722.tar.bz2.sig + bzip2 -dc parallel-20190722.tar.bz2 | tar xvf - + cd parallel-20190722 ./configure --prefix=$HOME && make && make install Or if your system lacks 'make' you can simply copy src/parallel diff --git a/configure b/configure index 7761229b..7e3b8b8b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for parallel 20190622. +# Generated by GNU Autoconf 2.69 for parallel 20190722. # # Report bugs to . # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20190622' -PACKAGE_STRING='parallel 20190622' +PACKAGE_VERSION='20190722' +PACKAGE_STRING='parallel 20190722' PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_URL='' @@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures parallel 20190622 to adapt to many kinds of systems. +\`configure' configures parallel 20190722 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1281,7 +1281,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20190622:";; + short | recursive ) echo "Configuration of parallel 20190722:";; esac cat <<\_ACEOF @@ -1357,7 +1357,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20190622 +parallel configure 20190722 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by parallel $as_me 20190622, which was +It was created by parallel $as_me 20190722, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2237,7 +2237,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20190622' + VERSION='20190722' cat >>confdefs.h <<_ACEOF @@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by parallel $as_me 20190622, which was +This file was extended by parallel $as_me 20190722, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2942,7 +2942,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -parallel config.status 20190622 +parallel config.status 20190722 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 63a57804..f0a3c431 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20190622], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20190722], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/haikus b/doc/haikus index 57eba02b..627f5db6 100644 --- a/doc/haikus +++ b/doc/haikus @@ -6,9 +6,6 @@ I love so much @GnuParallel to parallelize my SQL requests on @PostgreSQL Parallel is the BEST command. -- Nick @NickInfoSec -It is SUPER easy to speed up jobs from the command line w/ GNU parallel. - -- B3n @B3njaminHimes@twitter - GNU parallel really changed how I do a lot of data processing stuff -- Brendan Dolan-Gavitt @moyix@twitter @@ -44,6 +41,9 @@ It's the MapReduce of our generation! === Used === +It is SUPER easy to speed up jobs from the command line w/ GNU parallel. + -- B3n @B3njaminHimes@twitter + I want to make a shout-out for @GnuParallel, it's a work of beauty and power -- Cristian Consonni @CristianCantoro diff --git a/doc/release_new_version b/doc/release_new_version index a4856ee8..e9c37130 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -208,7 +208,7 @@ stable-bcc: Jesse Alama Subject: GNU Parallel 20190722 ('Ryugu') released <<[stable]>> -GNU Parallel 20190722 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ +GNU Parallel 20190722 ('Ryugu') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ <> @@ -218,7 +218,8 @@ See https://www.gnu.org/software/parallel/10-years-anniversary.html Quote of the month: -<<>> + It is SUPER easy to speed up jobs from the command line w/ GNU parallel. + -- B3n @B3njaminHimes@twitter New in this release: diff --git a/packager/obs/home:tange/parallel/.osc/_files b/packager/obs/home:tange/parallel/.osc/_files index cabb9d94..ac1b71a6 100644 --- a/packager/obs/home:tange/parallel/.osc/_files +++ b/packager/obs/home:tange/parallel/.osc/_files @@ -1,6 +1,11 @@ - + + - - + + + + + + diff --git a/packager/obs/home:tange/parallel/.osc/parallel.spec b/packager/obs/home:tange/parallel/.osc/parallel.spec index be4510f8..23c0e7b7 100644 --- a/packager/obs/home:tange/parallel/.osc/parallel.spec +++ b/packager/obs/home:tange/parallel/.osc/parallel.spec @@ -1,7 +1,7 @@ Summary: Shell tool for executing jobs in parallel Name: parallel -Version: 20190622 +Version: 20190722 Release: 1.3 License: GPL-3.0-or-later Group: Productivity/File utilities diff --git a/packager/obs/home:tange/parallel/parallel.spec b/packager/obs/home:tange/parallel/parallel.spec index be4510f8..23c0e7b7 100644 --- a/packager/obs/home:tange/parallel/parallel.spec +++ b/packager/obs/home:tange/parallel/parallel.spec @@ -1,7 +1,7 @@ Summary: Shell tool for executing jobs in parallel Name: parallel -Version: 20190622 +Version: 20190722 Release: 1.3 License: GPL-3.0-or-later Group: Productivity/File utilities diff --git a/src/niceload b/src/niceload index 71eb3cc9..a818feed 100755 --- a/src/niceload +++ b/src/niceload @@ -23,7 +23,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20190623; +$Global::version = 20190722; 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 43cbec86..2d2d837d 100755 --- a/src/parallel +++ b/src/parallel @@ -2047,7 +2047,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20190623; + $Global::version = 20190722; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -5151,7 +5151,6 @@ sub tmpname($) { sub tmpfifo() { # Find an unused name and mkfifo on it - # use POSIX qw(mkfifo); my $tmpfifo = tmpname("fif"); mkfifo($tmpfifo,0600); return $tmpfifo; @@ -8250,7 +8249,6 @@ sub remove_rec_sep($) { sub non_blocking_write($) { my $self = shift; my $something_written = 0; - # use POSIX qw(:errno_h); my $in = $self->fh(0,"w"); my $rv = syswrite($in, diff --git a/src/parallel.pod b/src/parallel.pod index ac8effb2..7fd8eb1d 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -105,7 +105,7 @@ B: Use B. B: Use B. -=item B<{}> +=item B<{}> (alpha testing) Input line. This replacement string will be replaced by a full line read from the input source. The input source is normally stdin @@ -279,6 +279,7 @@ perl quote a string =item Z<> B (or B) +(alpha testing) do not quote current replacement string =item Z<> B @@ -469,6 +470,30 @@ basename of input line. Use the replacement string I instead of B<{/.}> for basename of input line without extension. +=item B<--bin> I (alpha testing) + +Use I as binning key and bin input to the jobs. + +I is [column number|column name] [perlexpression] e.g. 3, +Address, 3 $_%=100, Address s/\D//g. + +Each input line is split using B<--colsep>. The value of the column is +put into $_, the perl expression is executed, the resulting value is +is the job slot that will be given the line. If the value is bigger +than the number of jobslots the value will be modulo number of jobslots. + +This is similar to B<--shard> but the hashing algorithm is a simple +modulo, which makes it predictible which jobslot will receive which +value. + +The performance is in the order of 100K rows per second. Faster if the +I is small (<10), slower if it is big (>100). + +B<--bin> requires B<--pipe> and a fixed numeric value for B<--jobs>. + +See also B<--shard>, B<--group-by>, B<--roundrobin>. + + =item B<--bg> Run command in background thus GNU B will not wait for @@ -1549,20 +1574,20 @@ on remote computers). Print the number of physical CPU cores and exit. -=item B<--number-of-cores> +=item B<--number-of-cores> (alpha testing) Print the number of physical CPU cores and exit (used by GNU B itself to determine the number of physical CPU cores on remote computers). -=item B<--number-of-sockets> +=item B<--number-of-sockets> (alpha testing) Print the number of filled CPU sockets and exit (used by GNU B itself to determine the number of filled CPU sockets on remote computers). -=item B<--number-of-threads> +=item B<--number-of-threads> (alpha testing) Print the number of hyperthreaded CPU cores and exit (used by GNU B itself to determine the number of hyperthreaded CPU cores @@ -2179,7 +2204,7 @@ I is small (<10), slower if it is big (>100). B<--shard> requires B<--pipe> and a fixed numeric value for B<--jobs>. -See also B<--group-by>, B<--roundrobin>. +See also B<--bin>, B<--group-by>, B<--roundrobin>. =item B<--shebang> @@ -2486,7 +2511,7 @@ to GNU B giving each child its own process group, which is then killed. Process groups are dependant on the tty. -=item B<--tag> +=item B<--tag> (alpha testing) Tag lines with arguments. Each output line will be prepended with the arguments and TAB (\t). When combined with B<--onall> or B<--nonall> diff --git a/src/sql b/src/sql index d171d9c7..cda4198f 100755 --- a/src/sql +++ b/src/sql @@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20190623; + $Global::version = 20190722; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/Makefile b/testsuite/Makefile index 200682af..0c527d1a 100644 --- a/testsuite/Makefile +++ b/testsuite/Makefile @@ -1,3 +1,4 @@ +### Full test set (except mem) testsuite: 3 true @@ -6,16 +7,32 @@ testsuite: 3 touch ~/.parallel/will-cite make stopvm +### Limited testsets - run once +# No 100s, mem, polarhome, tutorial 1: ../src/parallel tests-to-run/* wanted-results/* prereqlocal startdb prereqremote TRIES=1 time bash Start.sh '' '100s|mem|polarhome|tutorial' || true touch ~/.parallel/will-cite make stopvm +# Mem mem: ../src/parallel tests-to-run/*mem* wanted-results/*mem* prereqlocal time bash Start.sh mem NONE || true touch ~/.parallel/will-cite make stopvm +# Tutorial +tutorial: ../src/parallel tests-to-run/*tutorial* wanted-results/*tutorial* prereqlocal + TRIES=1 time bash Start.sh tutorial NONE || true + touch ~/.parallel/will-cite + make stopvm + +# 100s +100s: ../src/parallel tests-to-run/*100s* wanted-results/*100s* prereqlocal + time bash Start.sh 100s NONE || true + touch ~/.parallel/will-cite + make stopvm + +# Polarhome polarhome: polar true @@ -23,21 +40,31 @@ polar: ../src/parallel tests-to-run/*polar* wanted-results/*polar* prereqlocal time bash Start.sh polar NONE || true touch ~/.parallel/will-cite -testdb: ../src/parallel tests-to-run/*sql* wanted-results/*sql* prereqdb - time bash Start.sh sql NONE - +# *local* only local: testlocal true testlocal: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel time bash Start.sh local mem +# short and local short: testlocalshort true testlocalshort: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel TRIES=1 time bash Start.sh local mem'|'100s +# sql +testdb: ../src/parallel tests-to-run/*sql* wanted-results/*sql* prereqdb + time bash Start.sh sql NONE + +# Portable tests that runs everywhere +portable: + # Cache sudo password + sudo echo + time bash Portable.sh + +### Prerequisites prereqlocal: installparallel tcsh -c echo tcsh installed || (echo tcsh is required for testsuite; /bin/false) seq 1 2 >/dev/null || (echo seq is required for testsuite; /bin/false) @@ -73,15 +100,16 @@ stopvm: VBoxManage controlvm RedHat9-root:redhat9 savestate || true VBoxManage controlvm OracleXE savestate || true -installparallel: ../src/parallel - cd .. && make -j && sudo make -j install - startdb: #echo shutdown abort | sudo su - oracle -c "sqlplus / as sysdba" sudo parallel /etc/init.d/{} status '||' /etc/init.d/{} restart ::: postgresql mysql # oracle-xe VBoxManage startvm OracleXE || true parallel 'ping {} | read' ::: oracle11.tange.dk +### Distribution +installparallel: ../src/parallel + cd .. && make -j && sudo make -j install + clean: rm -rf input-files/random_dirs_no_newline rm -rf input-files/random_dirs_with_newline @@ -93,11 +121,7 @@ dist: mv /tmp/parallel.tar.bz2 parallel-$$(date +"%Y%m%d").tar.bz2 rsync -Havessh parallel-$$(date +"%Y%m%d").tar.bz2 download.savannah.nongnu.org:/releases/parallel/ -portable: - # Cache sudo password - sudo echo - time bash Portable.sh - +### Measure timings timings: tests-to-run/* ../src/parallel ls tests-to-run/*.sh | parallel echo /usr/bin/time -f "'%e\ %P'" bash >/tmp/timing.script stdout bash -x /tmp/timing.script | tee /tmp/timing.out diff --git a/testsuite/tests-to-run/parallel-local-mem.sh b/testsuite/tests-to-run/parallel-local-mem.sh index e7f53b3e..ed16679f 100755 --- a/testsuite/tests-to-run/parallel-local-mem.sh +++ b/testsuite/tests-to-run/parallel-local-mem.sh @@ -13,8 +13,11 @@ export -f gendata perl5.14parallel() { # Run GNU Parallel under perl 5.14 which does not support 64-bit very well + # Remove setpgrp_func because 5.14 may use another func + rm -f ~/.parallel/tmp/sshlogin/*/setpgrp_func PATH=input-files/perl-v5.14.2:$PATH PERL5LIB=input-files/perl-v5.14.2/lib input-files/perl-v5.14.2/perl `which parallel` "$@" + rm -f ~/.parallel/tmp/sshlogin/*/setpgrp_func } export -f perl5.14parallel diff --git a/testsuite/tests-to-run/parallel-polarhome.sh b/testsuite/tests-to-run/parallel-polarhome.sh index 1bd4b9f9..564f4b08 100644 --- a/testsuite/tests-to-run/parallel-polarhome.sh +++ b/testsuite/tests-to-run/parallel-polarhome.sh @@ -199,7 +199,8 @@ EOF print' } -env_parallel -u -S$MASTER doit ::: 1 +env_parallel -u -S$MASTER doit ::: 1 | + perl -pe 's:/home/(t/)?tange:~:g' # eval 'myfunc() { echo '$(perl -e 'print "x"x20000')'; }' # env_parallel myfunc ::: a | wc # OK diff --git a/testsuite/tests-to-run/parallel-tutorial.sh b/testsuite/tests-to-run/parallel-tutorial.sh index f9450c13..1f01e2a5 100644 --- a/testsuite/tests-to-run/parallel-tutorial.sh +++ b/testsuite/tests-to-run/parallel-tutorial.sh @@ -48,8 +48,6 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/ s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g; # /usr/bin/time -f %e s/^(\d+)\.\d+$/$1/; - # Base 64 string with quotes - s:['"'"'"\\+/a-z0-9=]{50,}:BASE64:ig; # --workdir ... s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g; # + cat ... | (Bash outputs these in random order) @@ -71,6 +69,8 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/ s/(std(out|err)|seq): Permission denied/$1: No such file or directory/; # Race condition s/^4-(middle|end)\n//; + # Base 64 string with quotes + s:['"'"'"\\+/a-z0-9=]{50,}(\s['"'"'"\\+/a-z0-9=]*)*:BASE64:ig; # Timings are often off s/^(\d)$/9/; s/^(\d\d)$/99/; diff --git a/testsuite/wanted-results/parallel-polarhome b/testsuite/wanted-results/parallel-polarhome index 085bd8d6..805fda68 100644 --- a/testsuite/wanted-results/parallel-polarhome +++ b/testsuite/wanted-results/parallel-polarhome @@ -500,60 +500,60 @@ unixware 1 ### Fails if tmpdir is R/O -aix Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: The file access permissions do not allow the specified action. at /home/t/tange/bin/parallel line 0000 +aix Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: The file access permissions do not allow the specified action. at ~/bin/parallel line 0000 aix OK readonly tmp centos Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable -centos at /home/t/tange/bin/parallel line 0000 +centos at ~/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 Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/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 Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000. debian-ppc OK readonly tmp -freebsd Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. +freebsd Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000. freebsd OK readonly tmp -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 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-ia64 Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable hpux-ia64 at /home/t/tange/bin/parallel line 0000 hpux-ia64 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 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 +mandriva Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 mandriva OK readonly tmp miros Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable -miros at /home/t/tange/bin/parallel line 0000 +miros at ~/bin/parallel line 0000 miros OK readonly tmp netbsd OK readonly tmp netbsd Invalid null command. netbsd Invalid null command. -openbsd Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 +openbsd Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 openbsd OK readonly tmp openindiana Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /u/t/tange/bin/parallel line 0000 openindiana OK readonly tmp -pidora Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. +pidora Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000. pidora OK readonly tmp -qnx Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 +qnx Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 qnx OK readonly tmp -raspbian Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 +raspbian Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 raspbian OK readonly tmp -redhat Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 +redhat Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 redhat OK readonly tmp scosysv Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable -scosysv at /home/t/tange/bin/parallel line 0000 +scosysv at ~/bin/parallel line 0000 scosysv OK readonly tmp solaris Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable -solaris at /home/t/tange/bin/parallel line 0000 +solaris at ~/bin/parallel line 0000 solaris OK readonly tmp solaris-x86 Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 solaris-x86 OK readonly tmp -suse Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000. +suse Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000. suse OK readonly tmp tru64 Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable -tru64 at /home/t/tange/bin/parallel line 0000 +tru64 at ~/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 Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000. ubuntu OK readonly tmp -unixware Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000 +unixware Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at ~/bin/parallel line 0000 unixware OK readonly tmp echo echo '### Does exporting a bash function make parallel fail?' @@ -662,7 +662,7 @@ miros test funcB miros bash only B netbsd test funcB netbsd bash only B -netbsd /home/t/tange/setupenv: line 9: syntax error: unexpected end of file +netbsd ~/setupenv: line 9: syntax error: unexpected end of file openbsd test funcB openbsd bash only B openindiana test funcB @@ -700,70 +700,70 @@ unixware bash only B (bash ksh mksh zsh only) aix Installed env_parallel in: -aix /home/t/tange/.bashrc -aix /home/t/tange/.shrc -aix /home/t/tange/.zshenv -aix /home/t/tange/.config/fish/config.fish -aix /home/t/tange/.kshrc -aix /home/t/tange/.mkshrc -aix /home/t/tange/.profile -aix /home/t/tange/.cshrc -aix /home/t/tange/.tcshrc +aix ~/.bashrc +aix ~/.shrc +aix ~/.zshenv +aix ~/.config/fish/config.fish +aix ~/.kshrc +aix ~/.mkshrc +aix ~/.profile +aix ~/.cshrc +aix ~/.tcshrc aix install-OK centos Installed env_parallel in: -centos /home/t/tange/.bashrc -centos /home/t/tange/.shrc -centos /home/t/tange/.zshenv -centos /home/t/tange/.config/fish/config.fish -centos /home/t/tange/.kshrc -centos /home/t/tange/.mkshrc -centos /home/t/tange/.profile -centos /home/t/tange/.cshrc -centos /home/t/tange/.tcshrc +centos ~/.bashrc +centos ~/.shrc +centos ~/.zshenv +centos ~/.config/fish/config.fish +centos ~/.kshrc +centos ~/.mkshrc +centos ~/.profile +centos ~/.cshrc +centos ~/.tcshrc centos install-OK debian Installed env_parallel in: -debian /home/t/tange/.bashrc -debian /home/t/tange/.shrc -debian /home/t/tange/.zshenv -debian /home/t/tange/.config/fish/config.fish -debian /home/t/tange/.kshrc -debian /home/t/tange/.mkshrc -debian /home/t/tange/.profile -debian /home/t/tange/.cshrc -debian /home/t/tange/.tcshrc +debian ~/.bashrc +debian ~/.shrc +debian ~/.zshenv +debian ~/.config/fish/config.fish +debian ~/.kshrc +debian ~/.mkshrc +debian ~/.profile +debian ~/.cshrc +debian ~/.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 ~/.bashrc +debian-ppc ~/.shrc +debian-ppc ~/.zshenv +debian-ppc ~/.config/fish/config.fish +debian-ppc ~/.kshrc +debian-ppc ~/.mkshrc +debian-ppc ~/.profile +debian-ppc ~/.cshrc +debian-ppc ~/.tcshrc debian-ppc install-OK freebsd Installed env_parallel in: -freebsd /home/t/tange/.bashrc -freebsd /home/t/tange/.shrc -freebsd /home/t/tange/.zshenv -freebsd /home/t/tange/.config/fish/config.fish -freebsd /home/t/tange/.kshrc -freebsd /home/t/tange/.mkshrc -freebsd /home/t/tange/.profile -freebsd /home/t/tange/.cshrc -freebsd /home/t/tange/.tcshrc +freebsd ~/.bashrc +freebsd ~/.shrc +freebsd ~/.zshenv +freebsd ~/.config/fish/config.fish +freebsd ~/.kshrc +freebsd ~/.mkshrc +freebsd ~/.profile +freebsd ~/.cshrc +freebsd ~/.tcshrc freebsd install-OK hpux Installed env_parallel in: -hpux /home/t/tange/.bashrc -hpux /home/t/tange/.shrc -hpux /home/t/tange/.zshenv -hpux /home/t/tange/.config/fish/config.fish -hpux /home/t/tange/.kshrc -hpux /home/t/tange/.mkshrc -hpux /home/t/tange/.profile -hpux /home/t/tange/.cshrc -hpux /home/t/tange/.tcshrc +hpux ~/.bashrc +hpux ~/.shrc +hpux ~/.zshenv +hpux ~/.config/fish/config.fish +hpux ~/.kshrc +hpux ~/.mkshrc +hpux ~/.profile +hpux ~/.cshrc +hpux ~/.tcshrc hpux install-OK hpux-ia64 Installed env_parallel in: hpux-ia64 /home/t/tange/.bashrc @@ -789,48 +789,48 @@ macosx /Users/tange/.cshrc macosx /Users/tange/.tcshrc macosx install-OK mandriva Installed env_parallel in: -mandriva /home/t/tange/.bashrc -mandriva /home/t/tange/.shrc -mandriva /home/t/tange/.zshenv -mandriva /home/t/tange/.config/fish/config.fish -mandriva /home/t/tange/.kshrc -mandriva /home/t/tange/.mkshrc -mandriva /home/t/tange/.profile -mandriva /home/t/tange/.cshrc -mandriva /home/t/tange/.tcshrc +mandriva ~/.bashrc +mandriva ~/.shrc +mandriva ~/.zshenv +mandriva ~/.config/fish/config.fish +mandriva ~/.kshrc +mandriva ~/.mkshrc +mandriva ~/.profile +mandriva ~/.cshrc +mandriva ~/.tcshrc mandriva install-OK miros Installed env_parallel in: -miros /home/t/tange/.bashrc -miros /home/t/tange/.shrc -miros /home/t/tange/.zshenv -miros /home/t/tange/.config/fish/config.fish -miros /home/t/tange/.kshrc -miros /home/t/tange/.mkshrc -miros /home/t/tange/.profile -miros /home/t/tange/.cshrc -miros /home/t/tange/.tcshrc +miros ~/.bashrc +miros ~/.shrc +miros ~/.zshenv +miros ~/.config/fish/config.fish +miros ~/.kshrc +miros ~/.mkshrc +miros ~/.profile +miros ~/.cshrc +miros ~/.tcshrc miros install-OK netbsd Installed env_parallel in: -netbsd /home/t/tange/.bashrc -netbsd /home/t/tange/.shrc -netbsd /home/t/tange/.zshenv -netbsd /home/t/tange/.config/fish/config.fish -netbsd /home/t/tange/.kshrc -netbsd /home/t/tange/.mkshrc -netbsd /home/t/tange/.profile -netbsd /home/t/tange/.cshrc -netbsd /home/t/tange/.tcshrc +netbsd ~/.bashrc +netbsd ~/.shrc +netbsd ~/.zshenv +netbsd ~/.config/fish/config.fish +netbsd ~/.kshrc +netbsd ~/.mkshrc +netbsd ~/.profile +netbsd ~/.cshrc +netbsd ~/.tcshrc netbsd install-OK openbsd Installed env_parallel in: -openbsd /home/t/tange/.bashrc -openbsd /home/t/tange/.shrc -openbsd /home/t/tange/.zshenv -openbsd /home/t/tange/.config/fish/config.fish -openbsd /home/t/tange/.kshrc -openbsd /home/t/tange/.mkshrc -openbsd /home/t/tange/.profile -openbsd /home/t/tange/.cshrc -openbsd /home/t/tange/.tcshrc +openbsd ~/.bashrc +openbsd ~/.shrc +openbsd ~/.zshenv +openbsd ~/.config/fish/config.fish +openbsd ~/.kshrc +openbsd ~/.mkshrc +openbsd ~/.profile +openbsd ~/.cshrc +openbsd ~/.tcshrc openbsd install-OK openindiana Installed env_parallel in: openindiana /u/t/tange/.bashrc @@ -844,70 +844,70 @@ openindiana /u/t/tange/.cshrc openindiana /u/t/tange/.tcshrc openindiana install-OK pidora Installed env_parallel in: -pidora /home/t/tange/.bashrc -pidora /home/t/tange/.shrc -pidora /home/t/tange/.zshenv -pidora /home/t/tange/.config/fish/config.fish -pidora /home/t/tange/.kshrc -pidora /home/t/tange/.mkshrc -pidora /home/t/tange/.profile -pidora /home/t/tange/.cshrc -pidora /home/t/tange/.tcshrc +pidora ~/.bashrc +pidora ~/.shrc +pidora ~/.zshenv +pidora ~/.config/fish/config.fish +pidora ~/.kshrc +pidora ~/.mkshrc +pidora ~/.profile +pidora ~/.cshrc +pidora ~/.tcshrc pidora install-OK qnx Installed env_parallel in: -qnx /home/t/tange/.bashrc -qnx /home/t/tange/.shrc -qnx /home/t/tange/.zshenv -qnx /home/t/tange/.config/fish/config.fish -qnx /home/t/tange/.kshrc -qnx /home/t/tange/.mkshrc -qnx /home/t/tange/.profile -qnx /home/t/tange/.cshrc -qnx /home/t/tange/.tcshrc +qnx ~/.bashrc +qnx ~/.shrc +qnx ~/.zshenv +qnx ~/.config/fish/config.fish +qnx ~/.kshrc +qnx ~/.mkshrc +qnx ~/.profile +qnx ~/.cshrc +qnx ~/.tcshrc qnx install-OK raspbian Installed env_parallel in: -raspbian /home/t/tange/.bashrc -raspbian /home/t/tange/.shrc -raspbian /home/t/tange/.zshenv -raspbian /home/t/tange/.config/fish/config.fish -raspbian /home/t/tange/.kshrc -raspbian /home/t/tange/.mkshrc -raspbian /home/t/tange/.profile -raspbian /home/t/tange/.cshrc -raspbian /home/t/tange/.tcshrc +raspbian ~/.bashrc +raspbian ~/.shrc +raspbian ~/.zshenv +raspbian ~/.config/fish/config.fish +raspbian ~/.kshrc +raspbian ~/.mkshrc +raspbian ~/.profile +raspbian ~/.cshrc +raspbian ~/.tcshrc raspbian install-OK redhat Installed env_parallel in: -redhat /home/t/tange/.bashrc -redhat /home/t/tange/.shrc -redhat /home/t/tange/.zshenv -redhat /home/t/tange/.config/fish/config.fish -redhat /home/t/tange/.kshrc -redhat /home/t/tange/.mkshrc -redhat /home/t/tange/.profile -redhat /home/t/tange/.cshrc -redhat /home/t/tange/.tcshrc +redhat ~/.bashrc +redhat ~/.shrc +redhat ~/.zshenv +redhat ~/.config/fish/config.fish +redhat ~/.kshrc +redhat ~/.mkshrc +redhat ~/.profile +redhat ~/.cshrc +redhat ~/.tcshrc redhat install-OK scosysv Installed env_parallel in: -scosysv /home/t/tange/.bashrc -scosysv /home/t/tange/.shrc -scosysv /home/t/tange/.zshenv -scosysv /home/t/tange/.config/fish/config.fish -scosysv /home/t/tange/.kshrc -scosysv /home/t/tange/.mkshrc -scosysv /home/t/tange/.profile -scosysv /home/t/tange/.cshrc -scosysv /home/t/tange/.tcshrc +scosysv ~/.bashrc +scosysv ~/.shrc +scosysv ~/.zshenv +scosysv ~/.config/fish/config.fish +scosysv ~/.kshrc +scosysv ~/.mkshrc +scosysv ~/.profile +scosysv ~/.cshrc +scosysv ~/.tcshrc scosysv install-OK solaris Installed env_parallel in: -solaris /home/t/tange/.bashrc -solaris /home/t/tange/.shrc -solaris /home/t/tange/.zshenv -solaris /home/t/tange/.config/fish/config.fish -solaris /home/t/tange/.kshrc -solaris /home/t/tange/.mkshrc -solaris /home/t/tange/.profile -solaris /home/t/tange/.cshrc -solaris /home/t/tange/.tcshrc +solaris ~/.bashrc +solaris ~/.shrc +solaris ~/.zshenv +solaris ~/.config/fish/config.fish +solaris ~/.kshrc +solaris ~/.mkshrc +solaris ~/.profile +solaris ~/.cshrc +solaris ~/.tcshrc solaris install-OK solaris-x86 Installed env_parallel in: solaris-x86 ~/.bashrc @@ -921,48 +921,48 @@ solaris-x86 ~/.cshrc solaris-x86 ~/.tcshrc solaris-x86 install-OK suse Installed env_parallel in: -suse /home/t/tange/.bashrc -suse /home/t/tange/.shrc -suse /home/t/tange/.zshenv -suse /home/t/tange/.config/fish/config.fish -suse /home/t/tange/.kshrc -suse /home/t/tange/.mkshrc -suse /home/t/tange/.profile -suse /home/t/tange/.cshrc -suse /home/t/tange/.tcshrc +suse ~/.bashrc +suse ~/.shrc +suse ~/.zshenv +suse ~/.config/fish/config.fish +suse ~/.kshrc +suse ~/.mkshrc +suse ~/.profile +suse ~/.cshrc +suse ~/.tcshrc suse install-OK tru64 Installed env_parallel in: -tru64 /home/t/tange/.bashrc -tru64 /home/t/tange/.shrc -tru64 /home/t/tange/.zshenv -tru64 /home/t/tange/.config/fish/config.fish -tru64 /home/t/tange/.kshrc -tru64 /home/t/tange/.mkshrc -tru64 /home/t/tange/.profile -tru64 /home/t/tange/.cshrc -tru64 /home/t/tange/.tcshrc +tru64 ~/.bashrc +tru64 ~/.shrc +tru64 ~/.zshenv +tru64 ~/.config/fish/config.fish +tru64 ~/.kshrc +tru64 ~/.mkshrc +tru64 ~/.profile +tru64 ~/.cshrc +tru64 ~/.tcshrc tru64 install-OK ubuntu Installed env_parallel in: -ubuntu /home/t/tange/.bashrc -ubuntu /home/t/tange/.shrc -ubuntu /home/t/tange/.zshenv -ubuntu /home/t/tange/.config/fish/config.fish -ubuntu /home/t/tange/.kshrc -ubuntu /home/t/tange/.mkshrc -ubuntu /home/t/tange/.profile -ubuntu /home/t/tange/.cshrc -ubuntu /home/t/tange/.tcshrc +ubuntu ~/.bashrc +ubuntu ~/.shrc +ubuntu ~/.zshenv +ubuntu ~/.config/fish/config.fish +ubuntu ~/.kshrc +ubuntu ~/.mkshrc +ubuntu ~/.profile +ubuntu ~/.cshrc +ubuntu ~/.tcshrc ubuntu install-OK unixware Installed env_parallel in: -unixware /home/t/tange/.bashrc -unixware /home/t/tange/.shrc -unixware /home/t/tange/.zshenv -unixware /home/t/tange/.config/fish/config.fish -unixware /home/t/tange/.kshrc -unixware /home/t/tange/.mkshrc -unixware /home/t/tange/.profile -unixware /home/t/tange/.cshrc -unixware /home/t/tange/.tcshrc +unixware ~/.bashrc +unixware ~/.shrc +unixware ~/.zshenv +unixware ~/.config/fish/config.fish +unixware ~/.kshrc +unixware ~/.mkshrc +unixware ~/.profile +unixware ~/.cshrc +unixware ~/.tcshrc unixware install-OK echo echo '### env_parallel echo env_parallel ::: run-OK' @@ -978,7 +978,6 @@ centos env_parallel run-OK debian env_parallel run-OK debian-ppc env_parallel run-OK freebsd env_parallel run-OK -freebsd Cannot fork: Resource temporarily unavailable hpux env_parallel run-OK hpux-ia64 env_parallel run-OK macosx env_parallel run-OK @@ -1080,7 +1079,7 @@ miros ### Test if empty command name in process list causes problems miros OK_with_empty_cmd netbsd ### Test if empty command name in process list causes problems netbsd OK_with_empty_cmd -netbsd /home/t/tange/setupenv: line 9: syntax error: unexpected end of file +netbsd ~/setupenv: line 9: syntax error: unexpected end of file openbsd ### Test if empty command name in process list causes problems openbsd OK_with_empty_cmd openindiana ### Test if empty command name in process list causes problems @@ -1151,10 +1150,6 @@ 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 Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable freebsd eval: 1: Syntax error: word unexpected (expecting ")") hpux hpux-ia64 1 2 1 2 1 2 @@ -1227,11 +1222,6 @@ centos 2,2 3,2 3 4 debian 2,2 3,2 3 4 debian-ppc 2,2 3,2 3 4 freebsd 2,2 3,2 3 4 -freebsd Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable -freebsd Cannot fork: Resource temporarily unavailable hpux ,, hpux-ia64 1 2,1 2,1 2 macosx 2,2 3,2 3 4 diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index 1acb3802..51338329 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -744,8 +744,7 @@ foo parallel --workdir . -S $SERVER1 pwd ::: "" parallel --workdir ... -S $SERVER1 pwd ::: "" /mnt/4tb/home/parallel -BASE64 -/mnt/4tb/home/parallel/.TMPWORKDIR +BASE64/mnt/4tb/home/parallel/.TMPWORKDIR parallel -S $SERVER1 --sshdelay 0.2 echo ::: 1 2 3 9 parallel --controlmaster -S $SERVER1 echo ::: 1 2 3 @@ -880,6 +879,7 @@ PARALLEL_HOME PARALLEL_PID PARALLEL_RSYNC_OPTS PARALLEL_SEQ +PARALLEL_SSHLOGIN PARALLEL_TMP PATH PERL_MB_OPT