Released as 20221022 ('Nord Stream')

This commit is contained in:
Ole Tange 2022-10-22 16:58:06 +02:00
parent ba0f1d38d6
commit 0566b05283
21 changed files with 190 additions and 112 deletions

29
NEWS
View file

@ -1,4 +1,31 @@
20220822 20221022
New in this release:
* --latest-line chops line length at terminal width.
* Determine max command length faster on Microsoft Windows.
News about GNU Parallel:
* Distributed Task Processing with GNU Parallel https://www.youtube.com/watch?v=usbMLggdMgc
* GNU Parallel workflow for many small, independent runs https://docs.csc.fi/support/tutorials/many/
* Copy a File To Multiple Directories With A Single Command on Linux https://www.linuxfordevices.com/tutorials/linux/copy-file-to-multiple-directories-with-one-command
* Behind The Scenes: The Power Of Simple Command Line Tools At Cloud Scale https://blog.gdeltproject.org/behind-the-scenes-the-power-of-simple-command-line-tools-at-cloud-scale/
* Run lz4 compression in parallel using GNU parallel https://www.openguru.com/2022/09/
* Xargs / Parallel With Code Examples https://www.folkstalk.com/2022/09/xargs-parallel-with-code-examples.html
* Parallel processing on a single node with GNU Parallel https://www3.cs.stonybrook.edu/~cse416/Section01/Slides/SeaWulfIntro_CSE416_09222022.pdf
* Using GNU parallel painlessly -- from basics to bioinformatics job orchestration https://www.youtube.com/watch?v=qypUdm-IE9c
20220922
New in this release: New in this release:

24
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as: Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20220922.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20221022.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20220922.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20221022.tar.bz2.sig
gpg parallel-20220922.tar.bz2.sig gpg parallel-20221022.tar.bz2.sig
bzip2 -dc parallel-20220922.tar.bz2 | tar xvf - bzip2 -dc parallel-20221022.tar.bz2 | tar xvf -
cd parallel-20220922 cd parallel-20221022
./configure && make && sudo make install ./configure && make && sudo make install
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in If you are not root you can add ~/bin to your path and install in
~/bin and ~/share: ~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20220922.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20221022.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20220922.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20221022.tar.bz2.sig
gpg parallel-20220922.tar.bz2.sig gpg parallel-20221022.tar.bz2.sig
bzip2 -dc parallel-20220922.tar.bz2 | tar xvf - bzip2 -dc parallel-20221022.tar.bz2 | tar xvf -
cd parallel-20220922 cd parallel-20221022
./configure --prefix=$HOME && make && make install ./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel Or if your system lacks 'make' you can simply copy src/parallel
@ -122,8 +122,8 @@ will love you for it.
When using programs that use GNU Parallel to process data for When using programs that use GNU Parallel to process data for
publication please cite: publication please cite:
Tange, O. (2022, September 22). GNU Parallel 20220922 ('Elizabeth'). Tange, O. (2022, October 22). GNU Parallel 20221022 ('Nord Stream').
Zenodo. https://doi.org/10.5281/zenodo.7105792 Zenodo. https://doi.org/10.5281/zenodo.7239559
Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc. Software Foundation, Inc.

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for parallel 20220922. # Generated by GNU Autoconf 2.71 for parallel 20221022.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -610,8 +610,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20220922' PACKAGE_VERSION='20221022'
PACKAGE_STRING='parallel 20220922' PACKAGE_STRING='parallel 20221022'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1246,7 +1246,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures parallel 20220922 to adapt to many kinds of systems. \`configure' configures parallel 20221022 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1313,7 +1313,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20220922:";; short | recursive ) echo "Configuration of parallel 20221022:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1390,7 +1390,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
parallel configure 20220922 parallel configure 20221022
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@ -1427,7 +1427,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20220922, which was It was created by parallel $as_me 20221022, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@ -2379,7 +2379,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20220922' VERSION='20221022'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -3026,7 +3026,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by parallel $as_me 20220922, which was This file was extended by parallel $as_me 20221022, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -3090,7 +3090,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20220922 parallel config.status 20221022
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel],[20220922],[bug-parallel@gnu.org]) AC_INIT([parallel],[20221022],[bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View file

@ -7,9 +7,6 @@ Quote of the month:
Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago
-- Stefan Gavriliuc @GavriliucStefan@twitter -- Stefan Gavriliuc @GavriliucStefan@twitter
If used properly, #gnuparallel actually enables time travel.
-- Dr. James Wasmuth @jdwasmuth@twitter
Im a big fan of GNU parallel! Im a big fan of GNU parallel!
-- Scott Cain @scottjcain@twitter -- Scott Cain @scottjcain@twitter
@ -207,6 +204,9 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
=== Used === === Used ===
If used properly, #gnuparallel actually enables time travel.
-- Dr. James Wasmuth @jdwasmuth@twitter
reduced our backend test pipelines from 4 to 1.30 hrs. gnu parallel for the win!!! reduced our backend test pipelines from 4 to 1.30 hrs. gnu parallel for the win!!!
-- Swapnil Sahu @CaffeinatedWryy@twitter -- Swapnil Sahu @CaffeinatedWryy@twitter

View file

@ -255,31 +255,40 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm> stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20221022 ('Керчь/Nord Stream/Annectxation/DART/Mahsa Amini/Mobilising/Niemann') released Subject: GNU Parallel 20221022 ('Nord Stream') released
GNU Parallel 20221022 ('') has been released. It is available for download at: lbry://@GnuParallel:4 GNU Parallel 20221022 ('Nord Stream') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month: Quote of the month:
<<>> If used properly, #gnuparallel actually enables time travel.
-- Dr. James Wasmuth @jdwasmuth@twitter
New in this release: New in this release:
* * --latest-line chops line length at terminal width.
* Determine max command length faster on Microsoft Windows.
* Bug fixes and man page updates. * Bug fixes and man page updates.
News about GNU Parallel: News about GNU Parallel:
https://www.youtube.com/watch?v=usbMLggdMgc * Distributed Task Processing with GNU Parallel https://www.youtube.com/watch?v=usbMLggdMgc
https://docs.csc.fi/support/tutorials/many/ * GNU Parallel workflow for many small, independent runs https://docs.csc.fi/support/tutorials/many/
https://www.linuxfordevices.com/tutorials/linux/copy-file-to-multiple-directories-with-one-command
https://blog.gdeltproject.org/behind-the-scenes-the-power-of-simple-command-line-tools-at-cloud-scale/ * Copy a File To Multiple Directories With A Single Command on Linux https://www.linuxfordevices.com/tutorials/linux/copy-file-to-multiple-directories-with-one-command
https://www.openguru.com/2022/09/
https://www.folkstalk.com/2022/09/xargs-parallel-with-code-examples.html * Behind The Scenes: The Power Of Simple Command Line Tools At Cloud Scale https://blog.gdeltproject.org/behind-the-scenes-the-power-of-simple-command-line-tools-at-cloud-scale/
https://www3.cs.stonybrook.edu/~cse416/Section01/Slides/SeaWulfIntro_CSE416_09222022.pdf
https://www.youtube.com/watch?v=qypUdm-IE9c * Run lz4 compression in parallel using GNU parallel https://www.openguru.com/2022/09/
* Xargs / Parallel With Code Examples https://www.folkstalk.com/2022/09/xargs-parallel-with-code-examples.html
* Parallel processing on a single node with GNU Parallel https://www3.cs.stonybrook.edu/~cse416/Section01/Slides/SeaWulfIntro_CSE416_09222022.pdf
* Using GNU parallel painlessly -- from basics to bioinformatics job orchestration https://www.youtube.com/watch?v=qypUdm-IE9c
GNU Parallel - For people who live life in the parallel lane. GNU Parallel - For people who live life in the parallel lane.

View file

@ -395,7 +395,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -397,7 +397,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -395,7 +395,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -378,7 +378,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -380,7 +380,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -395,7 +395,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -370,7 +370,7 @@ _parset_main() {
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006 # shellcheck disable=SC2006
echo "parset 20220923 (GNU parallel `parallel --minversion 1`)" echo "parset 20221022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -26,7 +26,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20220923; $Global::version = 20221022;
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

@ -2680,7 +2680,7 @@ sub check_invalid_option_combinations() {
sub init_globals() { sub init_globals() {
# Defaults: # Defaults:
$Global::version = 20220923; $Global::version = 20221022;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$::name = "GNU Parallel"; $::name = "GNU Parallel";
$Global::infinity = 2**31; $Global::infinity = 2**31;
@ -5560,8 +5560,8 @@ sub usage() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
" Tange, O. (2022, September 22). GNU Parallel 20220922 ('Elizabeth').", " Tange, O. (2022, October 22). GNU Parallel 20221022 ('Nord Stream').",
" Zenodo. https://doi.org/10.5281/zenodo.7105792", " Zenodo. https://doi.org/10.5281/zenodo.7239559",
"", "",
# Before changing these lines, please read # Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
@ -5593,8 +5593,8 @@ sub citation_notice() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
" Tange, O. (2022, September 22). GNU Parallel 20220922 ('Elizabeth').", " Tange, O. (2022, October 22). GNU Parallel 20221022 ('Nord Stream').",
" Zenodo. https://doi.org/10.5281/zenodo.7105792", " Zenodo. https://doi.org/10.5281/zenodo.7239559",
"", "",
# Before changing these line, please read # Before changing these line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and
@ -5721,20 +5721,20 @@ sub citation() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
"\@software{tange_2022_7105792,", "\@software{tange_2022_7239559,",
" author = {Tange, Ole},", " author = {Tange, Ole},",
" title = {GNU Parallel 20220922 ('Elizabeth')},", " title = {GNU Parallel 20221022 ('Nord Stream')},",
" month = Sep,", " month = Oct,",
" year = 2022,", " year = 2022,",
" note = {{GNU Parallel is a general parallelizer to run", " note = {{GNU Parallel is a general parallelizer to run",
" multiple serial command line programs in parallel", " multiple serial command line programs in parallel",
" without changing them.}},", " without changing them.}},",
" publisher = {Zenodo},", " publisher = {Zenodo},",
" doi = {10.5281/zenodo.7105792},", " doi = {10.5281/zenodo.7239559},",
" url = {https://doi.org/10.5281/zenodo.7105792}", " url = {https://doi.org/10.5281/zenodo.7239559}",
"}", "}",
"", "",
"(Feel free to use \\nocite{tange_2022_7105792})", "(Feel free to use \\nocite{tange_2022_7239559})",
"", "",
# Before changing these lines, please read # Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and # https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and
@ -9248,6 +9248,7 @@ sub filter_through_compress($) {
# When the echo is written to $comfile, # When the echo is written to $comfile,
# it is known that output file is opened, # it is known that output file is opened,
# thus output file can then be removed by the decompressor. # thus output file can then be removed by the decompressor.
# empty_input_wrapper is needed for plzip
my $wpid = open(my $fdw,"|-", "(echo > $comfile; ". my $wpid = open(my $fdw,"|-", "(echo > $comfile; ".
empty_input_wrapper($opt::compress_program).") >". empty_input_wrapper($opt::compress_program).") >".
::Q($self->fh($fdno,'name'))) || die $?; ::Q($self->fh($fdno,'name'))) || die $?;
@ -10760,6 +10761,7 @@ sub interactive_start($) {
$ENV{'PARALLEL_TMUX'} ||= "tmux"; $ENV{'PARALLEL_TMUX'} ||= "tmux";
if(not $tmuxsocket) { if(not $tmuxsocket) {
$tmuxsocket = ::tmpname("tms"); $tmuxsocket = ::tmpname("tms");
::debug("tmux", "Start: $ENV{'PARALLEL_TMUX'} -S $tmuxsocket attach");
if($opt::fg) { if($opt::fg) {
if(not fork) { if(not fork) {
# Run tmux in the foreground # Run tmux in the foreground

View file

@ -749,7 +749,7 @@ See also: B<--basefile> B<--transfer> B<--transferfile> B<--sshlogin>
B<--return> B<--return>
=item B<--color> (alpha testing) =item B<--color> (beta testing)
Colour output. Colour output.
@ -761,9 +761,9 @@ B<--color> is ignored when using B<-u>.
See also: B<--color-failed> See also: B<--color-failed>
=item B<--color-failed> (alpha testing) =item B<--color-failed> (beta testing)
=item B<--cf> (alpha testing) =item B<--cf> (beta testing)
Colour the output from failing jobs white on red. Colour the output from failing jobs white on red.
@ -1268,7 +1268,7 @@ soon,fail=1-99%
=back =back
=item B<--header> I<regexp> (beta testing) =item B<--header> I<regexp>
Use regexp as header. Use regexp as header.
@ -1594,9 +1594,9 @@ Example:
See also: B<--line-buffer> See also: B<--line-buffer>
=item B<--line-buffer> (alpha testing) =item B<--line-buffer> (beta testing)
=item B<--lb> (alpha testing) =item B<--lb> (beta testing)
Buffer output on line basis. Buffer output on line basis.
@ -1937,7 +1937,7 @@ called with B<--sshlogin>).
See also: B<--profile> See also: B<--profile>
=item B<--plus> (beta testing) =item B<--plus>
Add more replacement strings. Add more replacement strings.
@ -2013,7 +2013,7 @@ B<--progress> on a running GNU B<parallel> process.
See also: B<--eta> B<--bar> See also: B<--eta> B<--bar>
=item B<--max-line-length-allowed> =item B<--max-line-length-allowed> (alpha testing)
Print maximal command line length. Print maximal command line length.
@ -2496,7 +2496,7 @@ I<n>=0 means infinite.
See also: B<--term-seq> B<--sshlogin> See also: B<--term-seq> B<--sshlogin>
=item B<--return> I<filename> (beta testing) =item B<--return> I<filename>
Transfer files from remote computers. Transfer files from remote computers.
@ -3020,13 +3020,13 @@ I<duration> is in seconds, but can be postfixed with s, m, h, or d.
See also: TIME POSTFIXES B<--sshlogin> B<--delay> See also: TIME POSTFIXES B<--sshlogin> B<--delay>
=item B<--sshlogin> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> (alpha testing) =item B<--sshlogin> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> (beta testing)
=item B<--sshlogin> I<@hostgroup> (alpha testing) =item B<--sshlogin> I<@hostgroup> (beta testing)
=item B<-S> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> (alpha testing) =item B<-S> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> (beta testing)
=item B<-S> I<@hostgroup> (alpha testing) =item B<-S> I<@hostgroup> (beta testing)
Distribute jobs to remote computers. Distribute jobs to remote computers.
@ -3331,7 +3331,7 @@ Print the job to be run on stderr (standard error).
See also: B<-v> B<--interactive> See also: B<-v> B<--interactive>
=item B<--transfer> (beta testing) =item B<--transfer>
Transfer files to remote computers. Transfer files to remote computers.
@ -3340,9 +3340,9 @@ Shorthand for: B<--transferfile {}>.
See also: B<--transferfile>. See also: B<--transferfile>.
=item B<--transferfile> I<filename> (beta testing) =item B<--transferfile> I<filename>
=item B<--tf> I<filename> (beta testing) =item B<--tf> I<filename>
Transfer I<filename> to remote computers. Transfer I<filename> to remote computers.
@ -3394,7 +3394,7 @@ See also: B<--workdir> B<--sshlogin> B<--basefile> B<--return>
B<--cleanup> B<--cleanup>
=item B<--trc> I<filename> (beta testing) =item B<--trc> I<filename>
Transfer, Return, Cleanup. Shorthand for: B<--transfer> B<--return> Transfer, Return, Cleanup. Shorthand for: B<--transfer> B<--return>
I<filename> B<--cleanup> I<filename> B<--cleanup>

View file

@ -261,7 +261,9 @@ More detailed it works like this:
cattail ( rm tmpfile; compound decompress ) < tmpfile cattail ( rm tmpfile; compound decompress ) < tmpfile
This complex setup is to make sure compress program is only started if This complex setup is to make sure compress program is only started if
there is input. there is input. This means each job will cause 8 processes to run. If
combined with B<--keep-order> these processes will run until the job
has been printed.
=head2 Wrapping =head2 Wrapping

View file

@ -122,7 +122,7 @@ GetOptions(
"help" => \$opt::dummy, "help" => \$opt::dummy,
) || exit(255); ) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
$Global::version = 20220923; $Global::version = 20221022;
if($opt::version) { version(); exit 0; } if($opt::version) { version(); exit 0; }
@Global::sortoptions = grep { ! /^-D$/ } @Global::sortoptions = grep { ! /^-D$/ }
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]); shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);

View file

@ -667,7 +667,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20220923; $Global::version = 20221022;
$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

@ -182,8 +182,14 @@ par_failing_compressor() {
echo 'Test --tag/--line-buffer/--files in all combinations' echo 'Test --tag/--line-buffer/--files in all combinations'
echo 'Test working/failing compressor/decompressor in all combinations' echo 'Test working/failing compressor/decompressor in all combinations'
echo '(-k is used as a dummy argument)' echo '(-k is used as a dummy argument)'
doit() {
# Print something to stdout/stderr
echo "$@"
echo "$@" >&2
}
export -f doit
stdout parallel -vk --header : --argsep ,,, \ stdout parallel -vk --header : --argsep ,,, \
parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} echo ::: C={comp},D={decomp} \ parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} doit ::: C={comp},D={decomp} \
,,, tag --tag -k \ ,,, tag --tag -k \
,,, lb --line-buffer -k \ ,,, lb --line-buffer -k \
,,, files --files -k \ ,,, files --files -k \

View file

@ -106,86 +106,118 @@ par_failing_compressor Compress with failing (de)compressor
par_failing_compressor Test --tag/--line-buffer/--files in all combinations par_failing_compressor Test --tag/--line-buffer/--files in all combinations
par_failing_compressor Test working/failing compressor/decompressor in all combinations par_failing_compressor Test working/failing compressor/decompressor in all combinations
par_failing_compressor (-k is used as a dummy argument) par_failing_compressor (-k is used as a dummy argument)
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor C=cat;true,D=cat;true par_failing_compressor C=cat;true,D=cat;true
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor C=cat;true,D=cat;true
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor C=cat;true,D=cat;false par_failing_compressor C=cat;true,D=cat;false
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor C=cat;true,D=cat;false
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor C=cat;false,D=cat;true par_failing_compressor C=cat;false,D=cat;true
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false par_failing_compressor C=cat;false,D=cat;false
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile par_failing_compressor /tmp/parallel-local-10s-tmpdir/tmpfile
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true'
par_failing_compressor C=cat;true,D=cat;true par_failing_compressor C=cat;true,D=cat;true
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false' par_failing_compressor C=cat;true,D=cat;true
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false'
par_failing_compressor C=cat;true,D=cat;false par_failing_compressor C=cat;true,D=cat;false
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true' par_failing_compressor C=cat;true,D=cat;false
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true'
par_failing_compressor C=cat;false,D=cat;true par_failing_compressor C=cat;false,D=cat;true
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false' par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;true
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false'
par_failing_compressor C=cat;false,D=cat;false par_failing_compressor C=cat;false,D=cat;false
par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor parallel: Error: cat;false failed.
par_failing_compressor C=cat;false,D=cat;false
par_fifo_under_csh ### Test --fifo under csh par_fifo_under_csh ### Test --fifo under csh
par_fifo_under_csh 1048571 par_fifo_under_csh 1048571
par_fifo_under_csh 1 par_fifo_under_csh 1