Released as 20211022 ('Sinclair')

This commit is contained in:
Ole Tange 2021-10-22 22:10:09 +02:00
parent ccc54495bd
commit 06d992e1cf
23 changed files with 111 additions and 79 deletions

23
NEWS
View file

@ -1,14 +1,31 @@
20211022
New in this release:
* Don't postpone output until $jobslots jobs have been started.
* Bug fixes and man page updates.
News about GNU Parallel:
* How to Install GNU Parallel using Anaconda | Linux
https://www.youtube.com/watch?v=UwDNVP-L0qA
* Install GNU Parallel from source code | Linux
https://www.youtube.com/watch?v=PIyJH4ben5o
* Compiling GNU Parallel on CentOS-7
https://thelinuxcluster.com/2021/10/19/compiling-gnu-parallel-on-centos-7/
20210922
New in this release:
* Bug fixes and man page updates.
News about GNU Parallel:
* 3 Programs that will Level Up your Bash Game
https://medium.com/codex/3-programs-that-will-level-up-your-bash-game-bf14e17e2291

24
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2.sig
gpg parallel-20210922.tar.bz2.sig
bzip2 -dc parallel-20210922.tar.bz2 | tar xvf -
cd parallel-20210922
wget https://ftpmirror.gnu.org/parallel/parallel-20211022.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20211022.tar.bz2.sig
gpg parallel-20211022.tar.bz2.sig
bzip2 -dc parallel-20211022.tar.bz2 | tar xvf -
cd parallel-20211022
./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
~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2.sig
gpg parallel-20210922.tar.bz2.sig
bzip2 -dc parallel-20210922.tar.bz2 | tar xvf -
cd parallel-20210922
wget https://ftpmirror.gnu.org/parallel/parallel-20211022.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20211022.tar.bz2.sig
gpg parallel-20211022.tar.bz2.sig
bzip2 -dc parallel-20211022.tar.bz2 | tar xvf -
cd parallel-20211022
./configure --prefix=$HOME && make && make install
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
publication please cite:
Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').
Zenodo. https://doi.org/10.5281/zenodo.5523272
Tange, O. (2021, October 22). GNU Parallel 20211022 ('Sinclair').
Zenodo. https://doi.org/10.5281/zenodo.5593566
Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for parallel 20210922.
# Generated by GNU Autoconf 2.69 for parallel 20211022.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20210922'
PACKAGE_STRING='parallel 20210922'
PACKAGE_VERSION='20211022'
PACKAGE_STRING='parallel 20211022'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL=''
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# 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.
cat <<_ACEOF
\`configure' configures parallel 20210922 to adapt to many kinds of systems.
\`configure' configures parallel 20211022 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20210922:";;
short | recursive ) echo "Configuration of parallel 20211022:";;
esac
cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
parallel configure 20210922
parallel configure 20211022
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20210922, which was
It was created by parallel $as_me 20211022, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package.
PACKAGE='parallel'
VERSION='20210922'
VERSION='20211022'
cat >>confdefs.h <<_ACEOF
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by parallel $as_me 20210922, which was
This file was extended by parallel $as_me 20211022, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
parallel config.status 20210922
parallel config.status 20211022
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

View file

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

View file

@ -14,10 +14,6 @@ Quote of the month:
Have you heard of our lord and saviour GNU parallel?
-- kxyne @Kxyne@twitter
GNU parallel is a severely underrated tool for just spawning a
shitload of tasks. I use it every day and fucking love it.
-- Jane @serialexpjane@twitter
Installing GNU parallel is the second thing I do on any new Linux
machine, right after uninstalling pulseaudio.
-- Andy Cooper @integgroll@twitter
@ -131,6 +127,10 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
=== Used ===
GNU parallel is a severely underrated tool for just spawning a
shitload of tasks. I use it every day and fucking love it.
-- Jane @serialexpjane@twitter
Take a look at GNU Parallel. Its magnificent.
-- Siira@ycombinator.com

View file

@ -254,31 +254,30 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20211022 ('<<>>Scholz/Vilks/FacebookDown') released <<[stable]>>
Subject: GNU Parallel 20211022 ('Sinclair') released
GNU Parallel 20211022 ('<<>>') <<[stable]>> has been released. It is available for download at: lbry://@GnuParallel:4
<<No new functionality was introduced so this is a good candidate for a
stable release.>>
GNU Parallel 20211022 ('Sinclair') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
<<>>
GNU parallel is a severely underrated tool for just spawning a
shitload of tasks. I use it every day and fucking love it.
-- Jane @serialexpjane@twitter
New in this release:
* Don't postpone output until $jobslots jobs have been started.
* Bug fixes and man page updates.
News about GNU Parallel:
https://medium.com/codex/3-programs-that-will-level-up-your-bash-game-bf14e17e2291
https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe
https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing
* How to Install GNU Parallel using Anaconda | Linux https://www.youtube.com/watch?v=UwDNVP-L0qA
https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2
* Install GNU Parallel from source code | Linux https://www.youtube.com/watch?v=PIyJH4ben5o
* Compiling GNU Parallel on CentOS-7 https://thelinuxcluster.com/2021/10/19/compiling-gnu-parallel-on-centos-7/
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

View file

@ -1,7 +1,7 @@
<directory name="parallel" rev="313" vrev="1" srcmd5="6814e6bd1cf4ac6a903551ee342be431">
<entry name="PKGBUILD" md5="cd2a244a75df25eb5cacb8c644855902" size="936" mtime="1632345652" />
<entry name="parallel-20210922.tar.bz2" md5="b74b7adf0d57fea23bd09bd427e3a1d0" size="2268369" mtime="1632345652" />
<entry name="parallel.spec" md5="881c476934d5120fa21974d985454e68" size="5630" mtime="1632345653" />
<entry name="parallel_20210922.dsc" md5="90fc749aaea89e74809e81514505bb2d" size="556" mtime="1632345653" />
<entry name="parallel_20210922.tar.gz" md5="68b0e83e4652805c7c2c85e88d167245" size="2511473" mtime="1632345653" />
<directory name="parallel" rev="314" vrev="1" srcmd5="d00403f6fc8a1f4473366ad2d617dd50">
<entry name="PKGBUILD" md5="96182d24cfc529c795d9472330d63d84" size="936" mtime="1634932620" />
<entry name="parallel-20211022.tar.bz2" md5="3cfc53da51e2d0b1ed40ea4efc80531f" size="2268584" mtime="1634932620" />
<entry name="parallel.spec" md5="94906b2c42bc554c75ce239d273faf7c" size="5630" mtime="1634932621" />
<entry name="parallel_20211022.dsc" md5="f26ff185d11fb9e47a8eea57962b5b7b" size="556" mtime="1634932621" />
<entry name="parallel_20211022.tar.gz" md5="2304a31ee1027c7f7c6d89fd6290d86f" size="2512432" mtime="1634932621" />
</directory>

View file

@ -1,7 +1,7 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20210922
Version: 20211022
Release: 1.3
License: GPL-3.0-or-later
Group: Productivity/File utilities

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -26,7 +26,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
$Global::version = 20210923;
$Global::version = 20211022;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {

View file

@ -2264,7 +2264,7 @@ sub check_invalid_option_combinations() {
sub init_globals() {
# Defaults:
$Global::version = 20210923;
$Global::version = 20211022;
$Global::progname = 'parallel';
$::name = "GNU Parallel";
$Global::infinity = 2**31;
@ -5075,8 +5075,8 @@ sub usage() {
"If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:",
"",
" Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').",
" Zenodo. https://doi.org/10.5281/zenodo.5523272",
" Tange, O. (2021, October 22). GNU Parallel 20211022 ('Sinclair').",
" Zenodo. https://doi.org/10.5281/zenodo.5593566",
"",
# Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
@ -5108,8 +5108,8 @@ sub citation_notice() {
"If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:",
"",
" Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').",
" Zenodo. https://doi.org/10.5281/zenodo.5523272",
" Tange, O. (2021, October 22). GNU Parallel 20211022 ('Sinclair').",
" Zenodo. https://doi.org/10.5281/zenodo.5593566",
"",
# Before changing these line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@ -5234,20 +5234,20 @@ sub citation() {
"If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:",
"",
"\@software{tange_2021_5523272,",
"\@software{tange_2021_5593566,",
" author = {Tange, Ole},",
" title = {GNU Parallel 20210922 ('Vindelev')},",
" month = Sep,",
" title = {GNU Parallel 20211022 ('Sinclair')},",
" month = Oct,",
" year = 2021,",
" note = {{GNU Parallel is a general parallelizer to run",
" multiple serial command line programs in parallel",
" without changing them.}},",
" publisher = {Zenodo},",
" doi = {10.5281/zenodo.5523272},",
" url = {https://doi.org/10.5281/zenodo.5523272}",
" doi = {10.5281/zenodo.5593566},",
" url = {https://doi.org/10.5281/zenodo.5593566}",
"}",
"",
"(Feel free to use \\nocite{tange_2021_5523272})",
"(Feel free to use \\nocite{tange_2021_5593566})",
"",
# Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and

View file

@ -743,12 +743,12 @@ Even quoted newlines are parsed correctly:
When used with B<--pipe> only pass full CSV-records.
=item B<--ctag> I<str> (beta testing)
=item B<--ctag> I<str>
Color tag. See B<--tag>.
=item B<--ctagstring> I<str> (beta testing)
=item B<--ctagstring> I<str>
Color tagstring. See B<--tagstring>.
@ -2719,7 +2719,7 @@ to GNU B<parallel> giving each child its own process group, which is
then killed. Process groups are dependant on the tty.
=item B<--tag> (beta testing)
=item B<--tag>
Tag lines with arguments. Each output line will be prepended with the
arguments and TAB (\t). When combined with B<--onall> or B<--nonall>
@ -2730,7 +2730,7 @@ B<--tag> is ignored when using B<-u>.
B<--ctag> gives the tag a color.
=item B<--tagstring> I<str> (beta testing)
=item B<--tagstring> I<str>
Tag lines with a string. Each output line will be prepended with
I<str> and TAB (\t). I<str> can contain replacement strings such as

View file

@ -122,9 +122,9 @@ GetOptions(
"help" => \$opt::dummy,
) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
$Global::version = 20210923;
$Global::version = 20211022;
if($opt::version) { version(); exit 0; }
@Global::sortoptions =
@Global::sortoptions = grep { ! /^-D$/ }
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
#if($opt::zero_terminated) { $/ = "\0"; }
@ -160,6 +160,7 @@ sub sort_files {
@Global::sortoptions, '::::', @files) || die;
my @cmd = merge(<$par>);
close $par;
debug(@cmd);
# The command uses <(...) so it is incompatible with /bin/sh
open(my $bash,"|-","bash") || die;
print $bash @cmd;
@ -220,6 +221,13 @@ sub tmpfifo {
return $tmpfifo;
}
sub debug {
# Returns: N/A
$opt::D or return;
@_ = grep { defined $_ ? $_ : "" } @_;
print STDERR @_[1..$#_];
}
sub version() {
# Returns: N/A
print join

View file

@ -600,7 +600,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err);
sub parse_options {
$Global::version = 20210923;
$Global::version = 20211022;
$Global::progname = 'sql';
# This must be done first as this may exec myself

View file

@ -37,7 +37,9 @@ par_filter_hosts_different_errors() {
par_timeout_retries() {
echo '### test --timeout --retries'
parallel -j0 --timeout 5 --retries 3 -k ssh {} echo {} ::: 192.168.1.197 8.8.8.8 $SSHLOGIN1 $SSHLOGIN2 $SSHLOGIN3
stdout parallel -j0 --timeout 5 --retries 3 -k ssh {} echo {} \
::: 192.168.1.197 8.8.8.8 $SSHLOGIN1 $SSHLOGIN2 $SSHLOGIN3 |
grep -v 'Warning: Permanently added'
}
par_filter_hosts_no_ssh_nxserver() {

View file

@ -171,8 +171,8 @@ ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=
4 ab
4 b
6 a
parallel: Warning: Only enough file handles to run 252 jobs in parallel.
parallel: Warning: Try running 'parallel -j0 -N 252 --pipe parallel -j0'
parallel: Warning: Only enough file handles to run 251 jobs in parallel.
parallel: Warning: Try running 'parallel -j0 -N 251 --pipe parallel -j0'
parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
parallel: Warning: or increasing /proc/sys/fs/file-max
@ -285,8 +285,8 @@ ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\
4 ab
4 b
6 a
parallel: Warning: Only enough file handles to run 252 jobs in parallel.
parallel: Warning: Try running 'parallel -j0 -N 252 --pipe parallel -j0'
parallel: Warning: Only enough file handles to run 251 jobs in parallel.
parallel: Warning: Try running 'parallel -j0 -N 251 --pipe parallel -j0'
parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
parallel: Warning: or increasing /proc/sys/fs/file-max

View file

@ -1249,6 +1249,9 @@ qnx /bin/sh: compgen: cannot execute - No such file or directory
qnx /bin/sh: compgen: cannot execute - No such file or directory
qnx /bin/sh: compgen: cannot execute - No such file or directory
qnx parset: Warning: Cannot figure out number of cpus. Using 1.
qnx /bin/sh: shopt: cannot execute - No such file or directory
qnx /bin/sh: shopt: cannot execute - No such file or directory
qnx /bin/sh: shopt: cannot execute - No such file or directory
qnx /bin/sh: syntax error: `(' unexpected
raspbian 2 2 3 2 3 4
redhat 2 2 3 2 3 4
@ -1288,7 +1291,7 @@ netbsd var1: Undefined variable.
openbsd 1 2,1 2 3,1 2 3 4
openindiana 1 2,1 2 3,1 2 3 4
pidora 1 2,1 2 3,1 2 3 4
qnx ,,
qnx 1 2,1 2 3,1 2 3 4
qnx parset: Warning: Cannot figure out number of cpus. Using 1.
raspbian 1 2,1 2 3,1 2 3 4
redhat 1 2,1 2 3,1 2 3 4
@ -1322,6 +1325,9 @@ qnx /bin/sh: compgen: cannot execute - No such file or directory
qnx /bin/sh: compgen: cannot execute - No such file or directory
qnx /bin/sh: compgen: cannot execute - No such file or directory
qnx parset: Warning: Cannot figure out number of cpus. Using 1.
qnx /bin/sh: shopt: cannot execute - No such file or directory
qnx /bin/sh: shopt: cannot execute - No such file or directory
qnx /bin/sh: shopt: cannot execute - No such file or directory
raspbian 2,2 3,2 3 4
redhat 2,2 3,2 3 4
scosysv 2,2 3,2 3 4