From acb915b074db9e4e6469ac5db6ea2a2f6b681018 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Wed, 21 Dec 2022 00:57:10 +0100 Subject: [PATCH] parallel: Fixed bug #63586: --ll does not clear till end of line. --- doc/release_new_version | 18 +-- src/Makefile.am | 2 +- src/christmastree | 2 +- src/env_parallel | 4 +- src/env_parallel.ash | 8 +- src/env_parallel.bash | 8 +- src/env_parallel.csh | 4 +- src/env_parallel.dash | 8 +- src/env_parallel.fish | 4 +- src/env_parallel.ksh | 8 +- src/env_parallel.mksh | 8 +- src/env_parallel.pdksh | 4 +- src/env_parallel.pod | 4 +- src/env_parallel.sh | 8 +- src/env_parallel.tcsh | 4 +- src/env_parallel.zsh | 8 +- src/niceload | 6 +- src/niceload.pod | 4 +- src/parallel | 47 +++---- src/parallel.pod | 28 ++-- src/parallel_alternatives.pod | 85 ++++++++++++- src/parallel_book.pod | 2 +- src/parallel_design.pod | 2 +- src/parallel_examples.pod | 4 +- src/parallel_tutorial.pod | 8 +- src/parcat | 4 +- src/parcat.pod | 4 +- src/parset | 4 +- src/parset.pod | 4 +- src/parsort | 8 +- src/pod2graph | 4 +- src/sem.pod | 4 +- src/sql | 8 +- src/testurls | 4 +- testsuite/Fixed.sh | 2 +- testsuite/Makefile | 8 +- testsuite/Portable.sh | 2 +- testsuite/REQUIREMENTS | 2 +- testsuite/Start.sh | 2 +- testsuite/tests-to-run/parallel-local-0.3s.sh | 4 + testsuite/tests-to-run/parallel-local-30s.sh | 2 +- .../tests-to-run/parallel-local-race02.sh | 51 +------- testsuite/tests-to-run/parallel-manual.sh | 59 +++++++++ testsuite/wanted-results/parallel-local-0.3s | 13 +- testsuite/wanted-results/parallel-local-10s | 120 +++++++++--------- .../wanted-results/parallel-local-race02 | 9 -- testsuite/wanted-results/parallel-tutorial | 5 +- 47 files changed, 353 insertions(+), 258 deletions(-) create mode 100755 testsuite/tests-to-run/parallel-manual.sh diff --git a/doc/release_new_version b/doc/release_new_version index e53d4a30..d0263255 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -262,25 +262,25 @@ from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20221222 ('ChatGPT') released +Subject: GNU Parallel 20230122 ('Pele/MashaAmina<<>>') released -GNU Parallel 20221222 ('ChatGPT') has been released. It is available for download at: lbry://@GnuParallel:4 +GNU Parallel 20230122 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4 Quote of the month: - GNU Parallel absolutely rocks. - -- Austin Mordahl@Stackoverflow + <<>> New in this release: -* --results works on more file systems (e.g. fat) - -* Joblog gives the same exit code as bash. +<<>> News about GNU Parallel: -* Programação Shell Linux: Paralelismo de processos com GNU parallel https://www.youtube.com/watch?v=duheTWLIrp8 -* Talk Python: Data Science from the Command Line https://talkpython.fm/episodes/show/392/data-science-from-the-command-line +https://www.purevpn.com/blog/the-best-hacking-tools-of-2023/#11_GNU_Parallel + +this is wrong-https://climbtheladder.com/10-gnu-parallel-best-practices/ + +<<>> GNU Parallel - For people who live life in the parallel lane. diff --git a/src/Makefile.am b/src/Makefile.am index cf7325c6..7264c3d8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2002-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2002-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/christmastree b/src/christmastree index 1100201e..9a10a675 100644 --- a/src/christmastree +++ b/src/christmastree @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later =head1 NAME diff --git a/src/env_parallel b/src/env_parallel index 3f968fc3..3aa7d7cd 100755 --- a/src/env_parallel +++ b/src/env_parallel @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later grepq() { diff --git a/src/env_parallel.ash b/src/env_parallel.ash index 8c5fc0fd..a34704f6 100755 --- a/src/env_parallel.ash +++ b/src/env_parallel.ash @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 shell=dash @@ -393,8 +393,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/env_parallel.bash b/src/env_parallel.bash index 67980711..2ffc415c 100755 --- a/src/env_parallel.bash +++ b/src/env_parallel.bash @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 @@ -395,8 +395,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/env_parallel.csh b/src/env_parallel.csh index b36e4beb..8e581a54 100755 --- a/src/env_parallel.csh +++ b/src/env_parallel.csh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later set _parallel_exit_CODE=0 diff --git a/src/env_parallel.dash b/src/env_parallel.dash index bcc7e9f3..31658436 100755 --- a/src/env_parallel.dash +++ b/src/env_parallel.dash @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 @@ -393,8 +393,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/env_parallel.fish b/src/env_parallel.fish index f4568e7a..9332bde1 100755 --- a/src/env_parallel.fish +++ b/src/env_parallel.fish @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # If you are a fisherman feel free to improve the code diff --git a/src/env_parallel.ksh b/src/env_parallel.ksh index d9c9d9a5..ddd11d60 100755 --- a/src/env_parallel.ksh +++ b/src/env_parallel.ksh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 @@ -376,8 +376,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/env_parallel.mksh b/src/env_parallel.mksh index 3280d0c4..f8c9adcb 100644 --- a/src/env_parallel.mksh +++ b/src/env_parallel.mksh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 @@ -378,8 +378,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/env_parallel.pdksh b/src/env_parallel.pdksh index b530ccf4..74df9111 100755 --- a/src/env_parallel.pdksh +++ b/src/env_parallel.pdksh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later env_parallel() { diff --git a/src/env_parallel.pod b/src/env_parallel.pod index a1982587..fc81f373 100644 --- a/src/env_parallel.pod +++ b/src/env_parallel.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -807,7 +807,7 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. diff --git a/src/env_parallel.sh b/src/env_parallel.sh index 952027de..b62d8c9d 100755 --- a/src/env_parallel.sh +++ b/src/env_parallel.sh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 @@ -393,8 +393,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/env_parallel.tcsh b/src/env_parallel.tcsh index 8358ec1b..89fbcce7 100755 --- a/src/env_parallel.tcsh +++ b/src/env_parallel.tcsh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later set _parallel_exit_CODE=0 diff --git a/src/env_parallel.zsh b/src/env_parallel.zsh index 8e844901..01a1a08c 100755 --- a/src/env_parallel.zsh +++ b/src/env_parallel.zsh @@ -7,7 +7,7 @@ # after which 'env_parallel' works # # -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # shellcheck disable=SC2006 @@ -368,8 +368,8 @@ _parset_main() { fi if [ "$_parset_NAME" = "--version" ] ; then # shellcheck disable=SC2006 - echo "parset 20221222 (GNU parallel `parallel --minversion 1`)" - echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software" + echo "parset 20221223 (GNU parallel `parallel --minversion 1`)" + echo "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software" echo "Foundation, Inc." echo "License GPLv3+: GNU GPL version 3 or later " echo "This is free software: you are free to change and redistribute it." diff --git a/src/niceload b/src/niceload index b0c4f6d1..f1e56a48 100755 --- a/src/niceload +++ b/src/niceload @@ -2,7 +2,7 @@ # Copyright (C) 2004-2010 Ole Tange, http://ole.tange.dk # -# Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and +# Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and # Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -20,13 +20,13 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20221222; +$Global::version = 20221223; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/niceload.pod b/src/niceload.pod index 75656f32..597b26f0 100644 --- a/src/niceload.pod +++ b/src/niceload.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -309,7 +309,7 @@ Copyright (C) 2004-11-19 Ole Tange, http://ole.tange.dk Copyright (C) 2005-2010 Ole Tange, http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. =head1 LICENSE diff --git a/src/parallel b/src/parallel index 34fe1fc9..d229afb5 100755 --- a/src/parallel +++ b/src/parallel @@ -1,6 +1,6 @@ #!/usr/bin/env perl -# Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # open3 used in Job::start @@ -2702,7 +2702,7 @@ sub check_invalid_option_combinations() { sub init_globals() { # Defaults: - $Global::version = 20221222; + $Global::version = 20221223; $Global::progname = 'parallel'; $::name = "GNU Parallel"; $Global::infinity = 2**31; @@ -5756,7 +5756,7 @@ sub version() { print join ("\n", "GNU $Global::progname $Global::version", - "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software", + "Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software", "Foundation, Inc.", "License GPLv3+: GNU GPL version 3 or later ", "This is free software: you are free to change and redistribute it.", @@ -5894,7 +5894,7 @@ sub embed() { } print "#!$Global::shell -# Copyright (C) 2007-2022 $user, Ole Tange, http://ole.tange.dk +# Copyright (C) 2007-2023 $user, Ole Tange, http://ole.tange.dk # and Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -11316,7 +11316,7 @@ sub print_files($) { # --tag # --bar { - my ($up,$currow,$maxrow); + my ($up,$eol,$currow,$maxrow); my ($minvisible,%print_later,%notvisible); my (%binmodeset,%tab); @@ -11324,6 +11324,9 @@ sub print_files($) { # cursor_up cuu1 = up one line $up = `sh -c "tput cuu1 /dev/null`; chomp($up); + $eol = `sh -c "tput el /dev/null`; + chomp($eol); + if($eol eq "") { $eol = "\033[K"; } $currow = 1; $maxrow = 1; $minvisible = 1; @@ -11353,15 +11356,15 @@ sub print_files($) { my $untabify_tag = ::decode_utf8($self->untabtag()); my $taglen = length $untabify_tag; my $truncated_tag = ""; - my $strlen = $termcol - $taglen; my $untabify_str = ::decode_utf8($self->{$out_fh,'latestline'}); $untabify_str =~ s/\t/$tab{$-[0]%8}/g; + # -1 to make space for $truncated + my $strlen = $termcol - $taglen - 1; my $strspc = $strlen - length $untabify_str; - $strlen--; if($strlen < 0) { $strlen = 0;} # Line is shorter than terminal width: add " " # Line is longer than terminal width: add ">" - my $truncated = ($strspc > 0) ? " " : ">"; + my $truncated = ($strspc >= 0) ? " " : ">"; if($taglen > $termcol) { # Tag is longer than terminal width: add ">" to tag # Remove $truncated (it will not be shown at all) @@ -11369,17 +11372,15 @@ sub print_files($) { $truncated_tag = ">"; $truncated = ""; } - - $maxrow = $row > $maxrow ? $row : $maxrow; + $maxrow = ($row > $maxrow) ? $row : $maxrow; printf($out_fh - ("%s%s%s". # up down \r - "%.${taglen}s%s". # tag - "%s%.${strlen}s%s%s". # color + line + ("%s%s%s%s". # up down \r eol + "%.${taglen}s%s". # tag trunc_tag + "%s%.${strlen}s%s%s". # color line trunc reset_color "%s" # down ), - "$up"x($currow - $row), - "\n"x($row - $currow), - "\r", $untabify_tag,$truncated_tag, + "$up"x($currow - $row), "\n"x($row - $currow), "\r", $eol, + $untabify_tag,$truncated_tag, $color, $untabify_str, $truncated, $reset_color, "\n"x($maxrow - $row + 1)); $currow = $maxrow + 1; @@ -11837,14 +11838,16 @@ sub untabtag($) { 160..178,180,182..184,196..214,232..250)); # reorder list so adjacent colors are dissimilar # %23 and %7 were found experimentally - @color_combinations = @color_combinations[ - sort { ($a%23 <=> $b%23) or ($b%7 <=> $a%7) } - 0..$#color_combinations - ]; + my @order = reverse sort { + (($a%23) <=> ($b%23)) + or + (($b%7) <=> ($a%7)); + } 0..$#color_combinations; + @order = @order[54 .. $#color_combinations, 0 .. 53]; @color = map { # TODO Can this be done with `tput` codes? "\033[48;5;".$_->[0].";38;5;".$_->[1]."m" - } @color_combinations; + } @color_combinations[ @order ]; # clr_eol el = clear to end of line $eol = `sh -c "tput el /dev/null`; diff --git a/src/parallel.pod b/src/parallel.pod index dcf81cbf..137ec4c8 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -549,7 +549,7 @@ string that is not in the command line. See also: B<:::> -=item B<--bar> (beta testing) +=item B<--bar> Show progress as a progress bar. @@ -839,7 +839,7 @@ to stdout (standard output) unless B<--decompress-program> is given. See also: B<--compress> -=item B<--csv> (beta testing) +=item B<--csv> Treat input as CSV-format. @@ -1055,7 +1055,7 @@ Outputs: 1,1 1,2 1,3 2,2 2,3 3,3 See also: B B<--no-run-if-empty> -=item B<--filter-hosts> (beta testing) +=item B<--filter-hosts> Remove down hosts. @@ -1586,9 +1586,9 @@ Similar to B<--memfree>. See also: B<--memfree> B<--load> -=item B<--latest-line> (beta testing) +=item B<--latest-line> (alpha testing) -=item B<--ll> (beta testing) +=item B<--ll> (alpha testing) Print the lastest line. Each job gets a single line that is updated with the lastest output from the job. @@ -2026,7 +2026,7 @@ B<--progress> on a running GNU B process. See also: B<--eta> B<--bar> -=item B<--max-line-length-allowed> (beta testing) +=item B<--max-line-length-allowed> Print maximal command line length. @@ -3033,13 +3033,13 @@ I is in seconds, but can be postfixed with s, m, h, or d. See also: TIME POSTFIXES B<--sshlogin> B<--delay> -=item B<--sshlogin> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> (beta testing) +=item B<--sshlogin> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> -=item B<--sshlogin> I<@hostgroup> (beta testing) +=item B<--sshlogin> I<@hostgroup> -=item B<-S> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> (beta testing) +=item B<-S> I<[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]]> -=item B<-S> I<@hostgroup> (beta testing) +=item B<-S> I<@hostgroup> Distribute jobs to remote computers. @@ -3297,9 +3297,9 @@ dies before the waiting time is up. See also: B<--halt> B<--timeout> B<--memfree> -=item B<--total-jobs> I (beta testing) +=item B<--total-jobs> I -=item B<--total> I (beta testing) +=item B<--total> I Provide the total number of jobs for computing ETA which is also used for B<--bar>. @@ -4391,7 +4391,7 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. Parts of the manual concerning B compatibility is inspired by diff --git a/src/parallel_alternatives.pod b/src/parallel_alternatives.pod index 6e7e780f..2d737742 100644 --- a/src/parallel_alternatives.pod +++ b/src/parallel_alternatives.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -3511,6 +3511,87 @@ https://github.com/TheWizardTower/seneschal (Last checked: 2022-06) +=head2 DIFFERENCES BETWEEN async AND GNU Parallel + +Summary (see legend above): + +=over + +=item x x x x x x x + +=item - x x x x x + +=item x O2 O3 O4 O5 O6 - x x O10 + +=item E1 - - E4 - - - + +=item - - - - - - - - - + +=item S1 S2 + +=back + +B works like B. + + +=head3 EXAMPLES FROM async + + 1$ S="/tmp/example_socket" + + async -s="$S" server --start + + for i in {1..20}; do + # prints command output to stdout + async -s="$S" cmd -- bash -c "sleep 1 && echo test $i" + done + + # wait until all commands are finished + async -s="$S" wait + + 1$ S="example_id" + + # server not needed + + for i in {1..20}; do + # prints command output to stdout + sem --bg --id "$S" -j100% "sleep 1 && echo test $i" + done + + # wait until all commands are finished + sem --fg --id "$S" --wait + + 2$ # configure the server to run four commands in parallel + async -s="$S" server -j4 + + mkdir "/tmp/ex_dir" + for i in {21..40}; do + # redirects command output to /tmp/ex_dir/file* + async -s="$S" cmd -o "/tmp/ex_dir/file$i" -- \ + bash -c "sleep 1 && echo test $i" + done + + async -s="$S" wait + + # stops server + async -s="$S" server --stop + + 2$ # starting server not needed + + mkdir "/tmp/ex_dir" + for i in {21..40}; do + # redirects command output to /tmp/ex_dir/file* + sem --bg --id "$S" --results "/tmp/ex_dir/file$i{}" \ + "sleep 1 && echo test $i" + done + + sem --fg --id "$S" --wait + + # there is no server to stop + +https://github.com/ctbur/async +(Last checked: 2023-01) + + =head2 Todo http://code.google.com/p/push/ (cannot compile) @@ -3785,7 +3866,7 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. Parts of the manual concerning B compatibility is inspired by diff --git a/src/parallel_book.pod b/src/parallel_book.pod index 5bbb4326..83fdbbeb 100644 --- a/src/parallel_book.pod +++ b/src/parallel_book.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 diff --git a/src/parallel_design.pod b/src/parallel_design.pod index 85aee124..e1049377 100644 --- a/src/parallel_design.pod +++ b/src/parallel_design.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 diff --git a/src/parallel_examples.pod b/src/parallel_examples.pod index e5182764..5de828ea 100644 --- a/src/parallel_examples.pod +++ b/src/parallel_examples.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -1868,7 +1868,7 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. Parts of the manual concerning B compatibility is inspired by diff --git a/src/parallel_tutorial.pod b/src/parallel_tutorial.pod index 51b5e1c4..a6076b50 100644 --- a/src/parallel_tutorial.pod +++ b/src/parallel_tutorial.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -3003,8 +3003,8 @@ When asking for help, always report the full output of this: Output: - GNU parallel 20210122 - Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software + GNU parallel 20230122 + Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. @@ -3165,7 +3165,7 @@ https://my.fsf.org/donate/ =back -(C) 2013-2022 Ole Tange, GFDLv1.3+ (See +(C) 2013-2023 Ole Tange, GFDLv1.3+ (See LICENSES/GFDL-1.3-or-later.txt) diff --git a/src/parcat b/src/parcat index 285efce3..9340a2f5 100755 --- a/src/parcat +++ b/src/parcat @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later use Symbol qw(gensym); diff --git a/src/parcat.pod b/src/parcat.pod index 2516e0bf..1aea58c1 100644 --- a/src/parcat.pod +++ b/src/parcat.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -71,7 +71,7 @@ GNU B is part of GNU B. Report bugs to =head1 AUTHOR -Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. =head1 LICENSE diff --git a/src/parset b/src/parset index faf6a818..2b752c6a 100755 --- a/src/parset +++ b/src/parset @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Copyright (C) 2016-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2016-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later grepq() { diff --git a/src/parset.pod b/src/parset.pod index cb95ec6a..9b91f80a 100644 --- a/src/parset.pod +++ b/src/parset.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -202,7 +202,7 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. diff --git a/src/parsort b/src/parsort index f0770f52..a39b9589 100755 --- a/src/parsort +++ b/src/parsort @@ -1,6 +1,6 @@ #!/usr/bin/perl -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later =pod @@ -45,7 +45,7 @@ On a 48 core machine you should see a speedup of 3x over B. =head1 AUTHOR -Copyright (C) 2020-2022 Ole Tange, +Copyright (C) 2020-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. @@ -122,7 +122,7 @@ GetOptions( "help" => \$opt::dummy, ) || exit(255); $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; -$Global::version = 20221222; +$Global::version = 20221223; if($opt::version) { version(); exit 0; } @Global::sortoptions = grep { ! /^-D$/ } shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]); @@ -238,7 +238,7 @@ sub version() { print join ("\n", "GNU $Global::progname $Global::version", - "Copyright (C) 2020-2022 Ole Tange, http://ole.tange.dk and Free Software", + "Copyright (C) 2020-2023 Ole Tange, http://ole.tange.dk and Free Software", "Foundation, Inc.", "License GPLv3+: GNU GPL version 3 or later ", "This is free software: you are free to change and redistribute it.", diff --git a/src/pod2graph b/src/pod2graph index a7be1001..0f685081 100755 --- a/src/pod2graph +++ b/src/pod2graph @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # Convert .pod file containing: diff --git a/src/sem.pod b/src/sem.pod index 15d4ea71..e94cc286 100644 --- a/src/sem.pod +++ b/src/sem.pod @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GFDL-1.3-or-later # SPDX-License-Identifier: CC-BY-SA-4.0 @@ -255,7 +255,7 @@ Report bugs to . =head1 AUTHOR -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. diff --git a/src/sql b/src/sql index 53fc6022..fe46e7ed 100755 --- a/src/sql +++ b/src/sql @@ -2,7 +2,7 @@ # Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk # -# Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and +# Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and # Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -20,7 +20,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2008-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2008-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GFDL-1.3-or-later @@ -388,7 +388,7 @@ Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32. Copyright (C) 2008-2010 Ole Tange http://ole.tange.dk -Copyright (C) 2010-2022 Ole Tange, http://ole.tange.dk and Free +Copyright (C) 2010-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. =head1 LICENSE @@ -667,7 +667,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20221222; + $Global::version = 20230103; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/src/testurls b/src/testurls index 6a33ddf2..5a6fffb8 100755 --- a/src/testurls +++ b/src/testurls @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright (C) 2022-2022 Ole Tange, http://ole.tange.dk and Free +# Copyright (C) 2022-2023 Ole Tange, http://ole.tange.dk and Free # Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # or write to the Free Software Foundation, Inc., 51 Franklin St, # Fifth Floor, Boston, MA 02110-1301 USA # -# SPDX-FileCopyrightText: 2022-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2022-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # SPDX-License-Identifier: GPL-3.0-or-later grep -hv '(dead)' ../src/* | diff --git a/testsuite/Fixed.sh b/testsuite/Fixed.sh index 07bacf71..726123f8 100644 --- a/testsuite/Fixed.sh +++ b/testsuite/Fixed.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later diff --git a/testsuite/Makefile b/testsuite/Makefile index fa32641e..b5689c79 100644 --- a/testsuite/Makefile +++ b/testsuite/Makefile @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later @@ -26,6 +26,10 @@ mem: ../src/parallel tests-to-run/*mem* wanted-results/*mem* touch ~/.parallel/will-cite make stopvm +# The output must be inspected visually +manual: ../src/parallel tests-to-run/*manual* wanted-results/*manual* + bash tests-to-run/parallel-manual.sh + # Tutorial tutorial: ../src/parallel tests-to-run/*tutorial* wanted-results/*tutorial* prereqlocal TRIES=1 time bash Start.sh tutorial NONE || true @@ -52,7 +56,7 @@ local: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal i # short short: ../src/parallel tests-to-run/* wanted-results/* prereqlocal installparallel - TRIES=1 time bash Start.sh '' 'polar|mem|100s|300s' + TRIES=1 time bash Start.sh '' 'polar|mem|100s|300s|manual' # long long: ../src/parallel tests-to-run/* wanted-results/* prereqlocal installparallel diff --git a/testsuite/Portable.sh b/testsuite/Portable.sh index 0e910e8d..b4ffbbae 100644 --- a/testsuite/Portable.sh +++ b/testsuite/Portable.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS index 957622d7..678cdb0a 100644 --- a/testsuite/REQUIREMENTS +++ b/testsuite/REQUIREMENTS @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2002-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2002-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later diff --git a/testsuite/Start.sh b/testsuite/Start.sh index 9561cbe7..59a35747 100755 --- a/testsuite/Start.sh +++ b/testsuite/Start.sh @@ -1,6 +1,6 @@ #!/bin/bash -x -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index d31eac2e..e53e6990 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -16,6 +16,10 @@ export -f stdsort # Test amount of parallelization # parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5} +par_ll_long_followed_by_short() { + parallel --ll 'echo A very long line;sleep 0.2;echo' ::: OK | puniq +} + par_PARALLEL_HOME_not_exist() { echo '### bug #62311: --pipepart + ::: fail' tmp1=$(mktemp) diff --git a/testsuite/tests-to-run/parallel-local-30s.sh b/testsuite/tests-to-run/parallel-local-30s.sh index f640b29a..1df349ca 100755 --- a/testsuite/tests-to-run/parallel-local-30s.sh +++ b/testsuite/tests-to-run/parallel-local-30s.sh @@ -281,7 +281,7 @@ par_groupby_pipepart() { # Make 6 columns: 123456 => 1\t2\t3\t4\t5\t6 seq 100000 999999 | perl -pe '$_=join"\t",split//' | # Sort reverse on column 3 (This should group on col 3) - sort --parallel=8 --buffer-size=50% -k3r + sort --parallel=8 -k3r } export -f tsv diff --git a/testsuite/tests-to-run/parallel-local-race02.sh b/testsuite/tests-to-run/parallel-local-race02.sh index f93b2a19..3a349f13 100644 --- a/testsuite/tests-to-run/parallel-local-race02.sh +++ b/testsuite/tests-to-run/parallel-local-race02.sh @@ -1,60 +1,11 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later # These fail regularly -par_ll_tag() { - ( - parallel --tag --ll -q printf "a\n{}\n" ::: should-be-tagged - parallel --tag --ll -q printf "a\n\r{}\n" ::: should-be-tagged - parallel --color --tag --ll true ::: A - parallel --color --tag --ll 'echo;true {}' ::: B - parallel --color --tag --ll 'echo {};true {}' ::: C - ) | puniq -} - -par_ll_lb_color() { - echo 'bug #62386: --color (--ctag but without --tag)' - echo 'bug #62438: See last line from multiple jobslots' - # This is a race condition - # # delay modulo 4 seconds - # perl -MTime::HiRes -E 'Time::HiRes::usleep(1000000*(((time|3)+1)-Time::HiRes::time()));' - # # delay modulo 2 seconds - # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|1)));say time;' - # # delay modulo 1 second - # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|0)));say time;' - # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time*4|0)/4));say time;' - # # delay modulo 1/4 second - # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(-time+(1+time*3|0)/3));say time;'; - # # delay modulo 1/4 second + 100 ms - # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.1-time+(1+time*3|0)/3));say time;'; - # # delay modulo 1 second + 200 ms - # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.2-time+(1+time*1|0)/1));say time;'; - # # delay modulo 1 second + delta ms - # perl -E 'use Time::HiRes qw(usleep time); $d=shift; for(1..shift){ - # usleep(1000000*($d-time+(1+time*1|0)/1));say;}' 0.2 6; - _offset_seq() { - perl -E 'use Time::HiRes qw(usleep time); $|=1;$d=shift; for(1..shift){ - usleep(1000000*($d-time+(1+time*1|0)/1));say;}' $@; - } - offset_seq() { - perl -E 'use Time::HiRes qw(usleep time); $|=1;usleep(shift); for(1..shift){ - usleep(1000000);say;}' $@; - } - export -f offset_seq - run() { - seq 4 -1 1 | parallel -j0 $@ offset_seq '{= $_=seq()*170000 =}' {} - } - export -f run - - parallel --delay 0.07 -vkj0 run \ - ::: --lb --ll '' ::: --color '' ::: '--tagstring {}{}' --tag '' ::: -k '' | - md5sum -} - ctrlz_should_suspend_children() { echo 'bug #46120: Suspend should suspend (at least local) children' echo 'it should burn 1.9 CPU seconds, but no more than that' diff --git a/testsuite/tests-to-run/parallel-manual.sh b/testsuite/tests-to-run/parallel-manual.sh new file mode 100755 index 00000000..5757777a --- /dev/null +++ b/testsuite/tests-to-run/parallel-manual.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# These fail regularly + +par_ll_tag() { + parallel --tag --ll -q printf "a\n{}\n" ::: should-be-tagged-A + parallel --tag --ll -q printf "a\n\r{}\n" ::: should-be-tagged-B + parallel --color --tag --ll true ::: ERROR-should-not-be-printed + parallel --color --tag --ll 'echo;true {}' ::: empty-line + parallel --color --tag --ll 'echo {};true {}' ::: full-line +} + +par_ll_lb_color() { + echo '### This should give the same output with color and without' + echo 'bug #62386: --color (--ctag but without --tag)' + echo 'bug #62438: See last line from multiple jobslots' + # This is a race condition + # # delay modulo 4 seconds + # perl -MTime::HiRes -E 'Time::HiRes::usleep(1000000*(((time|3)+1)-Time::HiRes::time()));' + # # delay modulo 2 seconds + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|1)));say time;' + # # delay modulo 1 second + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|0)));say time;' + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time*4|0)/4));say time;' + # # delay modulo 1/4 second + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(-time+(1+time*3|0)/3));say time;'; + # # delay modulo 1/4 second + 100 ms + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.1-time+(1+time*3|0)/3));say time;'; + # # delay modulo 1 second + 200 ms + # perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.2-time+(1+time*1|0)/1));say time;'; + # # delay modulo 1 second + delta ms + # perl -E 'use Time::HiRes qw(usleep time); $d=shift; for(1..shift){ + # usleep(1000000*($d-time+(1+time*1|0)/1));say;}' 0.2 6; + _offset_seq() { + perl -E 'use Time::HiRes qw(usleep time); $|=1;$d=shift; for(1..shift){ + usleep(1000000*($d-time+(1+time*1|0)/1));say;}' $@; + } + offset_seq() { + perl -E 'use Time::HiRes qw(usleep time); $|=1;usleep(shift); for(1..shift){ + usleep(1000000);say;}' $@; + } + export -f offset_seq + run() { + seq 4 -1 1 | parallel -j0 $@ offset_seq '{= $_=seq()*170000 =}' {} + } + export -f run + + parallel --delay 0.07 -vkj0 run \ + ::: --lb --ll '' ::: -k '' ::: '--tagstring {}{}' --tag '' ::: '' --color +} + +export -f $(compgen -A function | grep par_) +compgen -A function | grep par_ | sort | + # parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' + parallel --joblog /tmp/jl-`basename $0` -j0 --tag -k '{} 2>&1' diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index ef12fd3a..39307fa8 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -80,15 +80,15 @@ par_colour_failed 2(B par_colour_failed seq 2;exit 2(B par_colour_failed 1(B par_colour_failed 2(B -par_colour_failed seq 1;exit 0(B -par_colour_failed 1(B +par_colour_failed seq 1;exit 0(B +par_colour_failed 1(B par_colour_failed seq 1;exit 1(B par_colour_failed 1(B par_colour_failed seq 1;exit 2(B par_colour_failed 1(B -par_colour_failed seq 2;exit 0(B -par_colour_failed 1(B -par_colour_failed 2(B +par_colour_failed seq 2;exit 0(B +par_colour_failed 1(B +par_colour_failed 2(B par_colour_failed seq 2;exit 1(B par_colour_failed 1(B par_colour_failed 2(B @@ -324,6 +324,9 @@ par_link_files_as_only_arg bug #50685: single ::::+ does not work par_link_files_as_only_arg 1 1 1 par_link_files_as_only_arg 2 2 2 par_link_files_as_only_arg 3 3 3 +par_ll_long_followed_by_short par_ll_long_followed_by_short A very long line +par_ll_long_followed_by_short  par_ll_long_followed_by_short A very long line +par_ll_long_followed_by_short  par_ll_long_followed_by_short OK par_locale_quoting ### quoting in different locales par_locale_quoting £`/tmp/test£` par_locale_quoting $LC_ALL £`/tmp/test£` diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 4e964c69..2a3b6e76 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -532,67 +532,67 @@ par_line_buffer ### --line-buffer par_line_buffer 55 55 120 par_line_buffer These must diff: 1 par_ll_color_long_line ### --latest-line --color with lines longer than terminal width -par_ll_color_long_line par_ll_color_long_line 01x 0100000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 02xx 0200000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 03xxx 0300000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 04xxxx 0400000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 05xxxxx 0500000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 06xxxxxx 0600000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 07xxxxxxx 0700000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 08xxxxxxxx 0800000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 09xxxxxxxxx 0900000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 10xxxxxxxxxx 1000000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 11xxxxxxxxxxx 1100000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 12xxxxxxxxxxxx 1200000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 13xxxxxxxxxxxxx 1300000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 14xxxxxxxxxxxxxx 14000>(B -par_ll_color_long_line par_ll_color_long_line 15xxxxxxxxxxxxxxx 15000>(B -par_ll_color_long_line par_ll_color_long_line 16xxxxxxxxxxxxxxxx 16000>(B -par_ll_color_long_line par_ll_color_long_line 17xxxxxxxxxxxxxxxxx 17000>(B -par_ll_color_long_line par_ll_color_long_line 18xxxxxxxxxxxxxxxxxx 18000>(B -par_ll_color_long_line par_ll_color_long_line 19xxxxxxxxxxxxxxxxxxx 19000>(B -par_ll_color_long_line par_ll_color_long_line 20xxxxxxxxxxxxxxxxxxxx 20000>(B -par_ll_color_long_line par_ll_color_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000>(B -par_ll_color_long_line par_ll_color_long_line 22xxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 23xxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B -par_ll_color_long_line par_ll_color_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B -par_ll_color_long_line par_ll_color_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B -par_ll_color_long_line par_ll_color_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B +par_ll_color_long_line par_ll_color_long_line 01x 0100000 1 2 3 4 5 6 7>(B +par_ll_color_long_line par_ll_color_long_line 02xx 0200000 1 2 3 4 5 6 7>(B +par_ll_color_long_line par_ll_color_long_line 03xxx 0300000 1 2 3 4 5 6 7>(B +par_ll_color_long_line par_ll_color_long_line 04xxxx 0400000 1 2 3 4 5 6 7>(B +par_ll_color_long_line par_ll_color_long_line 05xxxxx 0500000 1 2 3 4 5 6 7>(B +par_ll_color_long_line par_ll_color_long_line 06xxxxxx 0600000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 07xxxxxxx 0700000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 08xxxxxxxx 0800000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 09xxxxxxxxx 0900000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 10xxxxxxxxxx 1000000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 11xxxxxxxxxxx 1100000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 12xxxxxxxxxxxx 1200000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 13xxxxxxxxxxxxx 1300000 1 2 3>(B +par_ll_color_long_line par_ll_color_long_line 14xxxxxxxxxxxxxx 14000>(B +par_ll_color_long_line par_ll_color_long_line 15xxxxxxxxxxxxxxx 15000>(B +par_ll_color_long_line par_ll_color_long_line 16xxxxxxxxxxxxxxxx 16000>(B +par_ll_color_long_line par_ll_color_long_line 17xxxxxxxxxxxxxxxxx 17000>(B +par_ll_color_long_line par_ll_color_long_line 18xxxxxxxxxxxxxxxxxx 18000>(B +par_ll_color_long_line par_ll_color_long_line 19xxxxxxxxxxxxxxxxxxx 19000>(B +par_ll_color_long_line par_ll_color_long_line 20xxxxxxxxxxxxxxxxxxxx 20000>(B +par_ll_color_long_line par_ll_color_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000>(B +par_ll_color_long_line par_ll_color_long_line 22xxxxxxxxxxxxxxxxxxxxxx >(B +par_ll_color_long_line par_ll_color_long_line 23xxxxxxxxxxxxxxxxxxxxxxx >(B +par_ll_color_long_line par_ll_color_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx >(B +par_ll_color_long_line par_ll_color_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx >(B +par_ll_color_long_line par_ll_color_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx >(B +par_ll_color_long_line par_ll_color_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B +par_ll_color_long_line par_ll_color_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B +par_ll_color_long_line par_ll_color_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B +par_ll_color_long_line par_ll_color_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B par_ll_long_line ### --latest-line with lines longer than terminal width -par_ll_long_line par_ll_long_line 01x 0100000 1 2 3 4 5 6 7> -par_ll_long_line par_ll_long_line 02xx 0200000 1 2 3 4 5 6 7> -par_ll_long_line par_ll_long_line 03xxx 0300000 1 2 3 4 5 6 7> -par_ll_long_line par_ll_long_line 04xxxx 0400000 1 2 3 4 5 6 7> -par_ll_long_line par_ll_long_line 05xxxxx 0500000 1 2 3 4 5 6 7> -par_ll_long_line par_ll_long_line 06xxxxxx 0600000 1 2 3> -par_ll_long_line par_ll_long_line 07xxxxxxx 0700000 1 2 3> -par_ll_long_line par_ll_long_line 08xxxxxxxx 0800000 1 2 3> -par_ll_long_line par_ll_long_line 09xxxxxxxxx 0900000 1 2 3> -par_ll_long_line par_ll_long_line 10xxxxxxxxxx 1000000 1 2 3> -par_ll_long_line par_ll_long_line 11xxxxxxxxxxx 1100000 1 2 3> -par_ll_long_line par_ll_long_line 12xxxxxxxxxxxx 1200000 1 2 3> -par_ll_long_line par_ll_long_line 13xxxxxxxxxxxxx 1300000 1 2 3> -par_ll_long_line par_ll_long_line 14xxxxxxxxxxxxxx 14000> -par_ll_long_line par_ll_long_line 15xxxxxxxxxxxxxxx 15000> -par_ll_long_line par_ll_long_line 16xxxxxxxxxxxxxxxx 16000> -par_ll_long_line par_ll_long_line 17xxxxxxxxxxxxxxxxx 17000> -par_ll_long_line par_ll_long_line 18xxxxxxxxxxxxxxxxxx 18000> -par_ll_long_line par_ll_long_line 19xxxxxxxxxxxxxxxxxxx 19000> -par_ll_long_line par_ll_long_line 20xxxxxxxxxxxxxxxxxxxx 20000> -par_ll_long_line par_ll_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000> -par_ll_long_line par_ll_long_line 22xxxxxxxxxxxxxxxxxxxxxx > -par_ll_long_line par_ll_long_line 23xxxxxxxxxxxxxxxxxxxxxxx > -par_ll_long_line par_ll_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx > -par_ll_long_line par_ll_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx > -par_ll_long_line par_ll_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx > -par_ll_long_line par_ll_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx> -par_ll_long_line par_ll_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx> -par_ll_long_line par_ll_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx> -par_ll_long_line par_ll_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line par_ll_long_line 01x 0100000 1 2 3 4 5 6 7> +par_ll_long_line par_ll_long_line 02xx 0200000 1 2 3 4 5 6 7> +par_ll_long_line par_ll_long_line 03xxx 0300000 1 2 3 4 5 6 7> +par_ll_long_line par_ll_long_line 04xxxx 0400000 1 2 3 4 5 6 7> +par_ll_long_line par_ll_long_line 05xxxxx 0500000 1 2 3 4 5 6 7> +par_ll_long_line par_ll_long_line 06xxxxxx 0600000 1 2 3> +par_ll_long_line par_ll_long_line 07xxxxxxx 0700000 1 2 3> +par_ll_long_line par_ll_long_line 08xxxxxxxx 0800000 1 2 3> +par_ll_long_line par_ll_long_line 09xxxxxxxxx 0900000 1 2 3> +par_ll_long_line par_ll_long_line 10xxxxxxxxxx 1000000 1 2 3> +par_ll_long_line par_ll_long_line 11xxxxxxxxxxx 1100000 1 2 3> +par_ll_long_line par_ll_long_line 12xxxxxxxxxxxx 1200000 1 2 3> +par_ll_long_line par_ll_long_line 13xxxxxxxxxxxxx 1300000 1 2 3> +par_ll_long_line par_ll_long_line 14xxxxxxxxxxxxxx 14000> +par_ll_long_line par_ll_long_line 15xxxxxxxxxxxxxxx 15000> +par_ll_long_line par_ll_long_line 16xxxxxxxxxxxxxxxx 16000> +par_ll_long_line par_ll_long_line 17xxxxxxxxxxxxxxxxx 17000> +par_ll_long_line par_ll_long_line 18xxxxxxxxxxxxxxxxxx 18000> +par_ll_long_line par_ll_long_line 19xxxxxxxxxxxxxxxxxxx 19000> +par_ll_long_line par_ll_long_line 20xxxxxxxxxxxxxxxxxxxx 20000> +par_ll_long_line par_ll_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000> +par_ll_long_line par_ll_long_line 22xxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line par_ll_long_line 23xxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line par_ll_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line par_ll_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line par_ll_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line par_ll_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line par_ll_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line par_ll_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line par_ll_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx> par_load_blocks ### Test if --load blocks. Bug. par_load_blocks 53d025127ae99ab79e8502aae2d9bea6 - par_load_blocks 53d025127ae99ab79e8502aae2d9bea6 - diff --git a/testsuite/wanted-results/parallel-local-race02 b/testsuite/wanted-results/parallel-local-race02 index a48a3e44..44128b20 100644 --- a/testsuite/wanted-results/parallel-local-race02 +++ b/testsuite/wanted-results/parallel-local-race02 @@ -118,15 +118,6 @@ par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid' par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid' par_kill_hup bash---pstree -par_ll_lb_color bug #62386: --color (--ctag but without --tag) -par_ll_lb_color bug #62438: See last line from multiple jobslots -par_ll_lb_color 35d02d4d868110dd4f0eaf1c2f26dc36 - -par_ll_tag par_ll_tag should-be-tagged should-be-tagged -par_ll_tag  par_ll_tag should-be-tagged should-be-tagged -par_ll_tag par_ll_tag B   -par_ll_tag  par_ll_tag B   -par_ll_tag par_ll_tag C C  -par_ll_tag  par_ll_tag C C  par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins par_more_than_9_relative_sshlogin 1 par_more_than_9_relative_sshlogin 2 diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index 682cf347..4aaedd12 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -692,7 +692,6 @@ This is input_file parallel -S $SERVER1 --trc {}.out cat {} ">"{}.out ::: input_file cat input_file.out This is input_file -rsync: [sender] link_stat "/home/parallel/input_file.out" failed: No such file or directory (2) echo common data > common_file parallel --basefile common_file -S $SERVER1 \ cat common_file\; echo {} ::: foo @@ -1285,7 +1284,7 @@ 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. parallel --version GNU parallel VERSION -Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software +Copyright (C) 2007-2023 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. @@ -1331,4 +1330,4 @@ mentioned in the release notes of next version of GNU Parallel. echo A echo B echo C -8 +9