parallel: retired -g -B -T -U -W -Y

This commit is contained in:
Ole Tange 2012-01-07 02:24:50 +01:00
parent 7422375902
commit dbfb878246
5 changed files with 95 additions and 55 deletions

View file

@ -137,10 +137,10 @@ https://savannah.gnu.org/news/approve.php?group=parallel
http://freshmeat.net/projects/parallel/releases/new http://freshmeat.net/projects/parallel/releases/new
== Update Twitter == == Update Diaspora Twitter ==
New version of #GNU Parallel released. See what is new in this release New version of #GNU Parallel released. See what is new in this release
http://nd.gd/2j Watch the intro video http://nd.gd/039 http://nd.gd/2j Watch the intro videos http://nd.gd/039
https://savannah.gnu.org/news/?group=parallel https://savannah.gnu.org/news/?group=parallel
@ -168,37 +168,46 @@ https://lists.gnu.org/mailman/admindb/parallel
<<<<< <<<<<
from:tange@gnu.org from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org, info-gnu@gnu.org, bug-directory@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org
cc:Sandro Cazzaniga <kharec@mandriva.org>, cc:Sandro Cazzaniga <kharec@mandriva.org>,
Tim Cuthbertson <tim3d.junk@gmail.com>, Ludovic Courtès Tim Cuthbertson <tim3d.junk@gmail.com>,
<ludo@gnu.org>, Markus Ammer <mkmm@gmx-topmail.de>, Pavel Nuzhdin Steven M. Christensen <sunfreeware@gmail.com>,
<pnzhdin@gmail.com>, Phil Sung <psung@alum.mit.edu>, Michael Ludovic Courtès <ludo@gnu.org>, Markus Ammer <mkmm@gmx-topmail.de>,
Shigorin <mike@altlinux.org>, Andrew McFague <amcfague@wgen.net>, Pavel Nuzhdin <pnzhdin@gmail.com>, Phil Sung <psung@alum.mit.edu>,
Steven M. Christensen <sunfreeware@gmail.com>, Chris Howey Michael Shigorin <mike@altlinux.org>,
<howeyc@gmail.com>, Fethican Coşkuner <fethicanc@gmail.com>, Andrew McFague <amcfague@wgen.net>,
Rogério Brito <rbrito@ime.usp.br>, Koen Vervloesem Chris Howey <howeyc@gmail.com>,
<koen@vervloesem.eu>, R. Tyler Croy <tyler@monkeypox.org>, Fethican Coşkuner <fethicanc@gmail.com>,
Rogério Brito <rbrito@ime.usp.br>,
Koen Vervloesem <koen@vervloesem.eu>,
R. Tyler Croy <tyler@monkeypox.org>,
kerick@shiftedbit.net, Christian Faulhammer <fauli@gentoo.org>, kerick@shiftedbit.net, Christian Faulhammer <fauli@gentoo.org>,
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>, Jesse Alama Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
<jesse.alama@gmail.com> Jesse Alama <jesse.alama@gmail.com>
Subject: GNU Parallel 20111222 ('Hitchens') released Subject: GNU Parallel 20120122 ('Fhqwhgads') released
GNU Parallel 20111122 ('Hitchens') has been released. It is GNU Parallel 20120122 ('Fhqwhgads') 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 bugfix release with no new features. Probably a good release
for stable long-term use.
New in this release: New in this release:
* --timeout will now kill grandchildren. * Blog post on using GNU Parallel to speed up BLAST queries:
http://blog.mckuhn.de/2012/01/embarrassingly-parallel-blast-search.html
* Interview in Hacker Public Radio. * Show your support for GNU Parallel. For 20 EUR incl world wide
http://hackerpublicradio.org/eps.php?id=0860 shipping get a GNU Parallel T-shirt+mug+pen+100 postcards. Email
your shirt size and address for details to
parallel-support@tange.dk.
* Blog post in Chinese. * Video showing Wake-on-LAN with GNU Parallel.
http://blog.sina.com.cn/s/blog_3f7652740100y0ju.html https://www.youtube.com/watch?v=0mB-yIyKFLQ
* Using GNU Parallel with Solr.
http://sujitpal.blogspot.com/2011/12/solr-report-generation-with-python.html
* First job ad including GNU Parallel:
http://seeker.dice.com/jobsearch/servlet/JobSearch?op=101&dockey=xml/7/6/76f858de083a094f74b1a5d3ba53ffc5@endecaindex
* Bug fixes and man page updates. * Bug fixes and man page updates.

View file

@ -92,13 +92,13 @@ if($::opt_nonall or $::opt_onall) {
join(" ", join(" ",
((defined $::opt_P) ? "-P $::opt_P" : ""), ((defined $::opt_P) ? "-P $::opt_P" : ""),
((defined $::opt_u) ? "-u" : ""), ((defined $::opt_u) ? "-u" : ""),
((defined $::opt_g) ? "-g" : ""), ((defined $::opt_group) ? "-g" : ""),
((defined $::opt_D) ? "-D" : ""), ((defined $::opt_D) ? "-D" : ""),
); );
my $suboptions = my $suboptions =
join(" ", join(" ",
((defined $::opt_u) ? "-u" : ""), ((defined $::opt_u) ? "-u" : ""),
((defined $::opt_g) ? "-g" : ""), ((defined $::opt_group) ? "-g" : ""),
((defined @::opt_v) ? "-vv" : ""), ((defined @::opt_v) ? "-vv" : ""),
((defined $::opt_D) ? "-D" : ""), ((defined $::opt_D) ? "-D" : ""),
((defined $::opt_timeout) ? "--timeout ".$::opt_timeout : ""), ((defined $::opt_timeout) ? "--timeout ".$::opt_timeout : ""),
@ -388,12 +388,14 @@ sub options_hash {
"joblog=s" => \$::opt_joblog, "joblog=s" => \$::opt_joblog,
"silent" => \$::opt_silent, "silent" => \$::opt_silent,
"keep-order|keeporder|k" => \$::opt_k, "keep-order|keeporder|k" => \$::opt_k,
"group|g" => \$::opt_g, "group" => \$::opt_group,
"g" => \$::opt_retired,
"ungroup|u" => \$::opt_u, "ungroup|u" => \$::opt_u,
"null|0" => \$::opt_0, "null|0" => \$::opt_0,
"quote|q" => \$::opt_q, "quote|q" => \$::opt_q,
"I=s" => \$::opt_I, "I=s" => \$::opt_I,
"extensionreplace|er|U=s" => \$::opt_U, "extensionreplace|er" => \$::opt_U,
"U=s" => \$::opt_retired,
"basenamereplace|bnr=s" => \$::opt_basenamereplace, "basenamereplace|bnr=s" => \$::opt_basenamereplace,
"dirnamereplace|dnr=s" => \$::opt_dirnamereplace, "dirnamereplace|dnr=s" => \$::opt_dirnamereplace,
"basenameextensionreplace|bner=s" => \$::opt_basenameextensionreplace, "basenameextensionreplace|bner=s" => \$::opt_basenameextensionreplace,
@ -419,12 +421,16 @@ sub options_hash {
"trc=s" => \@::opt_trc, "trc=s" => \@::opt_trc,
"transfer" => \$::opt_transfer, "transfer" => \$::opt_transfer,
"cleanup" => \$::opt_cleanup, "cleanup" => \$::opt_cleanup,
"basefile|bf|B=s" => \@::opt_basefile, "basefile|bf" => \@::opt_basefile,
"workdir|wd|W=s" => \$::opt_workdir, "B=s" => \$::opt_retired,
"workdir|wd=s" => \$::opt_workdir,
"W=s" => \$::opt_retired,
"tmpdir=s" => \$::opt_tmpdir, "tmpdir=s" => \$::opt_tmpdir,
"tempdir=s" => \$::opt_tmpdir, "tempdir=s" => \$::opt_tmpdir,
"tty|T" => \$::opt_tty, "tty" => \$::opt_tty,
"halt-on-error|halt|H=i" => \$::opt_halt_on_error, "T" => \$::opt_retired,
"halt-on-error|halt=i" => \$::opt_halt_on_error,
"H=i" => \$::opt_retired,
"retries=i" => \$::opt_retries, "retries=i" => \$::opt_retries,
"dry-run|dryrun" => \$::opt_dryrun, "dry-run|dryrun" => \$::opt_dryrun,
"progress" => \$::opt_progress, "progress" => \$::opt_progress,
@ -472,8 +478,9 @@ sub options_hash {
"fg" => \$::opt_fg, "fg" => \$::opt_fg,
"bg" => \$::opt_bg, "bg" => \$::opt_bg,
"wait" => \$::opt_wait, "wait" => \$::opt_wait,
# Shebang #!/usr/bin/parallel -Yotheroptions # Shebang #!/usr/bin/parallel --shebang
"Y|shebang|hashbang" => \$::opt_shebang, "shebang|hashbang" => \$::opt_shebang,
"Y" => \$::opt_retired,
"skip-first-line" => \$::opt_skip_first_line, "skip-first-line" => \$::opt_skip_first_line,
); );
} }
@ -532,12 +539,22 @@ sub parse_options {
@ARGV=read_options(); @ARGV=read_options();
if(defined $::opt_retired) {
print STDERR "$Global::progname: -g has been retired. Use --group.\n";
print STDERR "$Global::progname: -B has been retired. Use --bf.\n";
print STDERR "$Global::progname: -T has been retired. Use --tty.\n";
print STDERR "$Global::progname: -U has been retired. Use --er.\n";
print STDERR "$Global::progname: -W has been retired. Use --wd.\n";
print STDERR "$Global::progname: -Y has been retired. Use --shebang.\n";
print STDERR "$Global::progname: -H has been retired. Use --halt.\n";
::wait_and_exit(255);
}
if(defined @::opt_v) { $Global::verbose = $#::opt_v+1; } # Convert -v -v to v=2 if(defined @::opt_v) { $Global::verbose = $#::opt_v+1; } # Convert -v -v to v=2
$Global::debug = (defined $::opt_D); $Global::debug = (defined $::opt_D);
if(defined $::opt_X) { $Global::ContextReplace = 1; } if(defined $::opt_X) { $Global::ContextReplace = 1; }
if(defined $::opt_silent) { $Global::verbose = 0; } if(defined $::opt_silent) { $Global::verbose = 0; }
if(defined $::opt_k) { $Global::keeporder = 1; } if(defined $::opt_k) { $Global::keeporder = 1; }
if(defined $::opt_g) { $Global::grouped = 1; } if(defined $::opt_group) { $Global::grouped = 1; }
if(defined $::opt_u) { $Global::grouped = 0; } if(defined $::opt_u) { $Global::grouped = 0; }
if(defined $::opt_0) { $/ = "\0"; } if(defined $::opt_0) { $/ = "\0"; }
if(defined $::opt_d) { my $e="sprintf \"$::opt_d\""; $/ = eval $e; } if(defined $::opt_d) { my $e="sprintf \"$::opt_d\""; $/ = eval $e; }
@ -608,7 +625,7 @@ sub parse_options {
if(not defined $::opt_P) { if(not defined $::opt_P) {
$::opt_P = 1; $::opt_P = 1;
} }
if(not defined $::opt_g) { if(not defined $::opt_group) {
$Global::grouped = 0; $Global::grouped = 0;
} }
} }
@ -729,11 +746,9 @@ sub read_options {
# Returns: # Returns:
# @ARGV without --options # @ARGV without --options
# This must be done first as this may exec myself # This must be done first as this may exec myself
if(defined $ARGV[0] and ($ARGV[0]=~/^-Y/ or $ARGV[0]=~/^--shebang / or if(defined $ARGV[0] and ($ARGV[0]=~/^--shebang / or
$ARGV[0]=~/^--hashbang /)) { $ARGV[0]=~/^--hashbang /)) {
# Program is called from #! line in script # Program is called from #! line in script
$ARGV[0]=~s/^-Y( |$)//; # remove -Y if on its own
$ARGV[0]=~s/^-Y/-/; # remove -Y if bundled with other options
$ARGV[0]=~s/^--shebang *//; # remove --shebang if it is set $ARGV[0]=~s/^--shebang *//; # remove --shebang if it is set
$ARGV[0]=~s/^--hashbang *//; # remove --hashbang if it is set $ARGV[0]=~s/^--hashbang *//; # remove --hashbang if it is set
my $argfile = pop @ARGV; my $argfile = pop @ARGV;

View file

@ -292,12 +292,10 @@ See also: B<:::>.
=item B<--bf> I<file> =item B<--bf> I<file>
=item B<-B> I<file> (-B will be retired 20120122)
I<file> will be transferred to each sshlogin before a jobs is I<file> will be transferred to each sshlogin before a jobs is
started. It will be removed if B<--cleanup> is active. The file may be started. It will be removed if B<--cleanup> is active. The file may be
a script to run or some common base data needed for the jobs. a script to run or some common base data needed for the jobs.
Multiple B<-B> can be specified to transfer more basefiles. The Multiple B<--bf> can be specified to transfer more basefiles. The
I<file> will be transferred the same way as B<--transfer>. I<file> will be transferred the same way as B<--transfer>.
@ -458,8 +456,6 @@ B<--gnu> takes precedence.
=item B<--group> =item B<--group>
=item B<-g> (-g will be retired 20120122)
Group output. Output from each jobs is grouped together and is only Group output. Output from each jobs is grouped together and is only
printed when the command is finished. stderr (standard error) first printed when the command is finished. stderr (standard error) first
followed by stdout (standard output). This takes some CPU time. In followed by stdout (standard output). This takes some CPU time. In
@ -482,8 +478,6 @@ Print a summary of the options to GNU B<parallel> and exit.
=item B<--halt> <0|1|2> =item B<--halt> <0|1|2>
=item B<-H> <0|1|2> (-H will be retired 20120122)
=over 3 =over 3
=item 0 =item 0
@ -1150,8 +1144,6 @@ Can be reversed with B<-v>.
=item B<--tty> =item B<--tty>
=item B<-T> (-T will be retired 20120122)
Open terminal tty. If GNU B<parallel> is used for starting an Open terminal tty. If GNU B<parallel> is used for starting an
interactive program then this option may be needed. It will start only interactive program then this option may be needed. It will start only
one job at a time (i.e. B<-j1>), not buffer the output (i.e. B<-u>), one job at a time (i.e. B<-j1>), not buffer the output (i.e. B<-u>),
@ -1272,8 +1264,6 @@ faster with B<-u>. Can be reversed with B<--group>.
=item B<--er> I<replace-str> =item B<--er> I<replace-str>
=item B<-U> I<replace-str> (-U will be retired 20120122)
Use the replacement string I<replace-str> instead of {.} for input line without extension. Use the replacement string I<replace-str> instead of {.} for input line without extension.
@ -1308,8 +1298,6 @@ Print the version GNU B<parallel> and exit.
=item B<--wd> I<mydir> =item B<--wd> I<mydir>
=item B<-W> I<mydir> (-W will be retired 20120122)
Files transferred using B<--transfer> and B<--return> will be relative Files transferred using B<--transfer> and B<--return> will be relative
to I<mydir> on remote computers, and the command will be executed in to I<mydir> on remote computers, and the command will be executed in
that dir. The special workdir B<...> will create a workdir in that dir. The special workdir B<...> will create a workdir in
@ -1371,8 +1359,6 @@ Compare these two:
=item B<--hashbang> =item B<--hashbang>
=item B<-Y> (-Y will be retired 20120122)
GNU B<Parallel> can be called as a shebang (#!) command as the first line of a script. Like this: GNU B<Parallel> can be called as a shebang (#!) command as the first line of a script. Like this:
#!/usr/bin/parallel --shebang -r traceroute #!/usr/bin/parallel --shebang -r traceroute
@ -2112,9 +2098,9 @@ same time:
You can use GNU B<parallel> to start interactive programs like emacs or vi: You can use GNU B<parallel> to start interactive programs like emacs or vi:
B<cat filelist | parallel -T -X emacs> B<cat filelist | parallel --tty -X emacs>
B<cat filelist | parallel -T -X vi> B<cat filelist | parallel --tty -X vi>
If there are more files than will fit on a single command line, the If there are more files than will fit on a single command line, the
editor will be started again with the remaining files. editor will be started again with the remaining files.

View file

@ -4,6 +4,14 @@
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -j10 -k -L1 cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -j10 -k -L1
echo '### Test --timeout'; echo '### Test --timeout';
parallel -j0 -k --timeout 1 echo {}\; sleep {}\; echo {} ::: 1.1 2.2 3.3 4.4 parallel -j0 -k --timeout 1 echo {}\; sleep {}\; echo {} ::: 1.1 2.2 3.3 4.4
echo '### Test retired';
stdout parallel -B;
stdout parallel -g;
stdout parallel -H;
stdout parallel -T;
stdout parallel -U;
stdout parallel -W;
stdout parallel -Y;
EOF EOF
echo '### Test --shellquote' echo '### Test --shellquote'

View file

@ -4,6 +4,28 @@
2.2 2.2
3.3 3.3
4.4 4.4
### Test retired
parallel: -g has been retired. Use --group.
parallel: -B has been retired. Use --bf.
parallel: -T has been retired. Use --tty.
parallel: -U has been retired. Use --er.
parallel: -W has been retired. Use --wd.
parallel: -Y has been retired. Use --shebang.
parallel: -H has been retired. Use --halt.
parallel: -g has been retired. Use --group.
parallel: -B has been retired. Use --bf.
parallel: -T has been retired. Use --tty.
parallel: -U has been retired. Use --er.
parallel: -W has been retired. Use --wd.
parallel: -Y has been retired. Use --shebang.
parallel: -H has been retired. Use --halt.
parallel: -g has been retired. Use --group.
parallel: -B has been retired. Use --bf.
parallel: -T has been retired. Use --tty.
parallel: -U has been retired. Use --er.
parallel: -W has been retired. Use --wd.
parallel: -Y has been retired. Use --shebang.
parallel: -H has been retired. Use --halt.
### Test --shellquote ### Test --shellquote
awk\ -v\ FS=\"\\\",\\\"\"\ \'\{print\ \$1,\ \$3,\ \$4,\ \$5,\ \$9,\ \$14\}\'\ \|\ grep\ -v\ \"\#\"\ \|\ sed\ -e\ \'1d\'\ -e\ \'s/\\\"//g\'\ -e\ \'s/\\/\\/\\//\\t/g\'\ \|\ cut\ -f1-6,11\ \|\ sed\ -e\ \'s/\\/\\//\\t/g\'\ -e\ \'s/\ /\\t/g awk\ -v\ FS=\"\\\",\\\"\"\ \'\{print\ \$1,\ \$3,\ \$4,\ \$5,\ \$9,\ \$14\}\'\ \|\ grep\ -v\ \"\#\"\ \|\ sed\ -e\ \'1d\'\ -e\ \'s/\\\"//g\'\ -e\ \'s/\\/\\/\\//\\t/g\'\ \|\ cut\ -f1-6,11\ \|\ sed\ -e\ \'s/\\/\\//\\t/g\'\ -e\ \'s/\ /\\t/g
### Test make .deb package ### Test make .deb package