From: Ingo Schwarze Subject: Re: make: -j without params To: Marc Espie Cc: tech@openbsd.org Date: Wed, 5 Mar 2025 20:07:26 +0100 Hi Marc, Marc Espie wrote on Sun, Feb 23, 2025 at 07:58:02PM +0100: > I just wanted -j (nothing) > to be a shorthand to "hey give me cpuonline" In addition to what others said, i disagree strongly with that basic idea. Having an option that takes an optional argument is atrocious user interface design because it tends to cause parsing ambiguities and confusion among users, and it's hard to document in a way that is both concise and clear. I'm not alone with that opinion, POSIX also says so: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap12.html#tag_12_02 Guideline 7: Option-arguments should not be optional. So i strongly oppose making an option argument optional unless there are unusually compelling reasons, which is not the case here. Given that POSIX discourages optional option arguments in general, i think that even if there were unusually good reasons, i would still oppose adding an optional option argument to a POSIX utility, unless the POSIX standard itself makes an exception from its own rule and requires a specific option argument to be optional for a specific utility. The POSIX specification of make(1), https://pubs.opengroup.org/onlinepubs/9799919799/utilities/make.html , requires the -j maxjobs option argument to be mandatory, so supporting -j without an option argument would not only be a POSIX extension, but a POSIX violation, which is quite a non-starter. > if it's complicated I won't pursue it further That sounds more reasonable to me. Yours, Ingo