parallel: tmux uses $TMUX, so rename it to: $PARALLEL_TMUX.

This commit is contained in:
Ole Tange 2016-10-30 17:07:59 +01:00
parent f9f52c083e
commit 55eaf48197
13 changed files with 101 additions and 89 deletions

View file

@ -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.

View file

@ -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) {

View file

@ -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);

View file

@ -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.

View file

@ -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]

View file

@ -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

View file

@ -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 '**'

View file

@ -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

View file

@ -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 '**'
** **

View file

@ -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

View file

@ -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%

View file

@ -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

View file

@ -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