Released as 20110522 ('Pakistan').

This commit is contained in:
Ole Tange 2011-05-22 01:12:43 +02:00
parent 59ddc7b75d
commit e13bb81593
11 changed files with 174 additions and 73 deletions

62
NEWS
View file

@ -1,3 +1,65 @@
20110522
New in this release:
* Multiple ::: can be put on the command line and will be treated
similar to contents from multiple -a's.
* ::: and :::: can now be mixed on the command line. Use {1} .. {n} to
refer to inputs from the different input sources.
* --xapply is now needed to get xapply's behaviour of reading one line
from each of the input sources.
* Multiple input sources will cause all combinations of arguments from
the sources to be generated. E.g. 'parallel echo {1}+{2} ::: 1 2 :::
a b c' will print 1+a 1+b 1+c 2+a 2+b 2+c. This can often replace
nested loops.
* Implemented {//} for the input line with the basename removed (dirname).
* New video showing the new ::: and :::: input sources.
http://tinyogg.com/watch/iOdhU/ http://www.youtube.com/watch?v=fOX1EyHkQwc
* GNU Parallel now has a logo.
http://www.gnu.org/software/parallel/logo.png
* Article about GNU SQL in USENIX Magazine ;login: (print)
http://www.usenix.org/publications/login/2011-04/
* Using GNU Parallel with EC2. Thanks to Kevin Wu.
http://blog.kevinformatics.com/post/4970574713/interested-in-your-experience-using-gnu-parallel-in
* Review with idea for {..} and {...} in Japanese. Thanks to ichii386.
http://d.hatena.ne.jp/ichii386/20110426
* Upgrade GNU Parallel using Macports. Thanks to Phil Hollenback.
http://www.hollenback.net/index.php/MacportsParallel
* Robert from Echo One discusses using processes instead of threads:
http://rrees.wordpress.com/2011/04/25/many-cores-many-threads/
* How to run GNU Parallel on a SLURM cluster. Thanks to Kevin Stock.
http://www.kevinstock.org/2011/04/using-the-ri-cluster/
* Short article about using GNU Parallel with lame:
http://loopkid.net/articles/2011/04/30/accelerate-lame-mp3-conversion
* Using GNU Parallel to run tail -f in Japanese. Thanks to Clouder.
http://blog.clouder.jp/archives/001140.html
* BBC Research & Development uses GNU Parallel:
http://www.bbc.co.uk/blogs/researchanddevelopment/2010/11/prototyping-weeknotes-41-26112.shtml
* Short article about using GNU Parallel on RHEL. Thanks to Rishi Deshpande.
http://nuclear-imaging.info/site_content/2011/05/11/gnu-parallel/
* Using GNU Parallel for FLAC->MP3 conversion. Thanks to Derek Marcotte.
http://derek.chezmarcotte.ca/?p=286
* Bug fixes and man page updates.
20110422 20110422
* {#} now works an alias for $PARALLEL_PID. * {#} now works an alias for $PARALLEL_PID.

4
aclocal.m4 vendored
View file

@ -13,8 +13,8 @@
m4_ifndef([AC_AUTOCONF_VERSION], m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
[m4_warning([this file was generated for autoconf 2.67. [m4_warning([this file was generated for autoconf 2.68.
You have another version of autoconf. It may work, but is not guaranteed to. You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])]) To do so, use the procedure documented by the package, typically `autoreconf'.])])

121
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.67 for parallel 20110505. # Generated by GNU Autoconf 2.68 for parallel 20110522.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -91,6 +91,7 @@ fi
IFS=" "" $as_nl" IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator. # Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #(( case $0 in #((
*[\\/]* ) as_myself=$0 ;; *[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -215,11 +216,18 @@ IFS=$as_save_IFS
# We cannot yet assume a decent shell, so we have to provide a # We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also # neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables. # works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null BASH_ENV=/dev/null
ENV=/dev/null ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
export CONFIG_SHELL export CONFIG_SHELL
exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi fi
if test x$as_have_required = xno; then : if test x$as_have_required = xno; then :
@ -551,8 +559,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20110505' PACKAGE_VERSION='20110522'
PACKAGE_STRING='parallel 20110505' PACKAGE_STRING='parallel 20110522'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1030,7 +1038,7 @@ Try \`$0 --help' for more information"
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;; ;;
esac esac
@ -1168,7 +1176,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # 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. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures parallel 20110505 to adapt to many kinds of systems. \`configure' configures parallel 20110522 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1234,7 +1242,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20110505:";; short | recursive ) echo "Configuration of parallel 20110522:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1301,8 +1309,8 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
parallel configure 20110505 parallel configure 20110522
generated by GNU Autoconf 2.67 generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc. Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation This configure script is free software; the Free Software Foundation
@ -1318,8 +1326,8 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20110505, which was It was created by parallel $as_me 20110522, which was
generated by GNU Autoconf 2.67. Invocation command line was generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@ $ $0 $@
@ -1714,7 +1722,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; } $as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then : if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -1891,7 +1899,7 @@ if test "$cross_compiling" != no; then
set dummy ${ac_tool_prefix}strip; ac_word=$2 set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; } $as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_STRIP+set}" = set; then : if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
if test -n "$STRIP"; then if test -n "$STRIP"; then
@ -1931,7 +1939,7 @@ if test -z "$ac_cv_prog_STRIP"; then
set dummy strip; ac_word=$2 set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; } $as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
if test -n "$ac_ct_STRIP"; then if test -n "$ac_ct_STRIP"; then
@ -1984,7 +1992,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then if test -z "$MKDIR_P"; then
if test "${ac_cv_path_mkdir+set}" = set; then : if ${ac_cv_path_mkdir+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -2035,7 +2043,7 @@ do
set dummy $ac_prog; ac_word=$2 set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; } $as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AWK+set}" = set; then : if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
if test -n "$AWK"; then if test -n "$AWK"; then
@ -2075,7 +2083,7 @@ done
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make} set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
cat >conftest.make <<\_ACEOF cat >conftest.make <<\_ACEOF
@ -2133,7 +2141,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20110505' VERSION='20110522'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2241,10 +2249,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache :end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then if test -w "$cache_file"; then
test "x$cache_file" != "x/dev/null" && if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;} $as_echo "$as_me: updating cache $cache_file" >&6;}
cat confcache >$cache_file if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@ -2277,7 +2296,7 @@ LTLIBOBJS=$ac_ltlibobjs
: ${CONFIG_STATUS=./config.status} : "${CONFIG_STATUS=./config.status}"
ac_write_fail=0 ac_write_fail=0
ac_clean_files_save=$ac_clean_files ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS" ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@ -2378,6 +2397,7 @@ fi
IFS=" "" $as_nl" IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator. # Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #(( case $0 in #((
*[\\/]* ) as_myself=$0 ;; *[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -2684,8 +2704,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by parallel $as_me 20110505, which was This file was extended by parallel $as_me 20110522, which was
generated by GNU Autoconf 2.67. Invocation command line was generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_HEADERS = $CONFIG_HEADERS
@ -2746,8 +2766,8 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20110505 parallel config.status 20110522
configured by $0, generated by GNU Autoconf 2.67, configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc. Copyright (C) 2010 Free Software Foundation, Inc.
@ -2896,9 +2916,10 @@ fi
# after its creation but before its name has been assigned to `$tmp'. # after its creation but before its name has been assigned to `$tmp'.
$debug || $debug ||
{ {
tmp= tmp= ac_tmp=
trap 'exit_status=$? trap 'exit_status=$?
{ test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status : "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0 ' 0
trap 'as_fn_exit 1' 1 2 13 15 trap 'as_fn_exit 1' 1 2 13 15
} }
@ -2906,12 +2927,13 @@ $debug ||
{ {
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp" test -d "$tmp"
} || } ||
{ {
tmp=./conf$$-$RANDOM tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp") (umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section. # Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES. # No need to generate them if there are no CONFIG_FILES.
@ -2933,7 +2955,7 @@ else
ac_cs_awk_cr=$ac_cr ac_cs_awk_cr=$ac_cr
fi fi
echo 'BEGIN {' >"$tmp/subs1.awk" && echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF _ACEOF
@ -2961,7 +2983,7 @@ done
rm -f conf$$subs.sh rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$tmp/subs1.awk" <<\\_ACAWK && cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF _ACEOF
sed -n ' sed -n '
h h
@ -3009,7 +3031,7 @@ t delim
rm -f conf$$subs.awk rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK _ACAWK
cat >>"\$tmp/subs1.awk" <<_ACAWK && cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1 for (key in S) S_is_set[key] = 1
FS = "" FS = ""
@ -3041,7 +3063,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else else
cat cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF _ACEOF
@ -3075,7 +3097,7 @@ fi # test -n "$CONFIG_FILES"
# No need to generate them if there are no CONFIG_HEADERS. # No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'. # This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then if test -n "$CONFIG_HEADERS"; then
cat >"$tmp/defines.awk" <<\_ACAWK || cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN { BEGIN {
_ACEOF _ACEOF
@ -3087,8 +3109,8 @@ _ACEOF
# handling of long lines. # handling of long lines.
ac_delim='%!_!# ' ac_delim='%!_!# '
for ac_last_try in false false :; do for ac_last_try in false false :; do
ac_t=`sed -n "/$ac_delim/p" confdefs.h` ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_t"; then if test -z "$ac_tt"; then
break break
elif $ac_last_try; then elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@ -3208,7 +3230,7 @@ do
for ac_f for ac_f
do do
case $ac_f in case $ac_f in
-) ac_f="$tmp/stdin";; -) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree *) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style, # (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'. # because $ac_f cannot contain `:'.
@ -3243,7 +3265,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac esac
case $ac_tag in case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \ *:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac esac
;; ;;
@ -3380,21 +3402,22 @@ s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack $ac_datarootdir_hack
" "
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5 which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;} which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$tmp/stdin" rm -f "$ac_tmp/stdin"
case $ac_file in case $ac_file in
-) cat "$tmp/out" && rm -f "$tmp/out";; -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \ esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;; ;;
@ -3405,20 +3428,20 @@ which seems to be undefined. Please make sure it is defined" >&2;}
if test x"$ac_file" != x-; then if test x"$ac_file" != x-; then
{ {
$as_echo "/* $configure_input */" \ $as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$tmp/config.h" \ } >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;} $as_echo "$as_me: $ac_file is unchanged" >&6;}
else else
rm -f "$ac_file" rm -f "$ac_file"
mv "$tmp/config.h" "$ac_file" \ mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi fi
else else
$as_echo "/* $configure_input */" \ $as_echo "/* $configure_input */" \
&& eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5 || as_fn_error $? "could not create -" "$LINENO" 5
fi fi
# Compute "$ac_file"'s index in $config_headers. # Compute "$ac_file"'s index in $config_headers.

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20110505], [bug-parallel@gnu.org]) AC_INIT([parallel], [20110522], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View file

@ -1,3 +1,8 @@
Dont start new job if:
* load is too high
* memory free is too low
Video 30. 36. 41. 48 Video 30. 36. 41. 48
@ -231,12 +236,8 @@ for potentiel:
colsep = [sepchars]{no_of_sepchars} colsep = [sepchars]{no_of_sepchars}
# Hvordan udregnes system limits på remote systems hvis jeg ikke ved, hvormange
# argumenter, der er? Lav system limits lokalt og lad det være max
# TODO max_line_length on remote # TODO max_line_length on remote
# TODO compute how many can be transferred within max_line_length # TODO compute how many can be transferred within max_line_length
# TODO Unittest with filename that is long and requires a lot of quoting. Will there be to many
=head1 YouTube video --pipe =head1 YouTube video --pipe
@ -604,9 +605,6 @@ En ssh med 20% loss og 900 ms delay, så kan login nås på 15 sek.
Test if -0 works on filenames ending in '\n' Test if -0 works on filenames ending in '\n'
If there are nomore jobs (STDIN is eof) then make sure to
distribute the arguments evenly if running -X.
=head1 options =head1 options

View file

@ -158,9 +158,9 @@ cc:Peter Simons <simons@cryp.to>, Sandro Cazzaniga <kharec@mandriva.org>,
Christian Faulhammer <fauli@gentoo.org>, Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>, Christian Faulhammer <fauli@gentoo.org>, Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
Jesse Alama <jesse.alama@gmail.com> Jesse Alama <jesse.alama@gmail.com>
Subject: GNU Parallel 2011XX22 ('Pakistan') released Subject: GNU Parallel 20110522 ('Pakistan') released
GNU Parallel 2011XX22 ('Pakistan') has been released. It is GNU Parallel 20115022 ('Pakistan') has been released. It is
available for download at: http://ftp.gnu.org/gnu/parallel/ available for download at: http://ftp.gnu.org/gnu/parallel/
This is a major release. So far GNU Parallel has been focused on This is a major release. So far GNU Parallel has been focused on
@ -188,6 +188,9 @@ New in this release:
* Implemented {//} for the input line with the basename removed (dirname). * Implemented {//} for the input line with the basename removed (dirname).
* New video showing the new ::: and :::: input sources.
http://tinyogg.com/watch/iOdhU/ http://www.youtube.com/watch?v=fOX1EyHkQwc
* GNU Parallel now has a logo. * GNU Parallel now has a logo.
http://www.gnu.org/software/parallel/logo.png http://www.gnu.org/software/parallel/logo.png

View file

@ -3,6 +3,5 @@ all:
cp ../debian/parallel_*.dsc ../debian/parallel_*.tar.gz home\:tange/parallel/ cp ../debian/parallel_*.dsc ../debian/parallel_*.tar.gz home\:tange/parallel/
cp `ls ../../parallel-*.tar.bz2|tail -n1` home\:tange/parallel/ cp `ls ../../parallel-*.tar.bz2|tail -n1` home\:tange/parallel/
cd home\:tange/parallel/ && osc up cd home\:tange/parallel/ && osc up
cd home\:tange/parallel/ && osc add *.dsc *.tar.gz *.tar.bz2 && echo Src added OK || true cd home\:tange/parallel/ && parallel osc add ::: *.spec *.dsc *.tar.gz *.tar.bz2 && echo Src added OK || true
cd home\:tange/parallel/ && osc add *.spec && echo spec added OK || true
cd home\:tange/parallel/ && osc ci cd home\:tange/parallel/ && osc ci

View file

@ -236,7 +236,7 @@ B<parallel>(1), B<nice>(1)
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20110505; $Global::version = 20110522;
Getopt::Long::Configure("bundling","require_order"); Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage(); get_options_from_array(\@ARGV) || die_usage();
if($::opt_version) { if($::opt_version) {

View file

@ -406,7 +406,7 @@ sub get_options_from_array {
sub parse_options { sub parse_options {
# Returns: N/A # Returns: N/A
# Defaults: # Defaults:
$Global::version = 20110505; $Global::version = 20110522;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$Global::infinity = 2**31; $Global::infinity = 2**31;
$Global::debug = 0; $Global::debug = 0;

View file

@ -536,7 +536,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20110505; $Global::version = 20110522;
$Global::progname = 'sql'; $Global::progname = 'sql';
# This must be done first as this may exec myself # This must be done first as this may exec myself

View file

@ -5,6 +5,22 @@ echo '### Test bug https://savannah.gnu.org/bugs/index.php?33352'
# produce input slowly to parallel so that it will reap a process # produce input slowly to parallel so that it will reap a process
# while blocking in read() # while blocking in read()
# Having found the solution it is suddenly very easy to reproduce the
# problem - even on other hardware:
#
# perl -e '@x=1 .. 17000; for(1..30) { print "@x\n"}' | pv -qL 200000
# |parallel -j2 --pipe --keeporder --block 150000 cat | md5sum
#
# This gives different md5sums for each run.
#
# The problem is that read(STDIN) is being interrupted by a dead
# child. The chance of this happening is very small if there are few
# children dying or read(STDIN) never has to wait for data.
#
# The test above forces data to arrive slowly (using pv) which causes
# read(STDIN) to take a long time - thus being interrupted by a dead
# child.
MD5=md5sum MD5=md5sum
PAR="parallel -j2 --pipe --keeporder --block 150000 --tmpdir=/dev/shm" PAR="parallel -j2 --pipe --keeporder --block 150000 --tmpdir=/dev/shm"
perl -e '@x=1 .. 17000; for(1..100) { print "@x\n"}' | md5sum perl -e '@x=1 .. 17000; for(1..100) { print "@x\n"}' | md5sum