Released as 20160422 ('PanamaPapers')

This commit is contained in:
Ole Tange 2016-04-22 00:36:46 +02:00
parent d0b5edf41f
commit e4738dfb97
12 changed files with 143 additions and 49 deletions

60
NEWS
View file

@ -1,3 +1,63 @@
20160422
* :::+ and ::::+ work like ::: and :::: but links this input source to
the previous input source in a --xapply fashion. Contrary to
--xapply values do not wrap: The shortest input source determines
the length.
* --line-buffer --keep-order now outputs continously from the oldest
job still running. This is more what you would expect than the
earlier behaviour where --keep-order had no effect with
--line-buffer.
* env_parallel supports tcsh, csh, pdksh. In fish it now supports
arrays. In csh/tcsh it now supports variables, aliases, and arrays
with no special chars. In pdksh it supports aliases, functions,
variables, and arrays.
* Function exporting on Mac OS X works around old Bash version.
* Better CPU detection on OpenIndiana.
* GNU Parallel was cited in: How Can We Measure the Similarity Between
Resumes of Selected Candidates for a Job?
https://www.researchgate.net/publication/275954089_How_can_we_measure_the_similarity_between_resumes_of_selected_candidates_for_a_job
* GNU Parallel was cited in: Automatic Methods for Assisted
Recruitment
https://www.researchgate.net/publication/297738658_Automatic_Methods_for_Assisted_Recruitment
* GNU Parallel was cited in: Tools and techniques for computational
reproducibility
http://biorxiv.org/content/biorxiv/early/2016/03/17/022707.full.pdf
* GNU Parallel was cited in: Reinterpretation of ATLAS 8 TeV searches
for Natural SUSY with a R-Sneutrino LSP
http://arxiv.org/pdf/1603.06130.pdf
* GNU Parallel was cited in: An Operational Radiometric Landsat
Preprocessing Framework for Large-Area Time Series Applications
https://www.uni-trier.de/fileadmin/fb6/prof/FER/Publikationen/frantz_et_al_ieee-tgrs-2016-post-print.pdf
* A basic demo of how GNU Parallel can speed up execution of commands
https://www.youtube.com/watch?v=kl8LO2jcvMc
* Downloading a list of URLs
http://blog.gypsydave5.com/2016/02/04/xargs-and-curl/
* qbatch uses GNU Parallel: https://pypi.python.org/pypi/qbatch/1.0rc2
* FaceCrop uses GNU Parallel: https://github.com/EderSantana/FaceCrop
* Parallel Processing with Catmandu
https://librecatproject.wordpress.com/2016/04/20/parallel-processing-with-catmandu/
* GNU parallel 應用範例
http://staypython.blogspot.dk/2016/04/gnu-parallel.html
* Bug fixes and man page updates.
20160322 20160322
* env_parallel is a function that exports the environment (functions, * env_parallel is a function that exports the environment (functions,

12
README
View file

@ -40,9 +40,9 @@ document.
Full installation of GNU Parallel is as simple as: Full installation of GNU Parallel is as simple as:
wget http://ftpmirror.gnu.org/parallel/parallel-20160322.tar.bz2 wget http://ftpmirror.gnu.org/parallel/parallel-20160422.tar.bz2
bzip2 -dc parallel-20160322.tar.bz2 | tar xvf - bzip2 -dc parallel-20160422.tar.bz2 | tar xvf -
cd parallel-20160322 cd parallel-20160422
./configure && make && sudo make install ./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 If you are not root you can add ~/bin to your path and install in
~/bin and ~/share: ~/bin and ~/share:
wget http://ftpmirror.gnu.org/parallel/parallel-20160322.tar.bz2 wget http://ftpmirror.gnu.org/parallel/parallel-20160422.tar.bz2
bzip2 -dc parallel-20160322.tar.bz2 | tar xvf - bzip2 -dc parallel-20160422.tar.bz2 | tar xvf -
cd parallel-20160322 cd parallel-20160422
./configure --prefix=$HOME && make && make install ./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel Or if your system lacks 'make' you can simply copy src/parallel

20
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.69 for parallel 20160322. # Generated by GNU Autoconf 2.69 for parallel 20160422.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20160322' PACKAGE_VERSION='20160422'
PACKAGE_STRING='parallel 20160322' PACKAGE_STRING='parallel 20160422'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' 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. # 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 20160322 to adapt to many kinds of systems. \`configure' configures parallel 20160422 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1269,7 +1269,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 20160322:";; short | recursive ) echo "Configuration of parallel 20160422:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1345,7 +1345,7 @@ 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 20160322 parallel configure 20160422
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1362,7 +1362,7 @@ 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 20160322, which was It was created by parallel $as_me 20160422, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2225,7 +2225,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20160322' VERSION='20160422'
cat >>confdefs.h <<_ACEOF 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 # 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 20160322, which was This file was extended by parallel $as_me 20160422, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -2929,7 +2929,7 @@ _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 20160322 parallel config.status 20160422
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20160322], [bug-parallel@gnu.org]) AC_INIT([parallel], [20160422], [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

@ -248,6 +248,16 @@ for Big Data Applications https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumb
* <<Citation needed: Introspecting for RSA Key Material to Assist Intrusion Detection http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=7331177&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7331177>> * <<Citation needed: Introspecting for RSA Key Material to Assist Intrusion Detection http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=7331177&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7331177>>
* :::+ and ::::+ work like ::: and :::: but links this input source to the previous input source in a --xapply fashion. Contrary to --xapply values do not wrap: The shortest input source determines the length.
* --line-buffer --keep-order now outputs continously from the oldest job still running. This is more what you would expect than the earlier behaviour where --keep-order had no effect with --line-buffer.
* env_parallel supports tcsh, csh, pdksh. In fish it now supports arrays. In csh/tcsh it now supports variables, aliases, and arrays with no special chars. In pdksh it supports aliases, functions, variables, and arrays.
* Function exporting on Mac OS X works around old Bash version.
* Better CPU detection on OpenIndiana.
* GNU Parallel was cited in: How Can We Measure the Similarity Between Resumes of Selected Candidates for a Job? https://www.researchgate.net/publication/275954089_How_can_we_measure_the_similarity_between_resumes_of_selected_candidates_for_a_job * GNU Parallel was cited in: How Can We Measure the Similarity Between Resumes of Selected Candidates for a Job? https://www.researchgate.net/publication/275954089_How_can_we_measure_the_similarity_between_resumes_of_selected_candidates_for_a_job
* GNU Parallel was cited in: Automatic Methods for Assisted Recruitment https://www.researchgate.net/publication/297738658_Automatic_Methods_for_Assisted_Recruitment * GNU Parallel was cited in: Automatic Methods for Assisted Recruitment https://www.researchgate.net/publication/297738658_Automatic_Methods_for_Assisted_Recruitment

View file

@ -1,6 +1,6 @@
Summary: Shell tool for executing jobs in parallel Summary: Shell tool for executing jobs in parallel
Name: parallel Name: parallel
Version: 20160322 Version: 20160422
Release: 1.1 Release: 1.1
License: GPL License: GPL
Group: Productivity/File utilities Group: Productivity/File utilities

View file

@ -20,6 +20,8 @@ environment to GNU Parallel.
If the shell function is not loaded, a dummy script will be run If the shell function is not loaded, a dummy script will be run
instead that explains how to install the function. instead that explains how to install the function.
B<env_parallel> is alpha quality and not production ready.
=head2 Environment space =head2 Environment space
B<env_parallel> only works if the size of the current environment is B<env_parallel> only works if the size of the current environment is
@ -283,6 +285,48 @@ Not supported by B<csh>.
=back =back
=head2 tcsh
B<env_parallel> for B<tcsh> breaks B<$PARALLEL>, so do not use
B<$PARALLEL>.
Installation
Put this in $HOME/.tcshrc:
source `which env_parallel.tcsh`
E.g. by doing:
echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
=over 8
=item aliases
alias myecho echo
env_parallel myecho ::: test
env_parallel -S server myecho ::: test
=item functions
Not supported by B<tcsh>.
=item variables
set myvar=test
env_parallel echo "\$myvar" ::: test
env_parallel -S tcsh@server echo "\$myvar" ::: test
=item arrays with no special chars
set myarray=(foo bar baz)
env_parallel echo "\${myarray\[\{\}\]}" ::: 1 2 3
env_parallel -S tcsh@server echo "\${myarray\[\{\}\]}" ::: 1 2 3
=back
=head1 EXIT STATUS =head1 EXIT STATUS

View file

@ -27,8 +27,7 @@
if ("`alias env_parallel`" == '') then if ("`alias env_parallel`" == '') then
# Activate alias # Activate alias
## alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.csh`' alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.tcsh`'
alias env_parallel 'setenv PARALLEL "\!*"; source /tmp/env_parallel.csh'
else else
# Get the scalar and array variable names # Get the scalar and array variable names
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(_|killring|prompt2)$'`) set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(_|killring|prompt2)$'`)
@ -40,7 +39,7 @@ else
set _tMpaLLfILe=`tempfile` set _tMpaLLfILe=`tempfile`
foreach _vARnAmE ($_vARnAmES); foreach _vARnAmE ($_vARnAmES);
# if $?myvar && $#myvar <= 1 echo scalar_myvar=$var # if $?myvar && $#myvar <= 1 echo scalar_myvar=$var
eval if'($?'$_vARnAmE' && ${#'$_vARnAmE'} <= 1) echo scalar_'$_vARnAmE'=\"'\"\$$_vARnAmE\"'\"' >> $_tMpvARfILe; eval if'($?'$_vARnAmE' && ${#'$_vARnAmE'} <= 1) echo scalar_'$_vARnAmE'='\"\$$_vARnAmE\" >> $_tMpvARfILe;
# if $?myvar && $#myvar > 1 echo array_myvar=$var # if $?myvar && $#myvar > 1 echo array_myvar=$var
eval if'($?'$_vARnAmE' && ${#'$_vARnAmE'} > 1) echo array_'$_vARnAmE'="$'$_vARnAmE'"' >> $_tMpvARfILe; eval if'($?'$_vARnAmE' && ${#'$_vARnAmE'} > 1) echo array_'$_vARnAmE'="$'$_vARnAmE'"' >> $_tMpvARfILe;
end end

View file

@ -24,7 +24,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20160323; $Global::version = 20160422;
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

@ -1183,7 +1183,7 @@ sub check_invalid_option_combinations {
sub init_globals { sub init_globals {
# Defaults: # Defaults:
$Global::version = 20160420; $Global::version = 20160422;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$Global::infinity = 2**31; $Global::infinity = 2**31;
$Global::debug = 0; $Global::debug = 0;

View file

@ -285,7 +285,7 @@ positional replacement strings see B<{>I<n>B<}>.
See also: B<{=perl expression=}> B<{>I<n>B<}>. See also: B<{=perl expression=}> B<{>I<n>B<}>.
=item B<:::> I<arguments> =item B<:::> I<arguments> (alpha testing)
Use arguments from the command line as input source instead of stdin Use arguments from the command line as input source instead of stdin
(standard input). Unlike other options for GNU B<parallel> B<:::> is (standard input). Unlike other options for GNU B<parallel> B<:::> is
@ -338,7 +338,7 @@ Example:
parallel echo ::: a b c :::+ 1 2 3 ::: X Y :::+ 11 22 parallel echo ::: a b c :::+ 1 2 3 ::: X Y :::+ 11 22
=item B<::::> I<argfiles> =item B<::::> I<argfiles> (alpha testing)
Another way to write B<-a> I<argfile1> B<-a> I<argfile2> ... Another way to write B<-a> I<argfile1> B<-a> I<argfile2> ...
@ -611,7 +611,7 @@ If I<eof-str> is omitted, there is no end of file string. If neither
B<-E> nor B<-e> is used, no end of file string is used. B<-E> nor B<-e> is used, no end of file string is used.
=item B<--env> I<var> =item B<--env> I<var> (alpha testing)
Copy environment variable I<var>. This will copy I<var> to the Copy environment variable I<var>. This will copy I<var> to the
environment that the command is run in. This is especially useful for environment that the command is run in. This is especially useful for
@ -623,28 +623,9 @@ In Bash I<var> can also be a Bash function - just remember to B<export
The variable '_' is special. It will copy all exported environment The variable '_' is special. It will copy all exported environment
variables except for the ones mentioned in ~/.parallel/ignored_vars. variables except for the ones mentioned in ~/.parallel/ignored_vars.
To copy Bash arrays you need an importer function, as Bash arrays To copy the full environment (both exported and not exported
cannot be exported: variables, arrays, and functions) use B<env_parallel> as described
under the option I<command>.
import_array () {
local func=$1; shift;
export $func='() {
'"$(for arr in $@; do
declare -p $arr|sed '1s/declare -./&g/'
done)"'
}'
}
declare -A assoc='([one]="1" [two]="2")'
declare -a indexed='([0]="one" [1]="two")'
import_array my_importer assoc indexed
parallel --env my_importer \
'my_importer; echo "{}" "${indexed[{}]}" "${assoc[${indexed[{}]}]}"' ::: "${!indexed[@]}"
To copy the full environment (both exported and not exported variables
and functions) use env_parallel as described under the option I<command>.
See also: B<--record-env>. See also: B<--record-env>.

View file

@ -566,7 +566,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20160323; $Global::version = 20160422;
$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