mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 14:07:55 +00:00
parallel: tmux uses $TMUX, so rename it to: $PARALLEL_TMUX.
This commit is contained in:
parent
f9f52c083e
commit
55eaf48197
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Check that documentation is updated (compare to web):
|
Check that documentation is updated (compare to web):
|
||||||
|
|
||||||
Fixet for 20161022
|
Fixet for 20161122
|
||||||
git diff last-release-commit
|
git diff last-release-commit
|
||||||
Unmodified beta since last version => production
|
Unmodified beta since last version => production
|
||||||
Unmodified alpha since last version => beta
|
Unmodified alpha since last version => beta
|
||||||
|
@ -219,18 +219,24 @@ 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 20161022 ('Matthew') released <<[stable]>>
|
Subject: GNU Parallel 20161122 ('Hillary') released <<[stable]>>
|
||||||
|
|
||||||
GNU Parallel 20161022 ('Matthew') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
GNU Parallel 20161122 ('Hillary') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/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.>>
|
||||||
|
|
||||||
Haiku of the month:
|
Haiku of the month:
|
||||||
|
|
||||||
|
Speed is good for you
|
||||||
|
Multi speed is better still
|
||||||
|
Use GNU Parallel
|
||||||
-- Ole Tange
|
-- Ole Tange
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
|
http://g-liu.com/blog/2016/10/tutorial-parallel-web-scraping-with-casperjs-and-gnu-parallel/
|
||||||
|
|
||||||
|
|
||||||
* <<Possibly http://link.springer.com/chapter/10.1007%2F978-3-319-22053-6_46>>
|
* <<Possibly http://link.springer.com/chapter/10.1007%2F978-3-319-22053-6_46>>
|
||||||
|
|
||||||
* <<Possibly http://link.springer.com/article/10.1007/s12021-015-9290-5>>
|
* <<Possibly http://link.springer.com/article/10.1007/s12021-015-9290-5>>
|
||||||
|
@ -263,14 +269,6 @@ for Big Data Applications https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumb
|
||||||
|
|
||||||
* <<Possible: http://link.springer.com/article/10.1007/s12021-015-9290-5 http://link.springer.com/protocol/10.1007/978-1-4939-3578-9_14>>
|
* <<Possible: http://link.springer.com/article/10.1007/s12021-015-9290-5 http://link.springer.com/protocol/10.1007/978-1-4939-3578-9_14>>
|
||||||
|
|
||||||
* First command no longer gets stdin as it causes unpredictable issues.
|
|
||||||
|
|
||||||
* GNU Parallel was cited in: Efficiently parallelized modeling of tightly focused, large bandwidth laser pulses https://arxiv.org/pdf/1609.08146v1.pdf
|
|
||||||
|
|
||||||
* How to crunch lots of geodata in parallel http://blog.faraday.io/how-to-crunch-lots-of-geodata-in-parallel/
|
|
||||||
|
|
||||||
* GNU parallel is my new toaster http://amedee.me/gnu-parallel-is-my-new-toaster/index.html
|
|
||||||
|
|
||||||
* 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.
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
$Global::progname="niceload";
|
$Global::progname="niceload";
|
||||||
$Global::version = 20161022;
|
$Global::version = 20161023;
|
||||||
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) {
|
||||||
|
|
18
src/parallel
18
src/parallel
|
@ -1210,7 +1210,7 @@ sub check_invalid_option_combinations {
|
||||||
|
|
||||||
sub init_globals {
|
sub init_globals {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20161022;
|
$Global::version = 20161023;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
@ -7922,14 +7922,14 @@ sub print_dryrun_and_verbose {
|
||||||
}
|
}
|
||||||
|
|
||||||
my $tmux;
|
my $tmux;
|
||||||
$ENV{'TMUX'} ||= "tmux";
|
$ENV{'PARALLEL_TMUX'} ||= "tmux";
|
||||||
if(not $tmuxsocket) {
|
if(not $tmuxsocket) {
|
||||||
$tmuxsocket = ::tmpname("tms");
|
$tmuxsocket = ::tmpname("tms");
|
||||||
::status("See output with: $ENV{'TMUX'} -S $tmuxsocket attach");
|
::status("See output with: $ENV{'PARALLEL_TMUX'} -S $tmuxsocket attach");
|
||||||
}
|
}
|
||||||
$tmux = "sh -c '".
|
$tmux = "sh -c '".
|
||||||
$ENV{'TMUX'}." -S $tmuxsocket new-session -s p$$ -d \"sleep .2\" >/dev/null 2>&1';" .
|
$ENV{'PARALLEL_TMUX'}." -S $tmuxsocket new-session -s p$$ -d \"sleep .2\" >/dev/null 2>&1';" .
|
||||||
$ENV{'TMUX'}." -S $tmuxsocket new-window -t p$$ -n $title";
|
$ENV{'PARALLEL_TMUX'}." -S $tmuxsocket new-window -t p$$ -n $title";
|
||||||
|
|
||||||
::debug("tmux", "title len:", $l_tit, " act ", $l_act, " max ",
|
::debug("tmux", "title len:", $l_tit, " act ", $l_act, " max ",
|
||||||
$Limits::Command::line_max_len, " tot ",
|
$Limits::Command::line_max_len, " tot ",
|
||||||
|
@ -9414,15 +9414,15 @@ sub tmux_length {
|
||||||
# $tmux_len = maximal length runable in tmux
|
# $tmux_len = maximal length runable in tmux
|
||||||
my $len = shift;
|
my $len = shift;
|
||||||
if($opt::tmux) {
|
if($opt::tmux) {
|
||||||
$ENV{'TMUX'} ||= "tmux";
|
$ENV{'PARALLEL_TMUX'} ||= "tmux";
|
||||||
if(not ::which($ENV{'TMUX'})) {
|
if(not ::which($ENV{'PARALLEL_TMUX'})) {
|
||||||
::error($ENV{'TMUX'}." not found in \$PATH.");
|
::error($ENV{'PARALLEL_TMUX'}." not found in \$PATH.");
|
||||||
::wait_and_exit(255);
|
::wait_and_exit(255);
|
||||||
}
|
}
|
||||||
my @out;
|
my @out;
|
||||||
for my $l (1, 2020, 16320, 100000, $len) {
|
for my $l (1, 2020, 16320, 100000, $len) {
|
||||||
my $tmpfile = ::tmpname("tms");
|
my $tmpfile = ::tmpname("tms");
|
||||||
my $tmuxcmd = $ENV{'TMUX'}." -S $tmpfile new-session -d -n echo $l".
|
my $tmuxcmd = $ENV{'PARALLEL_TMUX'}." -S $tmpfile new-session -d -n echo $l".
|
||||||
("x"x$l). " && echo $l; rm -f $tmpfile";
|
("x"x$l). " && echo $l; rm -f $tmpfile";
|
||||||
push @out, ::qqx($tmuxcmd);
|
push @out, ::qqx($tmuxcmd);
|
||||||
::rm($tmpfile);
|
::rm($tmpfile);
|
||||||
|
|
|
@ -3873,6 +3873,11 @@ B<Example:>
|
||||||
echo seq:'$'PARALLEL_SEQ arg1:{1} arg2:{2}
|
echo seq:'$'PARALLEL_SEQ arg1:{1} arg2:{2}
|
||||||
|
|
||||||
|
|
||||||
|
=item $PARALLEL_TMUX
|
||||||
|
|
||||||
|
Path to B<tmux>. If unset the B<tmux> in $PATH is used.
|
||||||
|
|
||||||
|
|
||||||
=item $TMPDIR
|
=item $TMPDIR
|
||||||
|
|
||||||
Directory for temporary files. See: B<--tmpdir>.
|
Directory for temporary files. See: B<--tmpdir>.
|
||||||
|
@ -4964,9 +4969,10 @@ be small and simple, so try to remove as many options as possible. A
|
||||||
combination of B<yes>, B<seq>, B<cat>, B<echo>, and B<sleep> can
|
combination of B<yes>, B<seq>, B<cat>, B<echo>, and B<sleep> can
|
||||||
reproduce most errors. If your example requires large files, see if
|
reproduce most errors. If your example requires large files, see if
|
||||||
you can make them by something like B<seq 1000000> > B<file> or B<yes
|
you can make them by something like B<seq 1000000> > B<file> or B<yes
|
||||||
| head -n 10000000> > B<file>. If your example requires remote
|
| head -n 10000000> > B<file>.
|
||||||
execution, see if you can use B<localhost> - maybe using another
|
|
||||||
login.
|
If your example requires remote execution, see if you can use
|
||||||
|
B<localhost> - maybe using another login.
|
||||||
|
|
||||||
=item *
|
=item *
|
||||||
|
|
||||||
|
@ -4986,6 +4992,7 @@ If you suspect the error is dependent on your environment or
|
||||||
distribution, please see if you can reproduce the error on one of
|
distribution, please see if you can reproduce the error on one of
|
||||||
these VirtualBox images:
|
these VirtualBox images:
|
||||||
http://sourceforge.net/projects/virtualboximage/files/
|
http://sourceforge.net/projects/virtualboximage/files/
|
||||||
|
http://www.osboxes.org/virtualbox-images/
|
||||||
|
|
||||||
Specifying the name of your distribution is not enough as you may have
|
Specifying the name of your distribution is not enough as you may have
|
||||||
installed software that is not in the VirtualBox images.
|
installed software that is not in the VirtualBox images.
|
||||||
|
|
|
@ -860,7 +860,11 @@ Output (the order may be different):
|
||||||
GNU B<parallel> can also \-quote full lines. Simply run this:
|
GNU B<parallel> can also \-quote full lines. Simply run this:
|
||||||
|
|
||||||
parallel --shellquote
|
parallel --shellquote
|
||||||
parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.
|
parallel: Warning: Input is read from the terminal. You either know what you
|
||||||
|
parallel: Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot
|
||||||
|
parallel: Warning: ::: or :::: or to pipe data into parallel. If so
|
||||||
|
parallel: Warning: consider going through the tutorial: man parallel_tutorial
|
||||||
|
parallel: Warning: Press CTRL-D to exit.
|
||||||
perl -e 'print "@ARGV\n"'
|
perl -e 'print "@ARGV\n"'
|
||||||
[CTRL-D]
|
[CTRL-D]
|
||||||
|
|
||||||
|
|
2
src/sql
2
src/sql
|
@ -566,7 +566,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
||||||
exit ($err);
|
exit ($err);
|
||||||
|
|
||||||
sub parse_options {
|
sub parse_options {
|
||||||
$Global::version = 20161022;
|
$Global::version = 20161023;
|
||||||
$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
|
||||||
|
|
|
@ -115,8 +115,8 @@ echo '### bug #44614: --pipepart --header off by one'
|
||||||
parallel --pipepart -a /tmp/parallel_44616 -k --block 2 --regexp --recend 3'\n' 'echo foo; cat';
|
parallel --pipepart -a /tmp/parallel_44616 -k --block 2 --regexp --recend 3'\n' 'echo foo; cat';
|
||||||
rm /tmp/parallel_44616
|
rm /tmp/parallel_44616
|
||||||
|
|
||||||
echo '### TMUX not found'
|
echo '### PARALLEL_TMUX not found'
|
||||||
TMUX=not-existing parallel --tmux echo ::: 1
|
PARALLEL_TMUX=not-existing parallel --tmux echo ::: 1
|
||||||
|
|
||||||
echo '**'
|
echo '**'
|
||||||
|
|
||||||
|
|
|
@ -12,38 +12,38 @@ par_tmux() {
|
||||||
export -f par_tmux
|
export -f par_tmux
|
||||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj3 --timeout 60 --retries 2 -k --joblog /tmp/jl-`basename $0` -L1
|
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj3 --timeout 60 --retries 2 -k --joblog /tmp/jl-`basename $0` -L1
|
||||||
echo '### tmux1.9'
|
echo '### tmux1.9'
|
||||||
seq 000 100 | TMUX=tmux1.9 par_tmux
|
seq 000 100 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 100 200 | TMUX=tmux1.9 par_tmux
|
seq 100 200 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 200 300 | TMUX=tmux1.9 par_tmux
|
seq 200 300 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 300 400 | TMUX=tmux1.9 par_tmux
|
seq 300 400 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 400 500 | TMUX=tmux1.9 par_tmux
|
seq 400 500 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 500 600 | TMUX=tmux1.9 par_tmux
|
seq 500 600 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 600 700 | TMUX=tmux1.9 par_tmux
|
seq 600 700 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 700 800 | TMUX=tmux1.9 par_tmux
|
seq 700 800 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 800 900 | TMUX=tmux1.9 par_tmux
|
seq 800 900 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 900 1000 | TMUX=tmux1.9 par_tmux
|
seq 900 1000 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
seq 1000 1006 | TMUX=tmux1.9 par_tmux
|
seq 1000 1006 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
echo '### tmux1.9 fails'
|
echo '### tmux1.9 fails'
|
||||||
echo 1007 | TMUX=tmux1.9 par_tmux
|
echo 1007 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
echo 1008 | TMUX=tmux1.9 par_tmux
|
echo 1008 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
echo 1009 | TMUX=tmux1.9 par_tmux
|
echo 1009 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
|
|
||||||
echo '### tmux1.8'
|
echo '### tmux1.8'
|
||||||
seq 1 50 | TMUX=tmux1.8 par_tmux
|
seq 1 50 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
seq 51 100 | TMUX=tmux1.8 par_tmux
|
seq 51 100 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
seq 101 113 | TMUX=tmux1.8 par_tmux
|
seq 101 113 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
echo '### tmux1.8 fails'
|
echo '### tmux1.8 fails'
|
||||||
echo 114 | TMUX=tmux1.8 par_tmux
|
echo 114 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
echo 115 | TMUX=tmux1.8 par_tmux
|
echo 115 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
echo 116 | TMUX=tmux1.8 par_tmux
|
echo 116 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
|
|
||||||
echo '### tmux1.8 0..255 ascii'
|
echo '### tmux1.8 0..255 ascii'
|
||||||
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' |
|
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' |
|
||||||
TMUX=tmux1.8 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
PARALLEL_TMUX=tmux1.8 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
||||||
|
|
||||||
echo '### tmux1.9 0..255 ascii'
|
echo '### tmux1.9 0..255 ascii'
|
||||||
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' |
|
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' |
|
||||||
TMUX=tmux1.9 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
PARALLEL_TMUX=tmux1.9 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
||||||
|
|
||||||
echo '### Test output ascii'
|
echo '### Test output ascii'
|
||||||
rm -f /tmp/paralocal7-ascii*;
|
rm -f /tmp/paralocal7-ascii*;
|
||||||
|
@ -51,10 +51,10 @@ echo '### Test output ascii'
|
||||||
sort /tmp/paralocal7-ascii* | md5sum
|
sort /tmp/paralocal7-ascii* | md5sum
|
||||||
|
|
||||||
echo '### Test critical lengths. Must not block'
|
echo '### Test critical lengths. Must not block'
|
||||||
seq 70 130 | TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
seq 70 130 | PARALLEL_TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||||
seq 70 130 | TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
seq 70 130 | PARALLEL_TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||||
seq 280 425 | TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
seq 280 425 | PARALLEL_TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||||
seq 280 425 | TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
seq 280 425 | PARALLEL_TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
|
@ -147,9 +147,9 @@ foo
|
||||||
8
|
8
|
||||||
9
|
9
|
||||||
10
|
10
|
||||||
echo '### TMUX not found'
|
echo '### PARALLEL_TMUX not found'
|
||||||
### TMUX not found
|
### PARALLEL_TMUX not found
|
||||||
TMUX=not-existing parallel --tmux echo ::: 1
|
PARALLEL_TMUX=not-existing parallel --tmux echo ::: 1
|
||||||
parallel: Error: not-existing not found in $PATH.
|
parallel: Error: not-existing not found in $PATH.
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
|
|
|
@ -3,8 +3,8 @@ par_mem_leak ### test for mem leak
|
||||||
par_mem_leak no mem leak detected
|
par_mem_leak no mem leak detected
|
||||||
par_outside_file_handle_limit 2>&1
|
par_outside_file_handle_limit 2>&1
|
||||||
par_outside_file_handle_limit ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
|
par_outside_file_handle_limit ### Test Force outside the file handle limit, 2009-02-17 Gave fork error
|
||||||
par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 251 jobs in parallel.
|
par_outside_file_handle_limit parallel: Warning: Only enough file handles to run 252 jobs in parallel.
|
||||||
par_outside_file_handle_limit parallel: Warning: Running 'parallel -j0 -N 251 --pipe parallel -j0' or
|
par_outside_file_handle_limit parallel: Warning: Running 'parallel -j0 -N 252 --pipe parallel -j0' or
|
||||||
par_outside_file_handle_limit parallel: Warning: raising ulimit -n or /etc/security/limits.conf may help.
|
par_outside_file_handle_limit parallel: Warning: raising ulimit -n or /etc/security/limits.conf may help.
|
||||||
par_outside_file_handle_limit Start
|
par_outside_file_handle_limit Start
|
||||||
par_outside_file_handle_limit end
|
par_outside_file_handle_limit end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
echo '### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922'
|
echo '### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922'
|
||||||
### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922
|
### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922
|
||||||
seq 1000000 > /tmp/num1000000; stdout parallel --pipepart --progress -a /tmp/num1000000 --block 10k -j0 true |grep 1:local
|
seq 1000000 > /tmp/num1000000; stdout parallel --pipepart --progress -a /tmp/num1000000 --block 10k -j0 true |grep 1:local
|
||||||
1:local / 8 / 251
|
1:local / 8 / 252
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; (seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; }; export -f testhalt; parallel -kj0 testhalt ::: now,fail=0 now,fail=1 now,fail=2 now,fail=30% now,fail=70% soon,fail=0 soon,fail=1 soon,fail=2 soon,fail=30% soon,fail=70% now,success=0 now,success=1 now,success=2 now,success=30% now,success=70% soon,success=0 soon,success=1 soon,success=2 soon,success=30% now,success=70%
|
testhalt() { echo '### testhalt --halt '$1; (yes 0 | head -n 10; seq 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; (seq 10; yes 0 | head -n 10) | stdout parallel -kj4 --halt $1 'sleep {= $_=$_*0.3+1 =}; exit {}'; echo $?; }; export -f testhalt; parallel -kj0 testhalt ::: now,fail=0 now,fail=1 now,fail=2 now,fail=30% now,fail=70% soon,fail=0 soon,fail=1 soon,fail=2 soon,fail=30% soon,fail=70% now,success=0 now,success=1 now,success=2 now,success=30% now,success=70% soon,success=0 soon,success=1 soon,success=2 soon,success=30% now,success=70%
|
||||||
|
|
|
@ -1,79 +1,79 @@
|
||||||
echo '### tmux1.9'
|
echo '### tmux1.9'
|
||||||
### tmux1.9
|
### tmux1.9
|
||||||
seq 000 100 | TMUX=tmux1.9 par_tmux
|
seq 000 100 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 100 200 | TMUX=tmux1.9 par_tmux
|
seq 100 200 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 200 300 | TMUX=tmux1.9 par_tmux
|
seq 200 300 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 300 400 | TMUX=tmux1.9 par_tmux
|
seq 300 400 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 400 500 | TMUX=tmux1.9 par_tmux
|
seq 400 500 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 500 600 | TMUX=tmux1.9 par_tmux
|
seq 500 600 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 600 700 | TMUX=tmux1.9 par_tmux
|
seq 600 700 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 700 800 | TMUX=tmux1.9 par_tmux
|
seq 700 800 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 800 900 | TMUX=tmux1.9 par_tmux
|
seq 800 900 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 900 1000 | TMUX=tmux1.9 par_tmux
|
seq 900 1000 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 1000 1006 | TMUX=tmux1.9 par_tmux
|
seq 1000 1006 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
echo '### tmux1.9 fails'
|
echo '### tmux1.9 fails'
|
||||||
### tmux1.9 fails
|
### tmux1.9 fails
|
||||||
echo 1007 | TMUX=tmux1.9 par_tmux
|
echo 1007 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
parallel: Error: Command line too long (2023 >= 2023) at input 0: 1007
|
parallel: Error: Command line too long (2023 >= 2023) at input 0: 1007
|
||||||
255
|
255
|
||||||
echo 1008 | TMUX=tmux1.9 par_tmux
|
echo 1008 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
parallel: Error: Command line too long (2025 >= 2023) at input 0: 1008
|
parallel: Error: Command line too long (2025 >= 2023) at input 0: 1008
|
||||||
255
|
255
|
||||||
echo 1009 | TMUX=tmux1.9 par_tmux
|
echo 1009 | PARALLEL_TMUX=tmux1.9 par_tmux
|
||||||
parallel: Error: Command line too long (2027 >= 2023) at input 0: 1009
|
parallel: Error: Command line too long (2027 >= 2023) at input 0: 1009
|
||||||
255
|
255
|
||||||
echo '### tmux1.8'
|
echo '### tmux1.8'
|
||||||
### tmux1.8
|
### tmux1.8
|
||||||
seq 1 50 | TMUX=tmux1.8 par_tmux
|
seq 1 50 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 51 100 | TMUX=tmux1.8 par_tmux
|
seq 51 100 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 101 113 | TMUX=tmux1.8 par_tmux
|
seq 101 113 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
echo '### tmux1.8 fails'
|
echo '### tmux1.8 fails'
|
||||||
### tmux1.8 fails
|
### tmux1.8 fails
|
||||||
echo 114 | TMUX=tmux1.8 par_tmux
|
echo 114 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
parallel: Error: Command line too long (236 >= 236) at input 0: 114
|
parallel: Error: Command line too long (236 >= 236) at input 0: 114
|
||||||
255
|
255
|
||||||
echo 115 | TMUX=tmux1.8 par_tmux
|
echo 115 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
parallel: Error: Command line too long (238 >= 236) at input 0: 115
|
parallel: Error: Command line too long (238 >= 236) at input 0: 115
|
||||||
255
|
255
|
||||||
echo 116 | TMUX=tmux1.8 par_tmux
|
echo 116 | PARALLEL_TMUX=tmux1.8 par_tmux
|
||||||
parallel: Error: Command line too long (240 >= 236) at input 0: 116
|
parallel: Error: Command line too long (240 >= 236) at input 0: 116
|
||||||
255
|
255
|
||||||
echo '### tmux1.8 0..255 ascii'
|
echo '### tmux1.8 0..255 ascii'
|
||||||
### tmux1.8 0..255 ascii
|
### tmux1.8 0..255 ascii
|
||||||
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' | TMUX=tmux1.8 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' | PARALLEL_TMUX=tmux1.8 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
||||||
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
echo '### tmux1.9 0..255 ascii'
|
echo '### tmux1.9 0..255 ascii'
|
||||||
### tmux1.9 0..255 ascii
|
### tmux1.9 0..255 ascii
|
||||||
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' | TMUX=tmux1.9 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' | PARALLEL_TMUX=tmux1.9 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $?
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
echo '### Test output ascii'
|
echo '### Test output ascii'
|
||||||
|
@ -83,12 +83,12 @@ See output with: tmux -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
053c7e8e945ef7641fc63bc309ac069d -
|
053c7e8e945ef7641fc63bc309ac069d -
|
||||||
echo '### Test critical lengths. Must not block'
|
echo '### Test critical lengths. Must not block'
|
||||||
### Test critical lengths. Must not block
|
### Test critical lengths. Must not block
|
||||||
seq 70 130 | TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
seq 70 130 | PARALLEL_TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||||
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
parallel: Error: Command line too long (236 >= 236) at input 0: 114
|
parallel: Error: Command line too long (236 >= 236) at input 0: 114
|
||||||
seq 70 130 | TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
seq 70 130 | PARALLEL_TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
seq 280 425 | TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
seq 280 425 | PARALLEL_TMUX=tmux1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||||
parallel: Error: Command line too long (288 >= 236) at input 0: 280
|
parallel: Error: Command line too long (288 >= 236) at input 0: 280
|
||||||
seq 280 425 | TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
seq 280 425 | PARALLEL_TMUX=tmux1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||||
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
|
|
|
@ -337,12 +337,15 @@ foo
|
||||||
A
|
A
|
||||||
parallel perl -e 'print "@ARGV\n"' ::: This wont work
|
parallel perl -e 'print "@ARGV\n"' ::: This wont work
|
||||||
|
|
||||||
parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.
|
parallel: Warning: Input is read from the terminal. You either know what you
|
||||||
|
parallel: Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot
|
||||||
|
parallel: Warning: ::: or :::: or to pipe data into parallel. If so
|
||||||
|
parallel: Warning: Press CTRL-D to exit.
|
||||||
perl -e 'print "@ARGV\n"'
|
perl -e 'print "@ARGV\n"'
|
||||||
[CTRL-D]
|
[CTRL-D]
|
||||||
|
|
||||||
/bin/bash: line 1: parallel:: command not found
|
/bin/bash: line 1: parallel:: command not found
|
||||||
/bin/bash: line 3: [CTRL-D]: command not found
|
/bin/bash: -c: line 2: syntax error near unexpected token `('
|
||||||
|
/bin/bash: -c: line 2: ` parallel: Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot'
|
||||||
|
|
||||||
parallel --trim r echo pre-{}-post ::: ' A '
|
parallel --trim r echo pre-{}-post ::: ' A '
|
||||||
pre- A-post
|
pre- A-post
|
||||||
|
|
Loading…
Reference in a new issue