Re: [patch 1/1] consolidate TRUE and FALSE

Anton Altaparmakov
2006-03-16T18:51:30Z

On Thu, 16 Mar 2006, Al Viro wrote:
> On Thu, Mar 16, 2006 at 04:42:29PM +0000, Anton Altaparmakov wrote:
> > Again, in your opinion. To me it is a simple consequence of there not
> > being a boolean type in the kernel so you cannot use it in the core code.
> > Once there is such a type I would imagine users will appear in the core
> > code over time.
>
> And that's supposed to be an argument in favour of that crap?

No, it was an alternative interpretation to Christoph's statement that the
non-use of booleans was due to them being crap. So I said that you can't
use what you don't have and I imagine the majority of people do not want
these pointless flamewars so no-one has so far bothered to introduce a
generic bollean type in the kernel...

Andy why is it crap? For a start it is valid C (well, ok C99, but even
you are fond of a lot of C99 features like the initializers) and second
it makes code more readable and makes meaning of functions a lot more
obvious, e.g reading:

"extern bool foo_is_compressed(bar);"

in a header file makes it damn obvious that if foo_is_compressed() returns
"true" then "bar" is compressed and if it returns "false" then "bar" is
not compressed.

If you see:

"extern int foo_is_compressed(bar);"

You have to go find the .c file containing the function and read it to
figure out what the heck the return value means/is. And don't tell me you
can rely on it returning 0 for not-compressed and 1 for compressed. For a
start it could return < 0 for error and a myriad of other things.
Especially in the kernel core the functions like that seem to randomly
return 0 for true and 1 for false and worse. But even if they were
consistent you could never rule out the < 0 for error case unless you read
the function itself.

So I beg to differ with your opinion of boolean type being crap.

As you might have noticed already, I think booleans have their place and
make code much more readable when used appropriately. I have only been
programming for the last 24 years and I like booleans and no-one is going
to get me to think otherwise after such a long time...

I am happy to agree that we disagree. Just stay away with s/true/1/
and s/false/0/ conversions from fs/ntfs/ please and I will shut up... (-:

Best regards,

Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/