[Toybox] [PATCH] nohup: use the same mode constant for open() and xcreate().

Rob Landley rob at landley.net
Thu Feb 2 03:28:48 PST 2023



On 2/1/23 11:02, enh wrote:
> On Tue, Jan 31, 2023 at 9:29 PM Rob Landley <rob at landley.net> wrote:
>>
>> On 1/31/23 22:57, enh wrote:
>> > aye, but only if you're stuck with a compiler from the 1990s... even gcc has
>> > warned about that for years :-P
>> ...
>> >     and the warning unless it has parentheses isn't a
>> >     strong defense either because a&b || c also needs parentheses so they tend to
>> >     happen...
>>
>> Thingy.
> 
> yeah, but the cure for that readability problem is to use enough
> parentheses that it's clear to both human and compiler.

The fix is _more_ unnecessary parentheses?

> (iirc most of
> the more modern languages have continued to copy c's mess forward. i

Ritchie admitted it should have gotten cleaned up circa 1974:

  https://www.lysator.liu.se/c/dmr-on-or.html

But since it _didn't_ it's at least been consistent for 50 years. :)

> think only Swift has made a serious effort to rationalize operator
> precedence? oh, no, golang also appears to have the obvious simplified
> "yeah, that's what humans think the precedence should be" precedence.)
> 
>> >     Otherwise they're theoretically equivalent, so changing it to be the other way
>> >     because it "looks wrong" otherwise... seems weird to me? It looks like it
>> >     couldn't be an assignment. That's the point...
>>
>> I still think wanting comparison to look different from assignment isn't
>> inherently weird...
> 
> maybe, but this way of doing it is weird (there's a reason it's called
> "yoda style" :-) ),

By you. I'd never heard that before...

The wikipedia page on it was created 9 years ago. I started doing it in... 1992,
I believe?

> and -- at the risk of encouraging you to go and
> yoda-ify everything -- it's not like toybox _consistently_ uses this
> style

Because it works both ways? The operator doesn't care.

> (in the same way that "use octal for permissions" is without
> doubt the toybox style).

Because chmod 655 works on the command line but you can't feed u+x into the
system call.

> a quick "grep fight" shows a majority of -1 comparisons are the right
> way round rather than yoda style. so in addition to the extra
> cognitive load of reading something that's backwards, even if you
> _only_ read toybox and aren't switching between other projects, even
> toybox requires you to switch back and forth.

Because you're comparing two things.

"I can only tell apples from oranges if I hold the apple in my left hand" is WEIRD.

>> Rob

Rob


More information about the Toybox mailing list