--- /gnu/store/v1nspzc8ams04k4cfgbg5y6mcl3fas59-parallel-20180122.tar.bz2 +++ /gnu/store/ppyrnv70vcgybq9jvd9c06r5qg11alk4-parallel-20180122.tar.bz2 │ --- v1nspzc8ams04k4cfgbg5y6mcl3fas59-parallel-20180122.tar ├── +++ ppyrnv70vcgybq9jvd9c06r5qg11alk4-parallel-20180122.tar ├── file list │ │ @@ -1,15 +1,15 @@ │ │ -drwxrwxr-x 0 1000 1000 0 2018-01-22 10:34:48.000000 parallel-20180122/ │ │ +drwxrwxr-x 0 1000 1000 0 2018-01-22 16:11:23.000000 parallel-20180122/ │ │ -rw-rw-r-- 0 1000 1000 35147 2018-01-14 04:35:56.000000 parallel-20180122/COPYING │ │ -rw-rw-r-- 0 1000 1000 136156 2018-01-22 10:28:54.000000 parallel-20180122/NEWS │ │ -rwxrwxr-x 0 1000 1000 110321 2018-01-22 09:49:42.000000 parallel-20180122/configure │ │ -rw-rw-r-- 0 1000 1000 631 2018-01-14 04:35:56.000000 parallel-20180122/CITATION │ │ -rwxr-xr-x 0 1000 1000 6872 2018-01-22 09:49:43.000000 parallel-20180122/missing │ │ -rwxr-xr-x 0 1000 1000 15155 2018-01-22 09:49:43.000000 parallel-20180122/install-sh │ │ -drwxrwxr-x 0 1000 1000 0 2018-01-22 10:34:49.000000 parallel-20180122/src/ │ │ +drwxrwxr-x 0 1000 1000 0 2018-01-22 16:11:23.000000 parallel-20180122/src/ │ │ -rw-rw-r-- 0 1000 1000 42278 2018-01-16 15:02:37.000000 parallel-20180122/src/parallel_book.pdf │ │ -rw-rw-r-- 0 1000 1000 8872 2018-01-16 15:04:31.000000 parallel-20180122/src/sem.pod │ │ -rwxrwxr-x 0 1000 1000 64 2018-01-14 04:35:56.000000 parallel-20180122/src/parset │ │ -rw-rw-r-- 0 1000 1000 94577 2018-01-16 15:15:44.000000 parallel-20180122/src/parallel_tutorial.7 │ │ -rw-rw-r-- 0 1000 1000 211154 2018-01-16 15:17:37.000000 parallel-20180122/src/parallel_tutorial.pdf │ │ -rw-rw-r-- 0 1000 1000 63029 2018-01-16 15:15:44.000000 parallel-20180122/src/parallel_alternatives.7 │ │ -rwxrwxr-x 0 1000 1000 10497 2018-01-16 15:04:31.000000 parallel-20180122/src/env_parallel.bash │ │ @@ -26,18 +26,18 @@ │ │ -rw-rw-r-- 0 1000 1000 55346 2018-01-16 15:16:44.000000 parallel-20180122/src/env_parallel.pdf │ │ -rwxrwxr-x 0 1000 1000 33083 2018-01-22 09:49:20.000000 parallel-20180122/src/niceload │ │ -rw-rw-r-- 0 1000 1000 4015 2018-01-16 15:04:31.000000 parallel-20180122/src/parcat.pod │ │ -rw-rw-r-- 0 1000 1000 41759 2018-01-22 09:50:03.000000 parallel-20180122/src/sql.pdf │ │ -rw-rw-r-- 0 1000 1000 5174 2018-01-16 15:15:55.000000 parallel-20180122/src/parcat.texi │ │ -rwxrwxr-x 0 1000 1000 5455 2018-01-16 15:04:31.000000 parallel-20180122/src/env_parallel.tcsh │ │ -rw-rw-r-- 0 1000 1000 38438 2018-01-16 15:16:31.000000 parallel-20180122/src/sem.pdf │ │ --rwxrwxr-x 0 1000 1000 9802 2018-01-16 15:04:31.000000 parallel-20180122/src/env_parallel.sh │ │ +-rwxrwxr-x 0 1000 1000 9894 2018-01-22 13:11:18.000000 parallel-20180122/src/env_parallel.sh │ │ -rw-rw-r-- 0 1000 1000 14682 2018-01-22 09:49:55.000000 parallel-20180122/src/niceload.html │ │ -rw-rw-r-- 0 1000 1000 50489 2018-01-16 14:59:58.000000 parallel-20180122/src/parallel_design.7 │ │ --rwxrwxr-x 0 1000 1000 9149 2018-01-16 15:04:31.000000 parallel-20180122/src/env_parallel.ash │ │ +-rwxrwxr-x 0 1000 1000 9906 2018-01-22 13:12:40.000000 parallel-20180122/src/env_parallel.ash │ │ -rw-rw-r-- 0 1000 1000 91294 2018-01-16 15:16:11.000000 parallel-20180122/src/parallel_tutorial.texi │ │ -rw-rw-r-- 0 1000 1000 15630 2018-01-22 09:49:50.000000 parallel-20180122/src/parallel_book.html │ │ -rw-rw-r-- 0 1000 1000 27767 2018-01-16 15:15:43.000000 parallel-20180122/src/env_parallel.1 │ │ -rw-rw-r-- 0 1000 1000 185521 2018-01-22 09:49:47.000000 parallel-20180122/src/parallel.html │ │ -rw-rw-r-- 0 1000 1000 73428 2018-01-16 15:04:31.000000 parallel-20180122/src/parallel_tutorial.pod │ │ -rw-rw-r-- 0 1000 1000 17361 2018-01-22 09:49:47.000000 parallel-20180122/src/sql.1 │ │ -rw-rw-r-- 0 1000 1000 6067 2018-01-22 09:49:55.000000 parallel-20180122/src/parcat.html │ │ @@ -65,15 +65,15 @@ │ │ -rw-rw-r-- 0 1000 1000 8432 2018-01-16 15:15:56.000000 parallel-20180122/src/parset.texi │ │ -rw-rw-r-- 0 1000 1000 57516 2018-01-16 15:16:04.000000 parallel-20180122/src/parallel_alternatives.texi │ │ -rw-rw-r-- 0 1000 1000 13759 2018-01-16 15:16:03.000000 parallel-20180122/src/niceload.texi │ │ -rw-rw-r-- 0 1000 1000 175004 2018-01-22 09:50:04.000000 parallel-20180122/src/parallel.texi │ │ -rw-rw-r-- 0 1000 1000 176372 2018-01-22 09:49:48.000000 parallel-20180122/src/parallel.1 │ │ -rw-rw-r-- 0 1000 1000 15638 2018-01-22 09:49:54.000000 parallel-20180122/src/sql.html │ │ -rw-rw-r-- 0 1000 1000 12548 2018-01-22 09:49:53.000000 parallel-20180122/src/sem.html │ │ --rwxrwxr-x 0 1000 1000 9152 2018-01-16 15:04:31.000000 parallel-20180122/src/env_parallel.dash │ │ +-rwxrwxr-x 0 1000 1000 9909 2018-01-22 13:13:45.000000 parallel-20180122/src/env_parallel.dash │ │ -rw-rw-r-- 0 1000 1000 51369 2018-01-22 09:49:51.000000 parallel-20180122/src/parallel_design.html │ │ -rwxrwxr-x 0 1000 1000 6115 2018-01-16 15:04:31.000000 parallel-20180122/src/env_parallel.fish │ │ -rw-rw-r-- 0 1000 1000 32049 2018-01-22 09:49:43.000000 parallel-20180122/src/Makefile.in │ │ -rw-rw-r-- 0 1000 1000 13833 2018-01-22 09:49:51.000000 parallel-20180122/src/sql.texi │ │ -rwxrwxr-x 0 1000 1000 31767 2018-01-22 09:49:20.000000 parallel-20180122/src/sql │ │ -rw-rw-r-- 0 1000 1000 141651 2018-01-20 02:10:19.000000 parallel-20180122/src/parallel.pod │ │ -rw-rw-r-- 0 1000 1000 10048 2018-01-22 09:49:56.000000 parallel-20180122/src/parset.html ├── parallel-20180122/src/env_parallel.sh │ │ @@ -55,15 +55,15 @@ │ │ perl -ne '/^(\S+) is a function$/ and not $seen{$1}++ and print "$1\n"' │ │ } │ │ _bodies_of_FUNCTIONS() { │ │ type "$@" | perl -ne '/^(\S+) is a function$/ or print' │ │ } │ │ _names_of_VARIABLES() { │ │ # This may screw up if variables contain \n and = │ │ - set | perl -ne 's/^(\S+)=.*/$1/ and print;' │ │ + set | perl -ne 's/^(\S+?)=.*/$1/ and print;' │ │ } │ │ _bodies_of_VARIABLES() { │ │ # Crappy typeset -p │ │ for _i in "$@" │ │ do │ │ perl -e 'print @ARGV' "$_i=" │ │ eval echo \"\$$_i\" | perl -e '$/=undef; $a=<>; chop($a); print $a' | │ │ @@ -117,22 +117,24 @@ │ │ } │ │ $vars = join "|",map { quotemeta $_ } @envvar; │ │ print $vars ? "($vars)" : "(.*)"; │ │ ' -- "$@" │ │ } │ │ _which() { │ │ # type returns: │ │ + # ll is an alias for ls -l (in ash) │ │ # bash is a tracked alias for /bin/bash │ │ # true is a shell builtin │ │ # which is /usr/bin/which │ │ # which is hashed (/usr/bin/which) │ │ # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' │ │ # Return 0 if found, 1 otherwise │ │ type "$@" | │ │ - perl -pe '$exit += (s/ is aliased to .*// || │ │ + perl -pe '$exit += (s/ is an alias for .*// || │ │ + s/ is aliased to .*// || │ │ s/ is a shell builtin// || │ │ s/.* is hashed .(\S+).$/$1/ || │ │ s/.* is (a tracked alias for )?//); │ │ END { exit not $exit }' │ │ } │ │ │ │ if _which parallel >/dev/null; then ├── parallel-20180122/src/env_parallel.ash │ │ @@ -55,33 +55,38 @@ │ │ perl -ne '/^(\S+) is a function$/ and not $seen{$1}++ and print "$1\n"' │ │ } │ │ _bodies_of_FUNCTIONS() { │ │ type "$@" | perl -ne '/^(\S+) is a function$/ or print' │ │ } │ │ _names_of_VARIABLES() { │ │ # This may screw up if variables contain \n and = │ │ - set | perl -ne 's/^(\S+)=.*/$1/ and print;' │ │ + set | perl -ne 's/^(\S+?)=.*/$1/ and print;' │ │ } │ │ _bodies_of_VARIABLES() { │ │ # Crappy typeset -p │ │ for _i in "$@" │ │ do │ │ perl -e 'print @ARGV' "$_i=" │ │ eval echo \"\$$_i\" | perl -e '$/=undef; $a=<>; chop($a); print $a' | │ │ perl -pe 's/[\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!\$\&\202-\377]/\\$&/go;'"s/'/\\\'/g; s/[\n]/'\\n'/go;"; │ │ echo │ │ done │ │ } │ │ _remove_bad_NAMES() { │ │ # Do not transfer vars and funcs from env_parallel │ │ - grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' | │ │ + # Some versions of grep do not support -E: Use perl │ │ + # grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' | │ │ + │ │ + perl -ne '/^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$/ and next; │ │ # Filter names matching --env │ │ - grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | │ │ + /^'"$_grep_REGEXP"'$/ or next; │ │ + /^'"$_ignore_UNDERSCORE"'$/ and next; │ │ # Vars set by /bin/sh │ │ - grep -Ev '^(_)$' │ │ + /^(_|TIMEOUT)$/ and next; │ │ + print;' │ │ } │ │ │ │ _get_ignored_VARS() { │ │ perl -e ' │ │ for(@ARGV){ │ │ $next_is_env and push @envvar, split/,/, $_; │ │ $next_is_env=/^--env$/; │ │ @@ -112,22 +117,26 @@ │ │ } │ │ $vars = join "|",map { quotemeta $_ } @envvar; │ │ print $vars ? "($vars)" : "(.*)"; │ │ ' -- "$@" │ │ } │ │ _which() { │ │ # type returns: │ │ + # ll is an alias for ls -l (in ash) │ │ # bash is a tracked alias for /bin/bash │ │ # true is a shell builtin │ │ # which is /usr/bin/which │ │ + # which is hashed (/usr/bin/which) │ │ # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' │ │ # Return 0 if found, 1 otherwise │ │ type "$@" | │ │ - perl -pe '$exit += (s/ aliased to .*// || │ │ + perl -pe '$exit += (s/ is an alias for .*// || │ │ + s/ is aliased to .*// || │ │ s/ is a shell builtin// || │ │ + s/.* is hashed .(\S+).$/$1/ || │ │ s/.* is (a tracked alias for )?//); │ │ END { exit not $exit }' │ │ } │ │ │ │ if _which parallel >/dev/null; then │ │ true parallel found in path │ │ else │ │ @@ -180,14 +189,15 @@ │ │ unset _variable_NAMES │ │ │ │ PARALLEL_ENV="` │ │ $_list_alias_BODIES; │ │ $_list_function_BODIES; │ │ $_list_variable_VALUES; │ │ `" │ │ + │ │ export PARALLEL_ENV │ │ unset _list_alias_BODIES │ │ unset _list_variable_VALUES │ │ unset _list_function_BODIES │ │ unset _grep_REGEXP │ │ unset _ignore_UNDERSCORE │ │ # Test if environment is too big │ │ @@ -252,29 +262,29 @@ │ │ print STDERR "parset: Error: $_ is an invalid variable name.\n"; │ │ print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; │ │ $exitval = 255; │ │ } │ │ } │ │ exit $exitval; │ │ ' || return 255 │ │ - if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then │ │ - # $1 contains , or space │ │ + if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then │ │ + # $_parset_name contains , or space │ │ # Split on , or space to get the names │ │ eval "$( │ │ # Compute results into files │ │ $_parset_parallel_prg --files -k "$@" | │ │ # var1=`cat tmpfile1; rm tmpfile1` │ │ # var2=`cat tmpfile2; rm tmpfile2` │ │ parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( │ │ echo "$_parset_name" | │ │ perl -pe 's/,/ /g' │ │ ) │ │ )" │ │ else │ │ - # $1 contains no space or , │ │ - # => $1 is the name of the array to put data into │ │ - # Supported in: bash │ │ + # $_parset_name does not contain , or space │ │ + # => $_parset_name is the name of the array to put data into │ │ + # Supported in: bash zsh ksh │ │ # Arrays do not work in: ash dash │ │ eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" | │ │ perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" │ │ fi │ │ } ├── parallel-20180122/src/env_parallel.dash │ │ @@ -55,33 +55,38 @@ │ │ perl -ne '/^(\S+) is a function$/ and not $seen{$1}++ and print "$1\n"' │ │ } │ │ _bodies_of_FUNCTIONS() { │ │ type "$@" | perl -ne '/^(\S+) is a function$/ or print' │ │ } │ │ _names_of_VARIABLES() { │ │ # This may screw up if variables contain \n and = │ │ - set | perl -ne 's/^(\S+)=.*/$1/ and print;' │ │ + set | perl -ne 's/^(\S+?)=.*/$1/ and print;' │ │ } │ │ _bodies_of_VARIABLES() { │ │ # Crappy typeset -p │ │ for _i in "$@" │ │ do │ │ perl -e 'print @ARGV' "$_i=" │ │ eval echo \"\$$_i\" | perl -e '$/=undef; $a=<>; chop($a); print $a' | │ │ perl -pe 's/[\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!\$\&\202-\377]/\\$&/go;'"s/'/\\\'/g; s/[\n]/'\\n'/go;"; │ │ echo │ │ done │ │ } │ │ _remove_bad_NAMES() { │ │ # Do not transfer vars and funcs from env_parallel │ │ - grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' | │ │ + # Some versions of grep do not support -E: Use perl │ │ + # grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' | │ │ + │ │ + perl -ne '/^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV|_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$/ and next; │ │ # Filter names matching --env │ │ - grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | │ │ + /^'"$_grep_REGEXP"'$/ or next; │ │ + /^'"$_ignore_UNDERSCORE"'$/ and next; │ │ # Vars set by /bin/sh │ │ - grep -Ev '^(_)$' │ │ + /^(_|TIMEOUT)$/ and next; │ │ + print;' │ │ } │ │ │ │ _get_ignored_VARS() { │ │ perl -e ' │ │ for(@ARGV){ │ │ $next_is_env and push @envvar, split/,/, $_; │ │ $next_is_env=/^--env$/; │ │ @@ -112,22 +117,26 @@ │ │ } │ │ $vars = join "|",map { quotemeta $_ } @envvar; │ │ print $vars ? "($vars)" : "(.*)"; │ │ ' -- "$@" │ │ } │ │ _which() { │ │ # type returns: │ │ + # ll is an alias for ls -l (in ash) │ │ # bash is a tracked alias for /bin/bash │ │ # true is a shell builtin │ │ # which is /usr/bin/which │ │ + # which is hashed (/usr/bin/which) │ │ # aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' │ │ # Return 0 if found, 1 otherwise │ │ type "$@" | │ │ - perl -pe '$exit += (s/ aliased to .*// || │ │ + perl -pe '$exit += (s/ is an alias for .*// || │ │ + s/ is aliased to .*// || │ │ s/ is a shell builtin// || │ │ + s/.* is hashed .(\S+).$/$1/ || │ │ s/.* is (a tracked alias for )?//); │ │ END { exit not $exit }' │ │ } │ │ │ │ if _which parallel >/dev/null; then │ │ true parallel found in path │ │ else │ │ @@ -180,14 +189,15 @@ │ │ unset _variable_NAMES │ │ │ │ PARALLEL_ENV="` │ │ $_list_alias_BODIES; │ │ $_list_function_BODIES; │ │ $_list_variable_VALUES; │ │ `" │ │ + │ │ export PARALLEL_ENV │ │ unset _list_alias_BODIES │ │ unset _list_variable_VALUES │ │ unset _list_function_BODIES │ │ unset _grep_REGEXP │ │ unset _ignore_UNDERSCORE │ │ # Test if environment is too big │ │ @@ -252,29 +262,29 @@ │ │ print STDERR "parset: Error: $_ is an invalid variable name.\n"; │ │ print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; │ │ $exitval = 255; │ │ } │ │ } │ │ exit $exitval; │ │ ' || return 255 │ │ - if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then │ │ - # $1 contains , or space │ │ + if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then │ │ + # $_parset_name contains , or space │ │ # Split on , or space to get the names │ │ eval "$( │ │ # Compute results into files │ │ $_parset_parallel_prg --files -k "$@" | │ │ # var1=`cat tmpfile1; rm tmpfile1` │ │ # var2=`cat tmpfile2; rm tmpfile2` │ │ parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( │ │ echo "$_parset_name" | │ │ perl -pe 's/,/ /g' │ │ ) │ │ )" │ │ else │ │ - # $1 contains no space or , │ │ - # => $1 is the name of the array to put data into │ │ - # Supported in: bash │ │ + # $_parset_name does not contain , or space │ │ + # => $_parset_name is the name of the array to put data into │ │ + # Supported in: bash zsh ksh │ │ # Arrays do not work in: ash dash │ │ eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" | │ │ perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" │ │ fi │ │ }