Released as 20210922 ('Vindelev')

This commit is contained in:
Ole Tange 2021-09-22 23:37:24 +02:00
parent 4e6f4644f4
commit 123126f678
25 changed files with 181 additions and 108 deletions

2
.gitignore vendored
View file

@ -17,3 +17,5 @@ src/*.pdf
src/*.texi src/*.texi
src/*.1 src/*.1
src/*.7 src/*.7
src/sphinx/source/*.rst
src/sphinx/build/*

25
NEWS
View file

@ -1,3 +1,28 @@
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
* I Summarized 100+ Command-Line Tools for Data Scientists in 15
Minutes
https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe
* Speed up Your Builds by Parallelizing
https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing
* Bash: GNU Parallel with Curl
https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2
20210822 20210822
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-20210822.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20210822.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2.sig
gpg parallel-20210822.tar.bz2.sig gpg parallel-20210922.tar.bz2.sig
bzip2 -dc parallel-20210822.tar.bz2 | tar xvf - bzip2 -dc parallel-20210922.tar.bz2 | tar xvf -
cd parallel-20210822 cd parallel-20210922
./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-20210822.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20210822.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20210922.tar.bz2.sig
gpg parallel-20210822.tar.bz2.sig gpg parallel-20210922.tar.bz2.sig
bzip2 -dc parallel-20210822.tar.bz2 | tar xvf - bzip2 -dc parallel-20210922.tar.bz2 | tar xvf -
cd parallel-20210822 cd parallel-20210922
./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. (2021, August 22). GNU Parallel 20210822 ('Kabul'). Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').
Zenodo. https://doi.org/10.5281/zenodo.5233953 Zenodo. https://doi.org/10.5281/zenodo.5523272
Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and 2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and

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.69 for parallel 20210822. # Generated by GNU Autoconf 2.69 for parallel 20210922.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20210822' PACKAGE_VERSION='20210922'
PACKAGE_STRING='parallel 20210822' PACKAGE_STRING='parallel 20210922'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' 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. # 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 20210822 to adapt to many kinds of systems. \`configure' configures parallel 20210922 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,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 20210822:";; short | recursive ) echo "Configuration of parallel 20210922:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1357,7 +1357,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 20210822 parallel configure 20210922
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,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 20210822, which was It was created by parallel $as_me 20210922, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20210822' VERSION='20210922'
cat >>confdefs.h <<_ACEOF 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 # 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 20210822, which was This file was extended by parallel $as_me 20210922, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20210822 parallel config.status 20210922
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20210822], [bug-parallel@gnu.org]) AC_INIT([parallel], [20210922], [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

@ -1,15 +1,16 @@
== Citation FAQ == === Citation FAQ ===
> Why does GNU Parallel show a citation notice? == Why does GNU Parallel show a citation notice? ==
GNU Parallel is indirectly funded through citations. GNU Parallel is indirectly funded through citations.
GNU Parallel is funded by me having a paid job that allows for GNU Parallel is funded by me having a paid job that allows for
maintaining GNU Parallel. This is much easier to get if GNU Parallel maintaining GNU Parallel. This is much easier to get if GNU Parallel
is cited in scientific journals, and history has shown that is cited in scientific journals, and history has shown that
researchers forget to do this if they are not reminded explicitly. researchers forget to do this if the notice is only put in the
documentation.
It is therefore important for the long-term survival of GNU Parallel It is therefore crucial for the long-term survival of GNU Parallel
that it is cited. The citation notice makes users aware of this. that it is cited. The citation notice makes users aware of this.
See also: https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html See also: https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html
@ -24,7 +25,7 @@ single solution that just works:
* https://www.numfocus.org/blog/why-is-numpy-only-now-getting-funded/ * https://www.numfocus.org/blog/why-is-numpy-only-now-getting-funded/
> Is the citation notice compatible with GPLv3? == Is the citation notice compatible with GPLv3? ==
Yes. The wording has been cleared by Richard M. Stallman to be Yes. The wording has been cleared by Richard M. Stallman to be
compatible with GPLv3. This is because the citation notice is not part compatible with GPLv3. This is because the citation notice is not part
@ -34,15 +35,30 @@ Therefore the notice is not adding a term that would require citation
as mentioned on: as mentioned on:
https://www.gnu.org/licenses/gpl-faq.en.html#RequireCitation https://www.gnu.org/licenses/gpl-faq.en.html#RequireCitation
If you disagree with Richard M. Stallman's interpretation and feel the
citation notice does not adhere to GPLv3, you should treat the
software as if it is not available under GPLv3. And since GPLv3 is the
only thing that would give you the right to change it, you would not
be allowed to change the software.
> Do automated scripts break if the notice is not silenced? In other words: If you want to remove the citation notice to make the
software compliant with your interpretation of GPLv3, you first have
to accept that the software is already compliant with GPLv3, because
nothing else gives you the right to change it. And if you accept this,
you do not need to change it to make it compliant.
So: If you do not feel the citation notice adheres to GPLv3, you need
to treat it as software that you have no license to use.
== Do automated scripts break if the notice is not silenced? ==
No. Not a single time has that happened. This is due to the notice No. Not a single time has that happened. This is due to the notice
only being printed, if the output is to the screen - not if the output only being printed, if the output is to the screen - not if the output
is to a file or a pipe. is to a file or a pipe.
> How do I silence the citation notice? == How do I silence the citation notice? ==
Run this once: Run this once:
@ -60,12 +76,12 @@ academic tradition requires you to cite in scientific articles. That
tradition requires you to cite even if there had been no notice. tradition requires you to cite even if there had been no notice.
> I do not write scientific articles. Does the notice apply to me? == I do not write scientific articles. Does the notice apply to me? ==
The notice is only relevant if you write scientific articles. The notice is only relevant if you write scientific articles.
> What shows citing software is an academic tradition? == What shows citing software is an academic tradition? ==
These links say: Yes, you should cite software, and if the author These links say: Yes, you should cite software, and if the author
suggests a way of citing, use that. suggests a way of citing, use that.
@ -78,6 +94,7 @@ suggests a way of citing, use that.
* https://journals.aas.org/policy-statement-on-software/ * https://journals.aas.org/policy-statement-on-software/
* https://guides.lib.monash.edu/c.php?g=219786&p=1454293 * https://guides.lib.monash.edu/c.php?g=219786&p=1454293
* https://www.maxqda.com/how-to-cite-maxqda * https://www.maxqda.com/how-to-cite-maxqda
* https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files
If you feel the benefit from using GNU Parallel is too small to If you feel the benefit from using GNU Parallel is too small to
warrant a citation, then prove that by simply using another tool. If warrant a citation, then prove that by simply using another tool. If
@ -87,7 +104,7 @@ use of GNU Parallel, then it is a good indication that the benefit is
big enough to warrant a citation. big enough to warrant a citation.
> Do other software tools show how to cite? == Do other software tools show how to cite? ==
Here are other examples of software showing how to cite. Some of these Here are other examples of software showing how to cite. Some of these
refer to peer-reviewed articles - others do not: refer to peer-reviewed articles - others do not:
@ -107,7 +124,7 @@ refer to peer-reviewed articles - others do not:
* https://github.com/UnixJunkie/PAR/blob/master/README * https://github.com/UnixJunkie/PAR/blob/master/README
> I do not like the notice. Can I fork GNU Parallel and remove it? == I do not like the notice. Can I fork GNU Parallel and remove it? ==
Yes. GNU Parallel is released under GNU GPLv3 and thus you are allowed Yes. GNU Parallel is released under GNU GPLv3 and thus you are allowed
to fork the code. But you have to make sure that your forked version to fork the code. But you have to make sure that your forked version
@ -130,9 +147,9 @@ and do not want to see it wither away like many of the competitors,
then this is a bad idea, as it will lead to less funding. then this is a bad idea, as it will lead to less funding.
> How important is the notice for the survival of GNU Parallel? == How important is the notice for the survival of GNU Parallel? ==
Citations is what indirectly funds maintaining GNU Parallel. Before Citations are what indirectly fund maintaining GNU Parallel. Before
the citation notice was implemented hardly anyone cited GNU Parallel, the citation notice was implemented hardly anyone cited GNU Parallel,
and that would not have been sustainable in the long term. Funding and that would not have been sustainable in the long term. Funding
development aligns well with "We will give back to the free software development aligns well with "We will give back to the free software
@ -146,7 +163,7 @@ removed (and staying in main).
In other words: It is preferable having fewer users, who all know they In other words: It is preferable having fewer users, who all know they
should cite, over having many users, who do not know they should cite. should cite, over having many users, who do not know they should cite.
This is because a long-term survival with funding is more important This is because long-term survival with funding is more important
than short-term gains in popularity that can be achieved by being than short-term gains in popularity that can be achieved by being
distributed as part of a distribution. distributed as part of a distribution.
@ -154,7 +171,7 @@ If the goal had been to get more users, then the license would have
been public domain. been public domain.
> Is there another way I can get rid of the citation notice? == Is there another way I can get rid of the citation notice? ==
Yes. Find a way to finance future development of GNU Parallel. If you Yes. Find a way to finance future development of GNU Parallel. If you
pay me a normal salary, I will be happy to remove the citation notice. pay me a normal salary, I will be happy to remove the citation notice.
@ -162,7 +179,7 @@ pay me a normal salary, I will be happy to remove the citation notice.
The citation notice is about (indirect) funding - nothing else. The citation notice is about (indirect) funding - nothing else.
> I do not think it is fair having to cite == I do not think it is fair having to cite ==
If the inconvenience of having to cite is too big for you, then you If the inconvenience of having to cite is too big for you, then you
should use another tool. should use another tool.
@ -174,7 +191,7 @@ help you find an alternative:
https://www.gnu.org/software/parallel/parallel_alternatives.html https://www.gnu.org/software/parallel/parallel_alternatives.html
> I do not want to run 'parallel --citation' == I do not want to run 'parallel --citation' ==
If the inconvenience of running 'parallel --citation' one single time If the inconvenience of running 'parallel --citation' one single time
after installing GNU Parallel is too big, then you do not have to do after installing GNU Parallel is too big, then you do not have to do
@ -184,7 +201,7 @@ notice.
But it really only takes 10 seconds to run. But it really only takes 10 seconds to run.
> I do not want to see the citation notice at every run == I do not want to see the citation notice at every run ==
You do not have to. Spend 10 seconds on running 'parallel --citation' You do not have to. Spend 10 seconds on running 'parallel --citation'
and the notice is silenced. This is similar to clicking 'OK. Do not and the notice is silenced. This is similar to clicking 'OK. Do not
@ -194,7 +211,7 @@ If GNU Parallel does not save you more than 10 seconds, then you
should probably not be using it anyway. should probably not be using it anyway.
> I do not want to help finance the development == I do not want to help finance the development ==
If you care so little about GNU Parallel that you do not want to help If you care so little about GNU Parallel that you do not want to help
finance development, then you should contemplate whether GNU Parallel finance development, then you should contemplate whether GNU Parallel

View file

@ -128,6 +128,9 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
=== Used === === Used ===
Take a look at GNU Parallel. Its magnificent.
-- Siira@ycombinator.com
Safe to say, @GnuParallel was a life changer during my PhD! It helped Safe to say, @GnuParallel was a life changer during my PhD! It helped
me optimise so many of my tasks and analyses. me optimise so many of my tasks and analyses.
-- Parice Brandies @PariceBrandies@twitter -- Parice Brandies @PariceBrandies@twitter

View file

@ -255,33 +255,31 @@ 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 20210822 ('Kabul') released Subject: GNU Parallel 20210922 ('<<>>Vindelev/Chris Donahue/Ida') released <<[stable]>>
GNU Parallel 20210822 ('Kabul') has been released. It is available for download at: lbry://@GnuParallel:4 GNU Parallel 20210922 ('Vindelev') [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.
Quote of the month: Quote of the month:
Safe to say, @GnuParallel was a life changer during my PhD! It helped Take a look at GNU Parallel. Its magnificent.
me optimise so many of my tasks and analyses. -- Siira@ycombinator.com
-- Parice Brandies @PariceBrandies@twitter
New in this release: New in this release:
* --ctag/--ctagstring colors the tag in different colors for each job.
* You can use unit prefixes (k, m, g, etc) with -n -N -L.
* Bug fixes and man page updates. * Bug fixes and man page updates.
News about GNU Parallel: News about GNU Parallel:
* Parallelising jobs with GNU parallel https://blog.ronin.cloud/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
* Use multiple CPU Cores with your Linux commands - awk, sed, bzip2, grep, wc, etc. https://cdmana.com/2021/07/20210728132344693t.html * I Summarized 100+ Command-Line Tools for Data Scientists in 15 Minutes https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe
* How to execute commands in parallel in Linux https://net2.com/how-to-execute-commands-in-parallel-in-linux/ * Speed up Your Builds by Parallelizing https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing
* Bash: GNU Parallel with Curl https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html 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="312" vrev="1" srcmd5="3b2d528a15b0898ec9a2649f393cb24d"> <directory name="parallel" rev="313" vrev="1" srcmd5="6814e6bd1cf4ac6a903551ee342be431">
<entry name="PKGBUILD" md5="872019301c50c38abc39ba04937925d1" size="936" mtime="1629661749" /> <entry name="PKGBUILD" md5="cd2a244a75df25eb5cacb8c644855902" size="936" mtime="1632345652" />
<entry name="parallel-20210822.tar.bz2" md5="1a9a3282c6287ad43936497f4c0fe61b" size="2267536" mtime="1629661749" /> <entry name="parallel-20210922.tar.bz2" md5="b74b7adf0d57fea23bd09bd427e3a1d0" size="2268369" mtime="1632345652" />
<entry name="parallel.spec" md5="1360338a8e6c60305fb2c9a27db7a902" size="5630" mtime="1629661749" /> <entry name="parallel.spec" md5="881c476934d5120fa21974d985454e68" size="5630" mtime="1632345653" />
<entry name="parallel_20210822.dsc" md5="48d6e04ee967486209117322306aa3bd" size="556" mtime="1629661749" /> <entry name="parallel_20210922.dsc" md5="90fc749aaea89e74809e81514505bb2d" size="556" mtime="1632345653" />
<entry name="parallel_20210822.tar.gz" md5="6f1ecb52bdf18a8ac846f3b5feb8c60f" size="2509459" mtime="1629661750" /> <entry name="parallel_20210922.tar.gz" md5="68b0e83e4652805c7c2c85e88d167245" size="2511473" mtime="1632345653" />
</directory> </directory>

View file

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

View file

@ -385,7 +385,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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

@ -384,7 +384,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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

@ -385,7 +385,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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

@ -363,7 +363,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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

@ -365,7 +365,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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

@ -390,7 +390,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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

@ -355,7 +355,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210822 (GNU parallel `parallel --minversion 1`)" echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 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 = 20210822; $Global::version = 20210922;
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

@ -1604,9 +1604,11 @@ sub options_hash() {
"gnu" => \$opt::gnu, "gnu" => \$opt::gnu,
"link|xapply" => \$opt::link, "link|xapply" => \$opt::link,
"linkinputsource|xapplyinputsource=i" => \@opt::linkinputsource, "linkinputsource|xapplyinputsource=i" => \@opt::linkinputsource,
# Before changing this line, 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
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
# You accept to be put in a public hall of shame by removing
# the lines.
"bibtex|citation" => \$opt::citation, "bibtex|citation" => \$opt::citation,
"wc|willcite|will-cite|nn|nonotice|no-notice" => \$opt::willcite, "wc|willcite|will-cite|nn|nonotice|no-notice" => \$opt::willcite,
# Termination and retries # Termination and retries
@ -1761,9 +1763,11 @@ sub parse_options(@) {
my @argv_before = @ARGV; my @argv_before = @ARGV;
@ARGV = read_options(); @ARGV = read_options();
# Before changing this line, please read # Before changing these line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
# You accept to be added to a public hall of shame by
# removing the lines.
if(defined $opt::citation) { if(defined $opt::citation) {
citation(\@argv_before,\@ARGV); citation(\@argv_before,\@ARGV);
wait_and_exit(0); wait_and_exit(0);
@ -2118,11 +2122,10 @@ sub parse_options(@) {
# If you want GNU Parallel to be maintained in the future you # If you want GNU Parallel to be maintained in the future you
# should keep this line. # should keep this line.
citation_notice(); citation_notice();
# Seriously: _YOU_ will be harming free software by removing the # _YOU_ will be harming free software by removing the notice. You
# notice. _YOU_ make it harder to justify spending time developing # accept to be added to a public hall of shame by removing the
# it. If you *do* remove the line, please email # line. This is because _YOU_ actively make it harder to justify
# hallofshame@tange.dk if you want to avoid being put in a hall of # spending time developing GNU Parallel.
# shame.
parse_halt(); parse_halt();
@ -2241,7 +2244,7 @@ sub check_invalid_option_combinations() {
sub init_globals() { sub init_globals() {
# Defaults: # Defaults:
$Global::version = 20210822; $Global::version = 20210922;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$::name = "GNU Parallel"; $::name = "GNU Parallel";
$Global::infinity = 2**31; $Global::infinity = 2**31;
@ -5052,12 +5055,14 @@ 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. (2021, August 22). GNU Parallel 20210822 ('Kabul').", " Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').",
" Zenodo. https://doi.org/10.5281/zenodo.5233953", " Zenodo. https://doi.org/10.5281/zenodo.5523272",
"", "",
# Before changing this line, 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
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
# You accept to be put in a public hall of shame by removing
# the lines.
"This helps funding further development; AND IT WON'T COST YOU A CENT.", "This helps funding further development; AND IT WON'T COST YOU A CENT.",
"If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.",
"", "",
@ -5083,12 +5088,14 @@ 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. (2021, August 22). GNU Parallel 20210822 ('Kabul').", " Tange, O. (2021, September 22). GNU Parallel 20210922 ('Vindelev').",
" Zenodo. https://doi.org/10.5281/zenodo.5233953", " Zenodo. https://doi.org/10.5281/zenodo.5523272",
"", "",
# Before changing this 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
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
# You accept to be put in a public hall of shame by
# removing the lines.
"This helps funding further development; AND IT WON'T COST YOU A CENT.", "This helps funding further development; AND IT WON'T COST YOU A CENT.",
"If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.",
"", "",
@ -5207,24 +5214,26 @@ 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_2021_5233953,", "\@software{tange_2021_5523272,",
" author = {Tange, Ole},", " author = {Tange, Ole},",
" title = {GNU Parallel 20210822 ('Kabul')},", " title = {GNU Parallel 20210922 ('Vindelev')},",
" month = Aug,", " month = Sep,",
" year = 2021,", " year = 2021,",
" 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.5233953},", " doi = {10.5281/zenodo.5523272},",
" url = {https://doi.org/10.5281/zenodo.5233953}", " url = {https://doi.org/10.5281/zenodo.5523272}",
"}", "}",
"", "",
"(Feel free to use \\nocite{tange_2021_5233953})", "(Feel free to use \\nocite{tange_2021_5523272})",
"", "",
# Before changing this line, 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
# https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt # https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
# You accept to be put in a public hall of shame by removing
# the lines.
"This helps funding further development; AND IT WON'T COST YOU A CENT.", "This helps funding further development; AND IT WON'T COST YOU A CENT.",
"If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.",
"", "",

View file

@ -576,7 +576,10 @@ See also: B<--fg>, B<man sem>.
Implies B<--semaphore>. Implies B<--semaphore>.
=cut
# You accept to be added to a public hall of shame by
# removing this section.
=item B<--bibtex> =item B<--bibtex>
=item B<--citation> =item B<--citation>
@ -740,12 +743,12 @@ Even quoted newlines are parsed correctly:
When used with B<--pipe> only pass full CSV-records. When used with B<--pipe> only pass full CSV-records.
=item B<--ctag> I<str> (alpha testing) =item B<--ctag> I<str> (beta testing)
Color tag. See B<--tag>. Color tag. See B<--tag>.
=item B<--ctagstring> I<str> (alpha testing) =item B<--ctagstring> I<str> (beta testing)
Color tagstring. See B<--tagstring>. Color tagstring. See B<--tagstring>.
@ -1882,9 +1885,9 @@ it to the command.
Only used with B<--pipe>. Only used with B<--pipe>.
=item B<--results> I<name> (beta testing) =item B<--results> I<name>
=item B<--res> I<name> (beta testing) =item B<--res> I<name>
Save the output into files. Save the output into files.
@ -2707,7 +2710,7 @@ to GNU B<parallel> giving each child its own process group, which is
then killed. Process groups are dependant on the tty. then killed. Process groups are dependant on the tty.
=item B<--tag> (alpha testing) =item B<--tag> (beta testing)
Tag lines with arguments. Each output line will be prepended with the Tag lines with arguments. Each output line will be prepended with the
arguments and TAB (\t). When combined with B<--onall> or B<--nonall> arguments and TAB (\t). When combined with B<--onall> or B<--nonall>
@ -2718,7 +2721,7 @@ B<--tag> is ignored when using B<-u>.
B<--ctag> gives the tag a color. B<--ctag> gives the tag a color.
=item B<--tagstring> I<str> (alpha testing) =item B<--tagstring> I<str> (beta testing)
Tag lines with a string. Each output line will be prepended with 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 I<str> and TAB (\t). I<str> can contain replacement strings such as

View file

@ -13,11 +13,13 @@ parallel_alternatives - Alternatives to GNU B<parallel>
=head1 DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES =head1 DIFFERENCES BETWEEN GNU Parallel AND ALTERNATIVES
There are a lot programs with some of the functionality of GNU There are a lot programs that share functionality with GNU
B<parallel>. GNU B<parallel> strives to include the best of the B<parallel>. Some of these are specialized tools, and while GNU
functionality without sacrificing ease of use. B<parallel> can emulate many of them, a specialized tool can be better
at a given task. GNU B<parallel> strives to include the best of the
general functionality without sacrificing ease of use.
B<parallel> has existed since 2002 and as GNU B<parallel> since B<parallel> has existed since 2002-01-06 and as GNU B<parallel> since
2010. A lot of the alternatives have not had the vitality to survive 2010. A lot of the alternatives have not had the vitality to survive
that long, but have come and gone during that time. that long, but have come and gone during that time.
@ -293,6 +295,9 @@ contain space, " or ').
ls | xargs -d "\n" -P8 -I {} bash -c "wc {} >{}.wc" ls | xargs -d "\n" -P8 -I {} bash -c "wc {} >{}.wc"
ls | xargs -d "\n" -P8 -I {} bash -c "echo {}; ls {}|wc" ls | xargs -d "\n" -P8 -I {} bash -c "echo {}; ls {}|wc"
A more extreme example can be found on:
https://unix.stackexchange.com/q/405552/
https://www.gnu.org/software/findutils/ https://www.gnu.org/software/findutils/

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 = 20210822; $Global::version = 20210922;
if($opt::version) { version(); exit 0; } if($opt::version) { version(); exit 0; }
@Global::sortoptions = @Global::sortoptions =
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]); shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);

View file

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

@ -104,11 +104,20 @@ prereqlocal: installparallel startvm
prereqremote: installparallel startvm prereqremote: installparallel startvm
parallel -j0 --timeout 10 --tag ssh vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true) parallel -j0 --timeout 10 --tag ssh vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true)
startvm: ignore=bytes.of.data|ping.statistics|packets.transmitted|64.bytes.from|\
parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up; wssh vagrant@{} echo {} is up)' ::: centos8 freebsd11 freebsd12 rhel8 centos3 & min/avg/max/mdev|default
start=(stdout ping -w 1 -c 1 {} || \
(cd vagrant/*/{} && vagrant up; \
wssh vagrant@{} echo {} is up) ) | \
grep -Ev "${ignore}"
stop=(stdout ping -w 1 -c 1 {} && \
(cd vagrant/*/{} && vagrant suspend) ) | \
grep -Ev "${ignore}"
startvm:
parallel --tag -k '${start}' ::: centos8 freebsd11 freebsd12 rhel8 centos3 &
stopvm: stopvm:
parallel --tag -k 'ping -w 1 -c 1 {} && cd vagrant/*/{} && vagrant suspend' ::: centos8 freebsd11 freebsd12 rhel8 centos3 || true parallel --tag -k '${stop}' ::: centos8 freebsd11 freebsd12 rhel8 centos3 || true
startdb: startdb:
true TODO should start Oracle in vagrant true TODO should start Oracle in vagrant

View file

@ -58,7 +58,9 @@ par_controlmaster_is_faster() {
par_workdir_in_HOME() { par_workdir_in_HOME() {
echo '### test --workdir . in $HOME' echo '### test --workdir . in $HOME'
cd && mkdir -p parallel-test && cd parallel-test && cd && mkdir -p parallel-test && cd parallel-test &&
echo OK > testfile && parallel --workdir . --transfer -S $SSHLOGIN1 cat {} ::: testfile echo OK > testfile &&
stdout parallel --workdir . --transfer -S $SSHLOGIN1 cat {} ::: testfile |
grep -v 'Permanently added'
} }
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)