I recently had a bug where I used -X when I didn't mean to,
(copy/paste bug).  The script can't handle additional arguments
without additional --flags.  I can approximate this easily with this
example (using -m because -X is generally too smart for utils I could
think of):

This will fail, since 'dd' doesn't allow bare arguments and the -j1
forces parallel to try to run it all at once.
parallel --tag -j1  -m 'dd if=/dev/zero of=/dev/null count={}' ::: 1 2

This doesn't fail.
parallel --tag -j2  -m 'dd if=/dev/zero of=/dev/null count={}' ::: 1 2

This manifest in jobs running on machines with lots of cores, no
failure, despite the -m/-X really being in error.  Without the -j, we
just get the default -j for that machine.

I would have liked for the -m/-X to fail regardless of the number of
cores, since it was really inappropriate to run the tool with options
in that way. To me the -m/-X is more important than the -j but I can
see it both ways.

$ parallel --version
GNU parallel 20200422

Also, Thanks for parallel, it is fantastic and I love it.

Josef

Reply via email to