diff --git a/doc/release_new_version b/doc/release_new_version index a16a315e..2667c204 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -4,7 +4,7 @@ Check that documentation is updated (compare to web): -Fixet for 20161022 +Fixet for 20161122 git diff last-release-commit Unmodified beta since last version => production Unmodified alpha since last version => beta @@ -219,18 +219,24 @@ cc:Tim Cuthbertson , Ryoichiro Suzuki , Jesse Alama -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/ <> Haiku of the month: + Speed is good for you + Multi speed is better still + Use GNU Parallel -- Ole Tange New in this release: +http://g-liu.com/blog/2016/10/tutorial-parallel-web-scraping-with-casperjs-and-gnu-parallel/ + + * <> * <> @@ -263,14 +269,6 @@ for Big Data Applications https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumb * <> -* 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. GNU Parallel - For people who live life in the parallel lane. diff --git a/src/niceload b/src/niceload index 4e2a57d1..85eb2a2d 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20161022; +$Global::version = 20161023; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index 66f87d45..d0d61739 100755 --- a/src/parallel +++ b/src/parallel @@ -1210,7 +1210,7 @@ sub check_invalid_option_combinations { sub init_globals { # Defaults: - $Global::version = 20161022; + $Global::version = 20161023; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -7922,14 +7922,14 @@ sub print_dryrun_and_verbose { } my $tmux; - $ENV{'TMUX'} ||= "tmux"; + $ENV{'PARALLEL_TMUX'} ||= "tmux"; if(not $tmuxsocket) { $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 '". - $ENV{'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-session -s p$$ -d \"sleep .2\" >/dev/null 2>&1';" . + $ENV{'PARALLEL_TMUX'}." -S $tmuxsocket new-window -t p$$ -n $title"; ::debug("tmux", "title len:", $l_tit, " act ", $l_act, " max ", $Limits::Command::line_max_len, " tot ", @@ -9414,15 +9414,15 @@ sub tmux_length { # $tmux_len = maximal length runable in tmux my $len = shift; if($opt::tmux) { - $ENV{'TMUX'} ||= "tmux"; - if(not ::which($ENV{'TMUX'})) { - ::error($ENV{'TMUX'}." not found in \$PATH."); + $ENV{'PARALLEL_TMUX'} ||= "tmux"; + if(not ::which($ENV{'PARALLEL_TMUX'})) { + ::error($ENV{'PARALLEL_TMUX'}." not found in \$PATH."); ::wait_and_exit(255); } my @out; for my $l (1, 2020, 16320, 100000, $len) { 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"; push @out, ::qqx($tmuxcmd); ::rm($tmpfile); diff --git a/src/parallel.pod b/src/parallel.pod index 80d14c31..6cd7dcd4 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -3873,6 +3873,11 @@ B echo seq:'$'PARALLEL_SEQ arg1:{1} arg2:{2} +=item $PARALLEL_TMUX + +Path to B. If unset the B in $PATH is used. + + =item $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, B, B, B, and B can reproduce most errors. If your example requires large files, see if you can make them by something like B > B or B > B. If your example requires remote -execution, see if you can use B - maybe using another -login. +| head -n 10000000> > B. + +If your example requires remote execution, see if you can use +B - maybe using another login. =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 these VirtualBox images: 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 installed software that is not in the VirtualBox images. diff --git a/src/parallel_tutorial.pod b/src/parallel_tutorial.pod index f3a537ae..900989ce 100644 --- a/src/parallel_tutorial.pod +++ b/src/parallel_tutorial.pod @@ -860,7 +860,11 @@ Output (the order may be different): GNU B can also \-quote full lines. Simply run this: 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"' [CTRL-D] diff --git a/src/sql b/src/sql index b1ee7955..d1caf3a6 100755 --- a/src/sql +++ b/src/sql @@ -566,7 +566,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20161022; + $Global::version = 20161023; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index 9806953e..76be9662 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -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'; rm /tmp/parallel_44616 -echo '### TMUX not found' - TMUX=not-existing parallel --tmux echo ::: 1 +echo '### PARALLEL_TMUX not found' + PARALLEL_TMUX=not-existing parallel --tmux echo ::: 1 echo '**' diff --git a/testsuite/tests-to-run/parallel-local7.sh b/testsuite/tests-to-run/parallel-local7.sh index c83b029a..6330fd4e 100755 --- a/testsuite/tests-to-run/parallel-local7.sh +++ b/testsuite/tests-to-run/parallel-local7.sh @@ -12,38 +12,38 @@ 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 echo '### tmux1.9' - seq 000 100 | TMUX=tmux1.9 par_tmux - seq 100 200 | TMUX=tmux1.9 par_tmux - seq 200 300 | TMUX=tmux1.9 par_tmux - seq 300 400 | TMUX=tmux1.9 par_tmux - seq 400 500 | TMUX=tmux1.9 par_tmux - seq 500 600 | TMUX=tmux1.9 par_tmux - seq 600 700 | TMUX=tmux1.9 par_tmux - seq 700 800 | TMUX=tmux1.9 par_tmux - seq 800 900 | TMUX=tmux1.9 par_tmux - seq 900 1000 | TMUX=tmux1.9 par_tmux - seq 1000 1006 | TMUX=tmux1.9 par_tmux + seq 000 100 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 100 200 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 200 300 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 300 400 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 400 500 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 500 600 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 600 700 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 700 800 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 800 900 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 900 1000 | PARALLEL_TMUX=tmux1.9 par_tmux + seq 1000 1006 | PARALLEL_TMUX=tmux1.9 par_tmux echo '### tmux1.9 fails' - echo 1007 | TMUX=tmux1.9 par_tmux - echo 1008 | TMUX=tmux1.9 par_tmux - echo 1009 | TMUX=tmux1.9 par_tmux + echo 1007 | PARALLEL_TMUX=tmux1.9 par_tmux + echo 1008 | PARALLEL_TMUX=tmux1.9 par_tmux + echo 1009 | PARALLEL_TMUX=tmux1.9 par_tmux echo '### tmux1.8' - seq 1 50 | TMUX=tmux1.8 par_tmux - seq 51 100 | TMUX=tmux1.8 par_tmux - seq 101 113 | TMUX=tmux1.8 par_tmux + seq 1 50 | PARALLEL_TMUX=tmux1.8 par_tmux + seq 51 100 | PARALLEL_TMUX=tmux1.8 par_tmux + seq 101 113 | PARALLEL_TMUX=tmux1.8 par_tmux echo '### tmux1.8 fails' - echo 114 | TMUX=tmux1.8 par_tmux - echo 115 | TMUX=tmux1.8 par_tmux - echo 116 | TMUX=tmux1.8 par_tmux + echo 114 | PARALLEL_TMUX=tmux1.8 par_tmux + echo 115 | PARALLEL_TMUX=tmux1.8 par_tmux + echo 116 | PARALLEL_TMUX=tmux1.8 par_tmux echo '### 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 $? + PARALLEL_TMUX=tmux1.8 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $? echo '### 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 $? + PARALLEL_TMUX=tmux1.9 stdout parallel --tmux --timeout 3 echo | par_tmux_filter; echo $? echo '### Test output ascii' rm -f /tmp/paralocal7-ascii*; @@ -51,10 +51,10 @@ echo '### Test output ascii' sort /tmp/paralocal7-ascii* | md5sum echo '### Test critical lengths. Must not block' - seq 70 130 | 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 280 425 | 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 70 130 | PARALLEL_TMUX=tmux1.8 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 | PARALLEL_TMUX=tmux1.8 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 diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index c8837030..ff6efa9a 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -147,9 +147,9 @@ foo 8 9 10 -echo '### TMUX not found' -### TMUX not found - TMUX=not-existing parallel --tmux echo ::: 1 +echo '### PARALLEL_TMUX not found' +### PARALLEL_TMUX not found + PARALLEL_TMUX=not-existing parallel --tmux echo ::: 1 parallel: Error: not-existing not found in $PATH. echo '**' ** diff --git a/testsuite/wanted-results/parallel-local-100s b/testsuite/wanted-results/parallel-local-100s index f400de76..1c4271c8 100644 --- a/testsuite/wanted-results/parallel-local-100s +++ b/testsuite/wanted-results/parallel-local-100s @@ -3,8 +3,8 @@ par_mem_leak ### test for mem leak par_mem_leak no mem leak detected 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 parallel: Warning: Only enough file handles to run 251 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: Only enough file handles to run 252 jobs in parallel. +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 Start par_outside_file_handle_limit end diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index ed26cfa2..f29e7a45 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -1,7 +1,7 @@ echo '### 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 -1:local / 8 / 251 +1:local / 8 / 252 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% diff --git a/testsuite/wanted-results/parallel-local7 b/testsuite/wanted-results/parallel-local7 index 05aaba35..d9b6cf7a 100644 --- a/testsuite/wanted-results/parallel-local7 +++ b/testsuite/wanted-results/parallel-local7 @@ -1,79 +1,79 @@ echo '### 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 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 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 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 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 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 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 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 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 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 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 0 echo '### 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 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 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 255 echo '### 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 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 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 0 echo '### 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 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 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 255 echo '### 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 0 echo '### 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 0 echo '### Test output ascii' @@ -83,12 +83,12 @@ See output with: tmux -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach 053c7e8e945ef7641fc63bc309ac069d - echo '### 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 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 - 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 - 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 diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index 39e0e6f4..dc92ee3b 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -337,12 +337,15 @@ foo A 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"' [CTRL-D] - /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 ' pre- A-post