mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-26 16:07:54 +00:00
Fixed bug #45907: --header : + --return {header}.
Fixed bug #45906: {= in header =}.
This commit is contained in:
parent
e65907fe88
commit
285e9209a4
|
@ -212,9 +212,9 @@ cc:Tim Cuthbertson <tim3d.junk@gmail.com>,
|
||||||
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
|
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
|
||||||
Jesse Alama <jesse.alama@gmail.com>
|
Jesse Alama <jesse.alama@gmail.com>
|
||||||
|
|
||||||
Subject: GNU Parallel 20150822 ('<<>>') released <<[stable]>>
|
Subject: GNU Parallel 20150822 ('Aylan Kurdi') released <<[stable]>>
|
||||||
|
|
||||||
GNU Parallel 20150922 ('<<>>') <<[stable]>> has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/
|
GNU Parallel 20150922 ('Aylan Kurdi') <<[stable]>> has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/
|
||||||
|
|
||||||
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
||||||
|
|
||||||
|
@ -241,6 +241,10 @@ New in this release:
|
||||||
|
|
||||||
* Crop and resize images with bash and ImageMagick https://www.simonholywell.com/post/2015/08/image-resize-crop-bash-imagemagick/
|
* Crop and resize images with bash and ImageMagick https://www.simonholywell.com/post/2015/08/image-resize-crop-bash-imagemagick/
|
||||||
|
|
||||||
|
* Three Ways to Script Processes in Parallel http://www.codeword.xyz/2015/09/02/three-ways-to-script-processes-in-parallel/
|
||||||
|
|
||||||
|
* L’Exploration De Données Twitter http://blog.inovia-conseil.fr/?p=233
|
||||||
|
|
||||||
* Bug fixes and man page updates.
|
* Bug fixes and man page updates.
|
||||||
|
|
||||||
GNU Parallel - For people who live life in the parallel lane.
|
GNU Parallel - For people who live life in the parallel lane.
|
||||||
|
|
|
@ -78,9 +78,7 @@ if($opt::header and not $opt::pipe) {
|
||||||
for my $s (split /$delimiter/o, $line) {
|
for my $s (split /$delimiter/o, $line) {
|
||||||
::debug("init", "Colname: '$s'");
|
::debug("init", "Colname: '$s'");
|
||||||
# Replace {colname} with {2}
|
# Replace {colname} with {2}
|
||||||
# TODO accept configurable short hands
|
for(@command,@Global::ret_files) {
|
||||||
# TODO how to deal with headers in {=...=}
|
|
||||||
for(@command) {
|
|
||||||
s:\{$s(|/|//|\.|/\.)\}:\{$id$1\}:g;
|
s:\{$s(|/|//|\.|/\.)\}:\{$id$1\}:g;
|
||||||
}
|
}
|
||||||
$Global::input_source_header{$id} = $s;
|
$Global::input_source_header{$id} = $s;
|
||||||
|
@ -1099,7 +1097,7 @@ sub parse_options {
|
||||||
|
|
||||||
sub init_globals {
|
sub init_globals {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20150823;
|
$Global::version = 20150909;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
@ -8322,6 +8320,7 @@ sub new {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# Replace replacement strings with {= perl expr =}
|
# Replace replacement strings with {= perl expr =}
|
||||||
|
# '{=' 'perlexpr' '=}' => '{= perlexpr =}'
|
||||||
@command = merge_rpl_parts(@command);
|
@command = merge_rpl_parts(@command);
|
||||||
|
|
||||||
# Protect matching inside {= perl expr =}
|
# Protect matching inside {= perl expr =}
|
||||||
|
|
|
@ -3900,11 +3900,8 @@ B<make -j> can run jobs in parallel, but requires a crafted Makefile
|
||||||
to do this. That results in extra quoting to get filename containing
|
to do this. That results in extra quoting to get filename containing
|
||||||
newline to work correctly.
|
newline to work correctly.
|
||||||
|
|
||||||
B<make -j> has no support for grouping the output, therefore output
|
B<make -j> computes a dependency graph before running jobs. Jobs run
|
||||||
may run together, e.g. the first half of a line is from one process
|
by GNU B<parallel> does not depend on eachother.
|
||||||
and the last half of the line is from another process. The example
|
|
||||||
B<Parallel grep> cannot be done reliably with B<make -j> because of
|
|
||||||
this.
|
|
||||||
|
|
||||||
(Very early versions of GNU B<parallel> were coincidently implemented
|
(Very early versions of GNU B<parallel> were coincidently implemented
|
||||||
using B<make -j>).
|
using B<make -j>).
|
||||||
|
|
|
@ -40,7 +40,7 @@ prereqlocal: installparallel
|
||||||
which timeout || (echo timeout is required for testsuite; /bin/false)
|
which timeout || (echo timeout is required for testsuite; /bin/false)
|
||||||
|
|
||||||
prereqremote: installparallel startvm
|
prereqremote: installparallel startvm
|
||||||
parallel --timeout 5 --tag ssh parallel@parallel-server{} parallel --minversion 20121021 ::: 1 2 3 || (echo parallel on remote required for testsuite; /bin/true)
|
parallel --timeout 10 --tag ssh parallel@parallel-server{} parallel --minversion 20121021 ::: 1 2 3 || (echo parallel on remote required for testsuite; /bin/true)
|
||||||
|
|
||||||
startvm:
|
startvm:
|
||||||
# Make sure we can reach the virtual machines
|
# Make sure we can reach the virtual machines
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# SSH only allowed to localhost/lo
|
# SSH only allowed to localhost/lo
|
||||||
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj2 -k --joblog /tmp/jl-`basename $0` -L1
|
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj2 --retries 3 -k --joblog /tmp/jl-`basename $0` -L1
|
||||||
echo '### --hostgroup force ncpu'
|
echo '### --hostgroup force ncpu'
|
||||||
parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.2{} ::: {1..8} | sort
|
parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.2{} ::: {1..8} | sort
|
||||||
|
|
||||||
|
@ -64,4 +64,14 @@ echo '### Uniq {=perlexpr=} in return - not used in command'
|
||||||
echo '### functions and --nice'
|
echo '### functions and --nice'
|
||||||
myfunc() { echo OK $*; }; export -f myfunc; parallel --nice 10 --env myfunc -S parallel@lo myfunc ::: func
|
myfunc() { echo OK $*; }; export -f myfunc; parallel --nice 10 --env myfunc -S parallel@lo myfunc ::: func
|
||||||
|
|
||||||
|
echo '### bug #45906: {= in header =}'
|
||||||
|
rm -f returnfile45906;
|
||||||
|
parallel --rpl '{G} $_=lc($_)' -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: RETURNFILE45906;
|
||||||
|
ls returnfile45906
|
||||||
|
|
||||||
|
echo '### bug #45907: --header : + --return {header}'
|
||||||
|
rm returnfile45907;
|
||||||
|
ppar --header : -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: G returnfile45907;
|
||||||
|
ls returnfile45907
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -105,3 +105,11 @@ echo '### functions and --nice'
|
||||||
### functions and --nice
|
### functions and --nice
|
||||||
myfunc() { echo OK $*; }; export -f myfunc; parallel --nice 10 --env myfunc -S parallel@lo myfunc ::: func
|
myfunc() { echo OK $*; }; export -f myfunc; parallel --nice 10 --env myfunc -S parallel@lo myfunc ::: func
|
||||||
OK func
|
OK func
|
||||||
|
echo '### bug #45906: {= in header =}'
|
||||||
|
### bug #45906: {= in header =}
|
||||||
|
rm -f returnfile45906; parallel --rpl '{G} $_=lc($_)' -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: RETURNFILE45906; ls returnfile45906
|
||||||
|
returnfile45906
|
||||||
|
echo '### bug #45907: --header : + --return {header}'
|
||||||
|
### bug #45907: --header : + --return {header}
|
||||||
|
rm returnfile45907; ppar --header : -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: G returnfile45907; ls returnfile45907
|
||||||
|
returnfile45907
|
||||||
|
|
Loading…
Reference in a new issue