From: Rusty Russell <rusty@rustcorp.com.au>
To: "H. Peter Anvin" <hpa@zytor.com>, Steven Rostedt <rostedt@goodmis.org>
Cc: Thiago Farina <tfransosi@gmail.com>,
linux-kernel@vger.kernel.org,
Alexey Dobriyan <adobriyan@gmail.com>,
Ingo Molnar <mingo@elte.hu>,
"David S. Miller" <davem@davemloft.net>,
Al Viro <viro@zeniv.linux.org.uk>, "Ted Ts'o" <tytso@mit.edu>,
Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCH] linux/string.h: Introduce streq macro.
Date: Thu, 28 Apr 2011 13:00:26 +0930 [thread overview]
Message-ID: <878vuvuk6l.fsf@rustcorp.com.au> (raw)
In-Reply-To: <4DB86163.2070201@zytor.com>
On Wed, 27 Apr 2011 11:33:07 -0700, "H. Peter Anvin" <hpa@zytor.com> wrote:
> On 04/27/2011 10:49 AM, Steven Rostedt wrote:
> > On Tue, 2011-04-26 at 16:45 -0300, Thiago Farina wrote:
> >> This macro is arguably more readable than its variants:
> >> - !strcmp(a, b)
> >> - strcmp(a, b) == 0
> >
> > Actually, this was proposed way back in 2002 my Rusty and I did not see
> > anyone arguing against it. I wonder why it never was incorporated back
> > then?
> >
> > http://marc.info/?l=linux-kernel&m=103284339813100&w=2
> >
> > [ added Cc's of some of those that replied to this thread ]
> >
>
> Because !strcmp() is idiomatic C.
I proposed it because I *did* find a bug caused by my own misuse of it.
Only once in 15 years as an experienced C coder, but a bug is a bug.
But why argue; #define it in your code if you want. If enough people
do, we'll want to unify it.
Personally, I think it's marginal: only those with enough knowledge to
avoid the trap anyway will know to use it, and YA kernel-specific piece
of knowledge cancels the readability benefit.
But who knows, maybe it'll catch on elsewhere too? That would be a win.
> It doesn't matter if it is more readable *to you*... learn the language,
> please.
That API is crap: insulting the user makes us look foolish.
And even experienced coders can get hit by bad APIs. The invalidity of
this program shocked me recently:
#include <ctype.h>
int main(int argc, char *argv[]) { return isupper(argv[0][0]) ? 1 : 0; }
Thanks,
Rusty.
next prev parent reply other threads:[~2011-04-28 11:05 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-26 18:49 [PATCH] linux/string.h: Introduce streq macro Thiago Farina
2011-04-26 19:00 ` Steven Rostedt
2011-04-26 19:05 ` Alexey Dobriyan
2011-04-26 19:17 ` Steven Rostedt
2011-04-26 19:20 ` Alexey Dobriyan
2011-04-26 19:21 ` Thiago Farina
2011-04-26 19:37 ` Steven Rostedt
2011-04-26 19:45 ` Joe Perches
2011-04-26 19:47 ` Thiago Farina
2011-04-26 19:58 ` Steven Rostedt
2011-04-26 20:06 ` Joe Perches
2011-04-27 8:29 ` Miguel Ojeda
2011-04-27 8:42 ` Geert Uytterhoeven
2011-04-27 8:49 ` Miguel Ojeda
2011-04-27 9:04 ` Pavel Vasilyev
2011-04-26 20:00 ` Steven Rostedt
2011-04-26 19:25 ` Steven Rostedt
2011-04-26 19:45 ` Thiago Farina
2011-04-26 19:54 ` Thiago Farina
2011-04-27 17:49 ` Steven Rostedt
2011-04-27 18:33 ` H. Peter Anvin
2011-04-27 18:51 ` Pekka Enberg
2011-04-27 19:16 ` Steven Rostedt
2011-04-27 19:26 ` Steven Rostedt
2011-04-27 19:38 ` Pekka Enberg
2011-04-27 20:04 ` Steven Rostedt
2011-04-27 20:24 ` H. Peter Anvin
2011-04-27 19:01 ` Steven Rostedt
2011-04-27 23:38 ` Ted Ts'o
2011-04-28 3:30 ` Rusty Russell [this message]
2011-04-26 20:27 ` Davidlohr Bueso
2011-04-26 20:33 ` Thiago Farina
2011-04-27 0:52 ` Ted Ts'o
2011-04-27 1:32 ` Steven Rostedt
2011-04-27 6:47 ` Christoph Hellwig
2011-04-27 8:47 ` gmack
2011-04-27 14:52 ` Ted Ts'o
2011-04-27 16:04 ` Alexey Dobriyan
2011-04-27 16:26 ` Steven Rostedt
2011-04-27 8:35 ` Mike Frysinger
2011-04-27 16:46 ` Al Viro
2011-04-27 17:07 ` Steven Rostedt
2011-04-27 21:46 ` Al Viro
2011-04-27 22:17 ` Thiago Farina
2011-04-27 22:38 ` Pavel Vasilyev
2011-04-27 22:45 ` Al Viro
2011-04-28 0:05 ` Steven Rostedt
2011-04-27 22:21 ` Thiago Farina
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878vuvuk6l.fsf@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=adobriyan@gmail.com \
--cc=davem@davemloft.net \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=tfransosi@gmail.com \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.