diff --git a/README b/README index ad6fe8cf..bdb6ca34 100644 --- a/README +++ b/README @@ -40,9 +40,9 @@ document. Full installation of GNU Parallel is as simple as: - wget http://ftpmirror.gnu.org/parallel/parallel-20160622.tar.bz2 - bzip2 -dc parallel-20160622.tar.bz2 | tar xvf - - cd parallel-20160622 + wget http://ftpmirror.gnu.org/parallel/parallel-20160720.tar.bz2 + bzip2 -dc parallel-20160720.tar.bz2 | tar xvf - + cd parallel-20160720 ./configure && make && sudo make install @@ -51,9 +51,9 @@ 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 http://ftpmirror.gnu.org/parallel/parallel-20160622.tar.bz2 - bzip2 -dc parallel-20160622.tar.bz2 | tar xvf - - cd parallel-20160622 + wget http://ftpmirror.gnu.org/parallel/parallel-20160720.tar.bz2 + bzip2 -dc parallel-20160720.tar.bz2 | tar xvf - + cd parallel-20160720 ./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 e2e4b66d..e1e947ed 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 20160622. +# Generated by GNU Autoconf 2.69 for parallel 20160720. # # Report bugs to . # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20160622' -PACKAGE_STRING='parallel 20160622' +PACKAGE_VERSION='20160720' +PACKAGE_STRING='parallel 20160720' PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_URL='' @@ -1203,7 +1203,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 20160622 to adapt to many kinds of systems. +\`configure' configures parallel 20160720 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1269,7 +1269,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20160622:";; + short | recursive ) echo "Configuration of parallel 20160720:";; esac cat <<\_ACEOF @@ -1345,7 +1345,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20160622 +parallel configure 20160720 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1362,7 +1362,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 20160622, which was +It was created by parallel $as_me 20160720, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2225,7 +2225,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20160622' + VERSION='20160720' cat >>confdefs.h <<_ACEOF @@ -2867,7 +2867,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 20160622, which was +This file was extended by parallel $as_me 20160720, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2929,7 +2929,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 20160622 +parallel config.status 20160720 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 6486c72f..b6251627 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20160622], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20160720], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/release_new_version b/doc/release_new_version index 8fc19187..5d58ad4a 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -239,6 +239,10 @@ New in this release: * Selectively choosing what to export using --env now works for env_parallel (bash, csh, fish, ksh, pdksh, tcsh, zsh). +* --round-robin now gives more work to a job that processes faster instead of same amount to all jobs. + +* --pipepart works on block devices on GNU/Linux. + * <> * <> diff --git a/src/Makefile.in b/src/Makefile.in index 4379ae5c..eb842a2c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -78,7 +78,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ diff --git a/src/niceload b/src/niceload index 27d78c56..3d4733f8 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20160622; +$Global::version = 20160720; 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 c6c9ebb2..d9e25701 100755 --- a/src/parallel +++ b/src/parallel @@ -1208,7 +1208,7 @@ sub check_invalid_option_combinations { sub init_globals { # Defaults: - $Global::version = 20160704; + $Global::version = 20160720; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -3173,7 +3173,7 @@ sub parallelized_host_filtering { # command should never take > 10 sec. # --delay 0.1: If multiple sshlogins use the same proxy the delay # will make it less likely to overload the ssh daemon. - # --retries 3: If the ssh daemon it overloaded, try 3 times + # --retries 3: If the ssh daemon is overloaded, try 3 times my $cmd = "$0 -j0 --timeout 10 --joblog - --plain --delay 0.1 --retries 3 ". "--tag --tagstring '{1}' -0 --colsep '\t' -k eval '{2}' && true "; @@ -6396,7 +6396,7 @@ sub openoutputfiles { sub add_rm { # Files to remove when job is done my $self = shift; - push $self->{'unlink'}, @_; + push @{$self->{'unlink'}}, @_; } sub get_rm { @@ -10183,7 +10183,7 @@ sub run { if($lockretry >= 10) { ::die_bug("retry > 10: $DBI::errstr"); } - if($rv < 0){ + if($rv < 0 and $DBI::errstr){ ::error($DBI::errstr); ::wait_and_exit(255); } diff --git a/src/sql b/src/sql index 193e3be4..e3413f30 100755 --- a/src/sql +++ b/src/sql @@ -566,7 +566,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20160622; + $Global::version = 20160720; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/tests-to-run/parallel-local-30s.sh b/testsuite/tests-to-run/parallel-local-30s.sh index 5f299c63..5c9b0cc9 100644 --- a/testsuite/tests-to-run/parallel-local-30s.sh +++ b/testsuite/tests-to-run/parallel-local-30s.sh @@ -53,7 +53,7 @@ par_linebuffer_matters_compress_tag() { echo "### (--linebuffer) --compress --tag should give different output" random_data_with_id_prepended() { perl -pe 's/^/'$1'/' /dev/urandom | - pv -qL 300000 | head -c 1000000 + pv -qL 300000 | head -c 3000000 } export -f random_data_with_id_prepended diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index faba0297..c2cbf4d7 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -150,6 +150,8 @@ par_tcsh_man() { myscript=$(cat <<'_EOF' echo "### From man env_parallel" +# source `which env_parallel.tcsh` + alias myecho 'echo aliases' env_parallel myecho ::: work env_parallel -S server myecho ::: work @@ -407,7 +409,8 @@ par_tcsh_underscore() { myscript=$(cat <<'_EOF' echo "### Testing of --env _" -# . `which env_parallel.tcsh`; +# source `which env_parallel.tcsh`; + env_parallel --record-env; alias myecho "echo "\$"myvar "\$'myarray'" aliases"; set myvar="variables"; @@ -441,7 +444,8 @@ par_csh_underscore() { myscript=$(cat <<'_EOF' echo "### Testing of --env _" -# . `which env_parallel.csh`; +# source `which env_parallel.csh`; + env_parallel --record-env; alias myecho "echo "\$"myvar "\$'myarray'" aliases"; set myvar="variables"; @@ -743,4 +747,5 @@ _EOF export -f $(compgen -A function | grep par_) # Tested with -j1..8 # -j6 was fastest -compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1' +#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' +compgen -A function | grep par_ | sort | parallel --delay 0.1 -j10 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-polarhome.sh b/testsuite/tests-to-run/parallel-polarhome.sh index 434a0fa0..67e74ea2 100755 --- a/testsuite/tests-to-run/parallel-polarhome.sh +++ b/testsuite/tests-to-run/parallel-polarhome.sh @@ -6,8 +6,8 @@ P_ALL="vax freebsd solaris openbsd netbsd debian alpha aix redhat hpux ultrix mi P_NOTWORKING="vax alpha openstep" P_NOTWORKING_YET="ultrix irix" -P_WORKING="pidora raspbian tru64 solaris openindiana aix hpux qnx debian-ppc suse solaris-x86 mandriva ubuntu scosysv dragonfly unixware centos miros macosx hpux-ia64 redhat netbsd openbsd freebsd debian" -P_TEMPORARILY_BROKEN="minix syllable hurd dragonfly" +P_WORKING="pidora raspbian solaris openindiana aix hpux qnx debian-ppc suse solaris-x86 mandriva ubuntu scosysv unixware centos miros macosx redhat netbsd openbsd freebsd debian" +P_TEMPORARILY_BROKEN="minix tru64 syllable hurd hpux-ia64 dragonfly" P="$P_WORKING" POLAR=`parallel -k echo {}.polarhome.com ::: $P` diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index 8e4e448f..a3b2798d 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -195,29 +195,29 @@ par_fish_underscore aliases and arrays in functions work par_fish_underscore aliases and arrays in functions work par_fish_underscore aliases functions work par_fish_underscore aliases functions work -par_fish_underscore fish: Unknown command “myecho” -par_fish_underscore Standard input: myecho $myarray functions $argv -par_fish_underscore ^ -par_fish_underscore in function “myfunc”, -par_fish_underscore called on standard input, +par_fish_underscore fish: Unknown command 'myecho functions work' +par_fish_underscore fish: myecho $myarray functions $argv +par_fish_underscore ^ +par_fish_underscore in function “myfunc” +par_fish_underscore called on standard input par_fish_underscore with parameter list “work” par_fish_underscore par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore fish: Unknown command “myecho” -par_fish_underscore Standard input: myecho $myarray functions $argv -par_fish_underscore ^ -par_fish_underscore in function “myfunc”, -par_fish_underscore called on standard input, +par_fish_underscore fish: Unknown command 'myecho functions work' +par_fish_underscore fish: myecho $myarray functions $argv +par_fish_underscore ^ +par_fish_underscore in function “myfunc” +par_fish_underscore called on standard input par_fish_underscore with parameter list “work” par_fish_underscore par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore fish: Unknown command “myfunc” -par_fish_underscore Standard input: myfunc work -par_fish_underscore ^ +par_fish_underscore fish: Unknown command 'myfunc work' +par_fish_underscore fish: myfunc work +par_fish_underscore ^ par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc -par_fish_underscore fish: Unknown command “myfunc” -par_fish_underscore Standard input: myfunc work -par_fish_underscore ^ +par_fish_underscore fish: Unknown command 'myfunc work' +par_fish_underscore fish: myfunc work +par_fish_underscore ^ par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc par_ksh_funky 3 arg alias_works par_ksh_funky function_works @@ -361,6 +361,7 @@ par_tcsh_funky par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ par_tcsh_man ### tcsh par_tcsh_man ### From man env_parallel +par_tcsh_man #: Command not found. par_tcsh_man aliases work par_tcsh_man aliases work par_tcsh_man aliases work diff --git a/testsuite/wanted-results/parallel-local12 b/testsuite/wanted-results/parallel-local12 index eea55dd8..a5520626 100644 --- a/testsuite/wanted-results/parallel-local12 +++ b/testsuite/wanted-results/parallel-local12 @@ -48,7 +48,7 @@ please cite: url = {http://www.gnu.org/s/parallel}, year = {2011}, pages = {42-47}, - doi = {10.5281/zenodo.16303} + doi = {http://dx.doi.org/10.5281/zenodo.16303} } (Feel free to use \nocite{Tange2011a}) diff --git a/testsuite/wanted-results/parallel-polarhome b/testsuite/wanted-results/parallel-polarhome index 7c4b884e..bc38a737 100644 --- a/testsuite/wanted-results/parallel-polarhome +++ b/testsuite/wanted-results/parallel-polarhome @@ -10,9 +10,6 @@ raspbian.polarhome.com ### Run the test on raspbian.polarhome.com raspbian.polarhome.com Works on raspbian.polarhome.com raspbian.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000 raspbian.polarhome.com OK -copy_and_test tru64.polarhome.com -tru64.polarhome.com ### Run the test on tru64.polarhome.com -tru64.polarhome.com Works on tru64.polarhome.com copy_and_test solaris.polarhome.com solaris.polarhome.com ### Run the test on solaris.polarhome.com solaris.polarhome.com Works on solaris.polarhome.com @@ -71,11 +68,6 @@ scosysv.polarhome.com Works on scosysv.polarhome.com scosysv.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable scosysv.polarhome.com at bin/parallel line 0000 scosysv.polarhome.com OK -copy_and_test dragonfly.polarhome.com -dragonfly.polarhome.com ### Run the test on dragonfly.polarhome.com -dragonfly.polarhome.com Works on dragonfly.polarhome.com -dragonfly.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000 -dragonfly.polarhome.com OK copy_and_test unixware.polarhome.com unixware.polarhome.com ### Run the test on unixware.polarhome.com unixware.polarhome.com Works on unixware.polarhome.com @@ -98,12 +90,6 @@ macosx.polarhome.com ### Run the test on macosx.polarhome.com macosx.polarhome.com Works on macosx.polarhome.com macosx.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at bin/parallel line 0000 macosx.polarhome.com OK -copy_and_test hpux-ia64.polarhome.com -hpux-ia64.polarhome.com ### Run the test on hpux-ia64.polarhome.com -hpux-ia64.polarhome.com Works on hpux-ia64.polarhome.com -hpux-ia64.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable -hpux-ia64.polarhome.com at bin/parallel line 0000 -hpux-ia64.polarhome.com OK copy_and_test redhat.polarhome.com redhat.polarhome.com ### Run the test on redhat.polarhome.com redhat.polarhome.com Works on redhat.polarhome.com @@ -136,9 +122,7 @@ aix7 centos.polarhome.com debian-ppc debian -dragonfly.polarhome.com freebsd.polarhome.com -hpux-ia64 hpux64 macosx.polarhome.com mandriva.polarhome.com @@ -154,7 +138,6 @@ scosysv.polarhome.com solaris-x86 solaris suse -tru64.polarhome.com ubuntu unixware.polarhome.com @@ -164,9 +147,7 @@ aix.polarhome.com bash only A centos.polarhome.com bash only A debian-ppc.polarhome.com bash only A debian.polarhome.com bash only A -dragonfly.polarhome.com Syntax error: "(" unexpected freebsd.polarhome.com Syntax error: "(" unexpected (expecting word) -hpux-ia64.polarhome.com bash only A hpux.polarhome.com bash only A macosx.polarhome.com bash only A mandriva.polarhome.com bash only A @@ -182,7 +163,6 @@ scosysv.polarhome.com bash only A solaris-x86.polarhome.com bash only A solaris.polarhome.com bash only A suse.polarhome.com bash only A -tru64.polarhome.com bash only A ubuntu.polarhome.com bash only A unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `(' unexpected diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index 3d9434c8..7d952125 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -1294,7 +1294,7 @@ please cite: url = {http://www.gnu.org/s/parallel}, year = {2011}, pages = {42-47}, - doi = {10.5281/zenodo.16303} + doi = {http://dx.doi.org/10.5281/zenodo.16303} } (Feel free to use \nocite{Tange2011a})