svn commit: r283088 - head/sys/ddb

Ian Lepore ian at freebsd.org
Tue May 19 14:11:33 UTC 2015


On Mon, 2015-05-18 at 22:49 -0500, Pedro Giffuni wrote:
> > Il giorno 18/mag/2015, alle ore 20:48, Bruce Evans <brde at optusnet.com.au> ha scritto:
> > 
> > On Mon, 18 May 2015, Pedro F. Giffuni wrote:
> > 
> >> Log:
> >> ddb: stop boolean screaming.
> >> 
> >> TRUE --> true
> >> FALSE--> false
> >> 
> >> Hinted by:	NetBSD
> > 
> > This is not just churn to a style regression, but a type mismatch.
> > 
> 
> It is an attempt to reduce differences with NetBSD.
> 
> One of the complaints of hear from newcomers to the ddb code is that
> the format is old-fashioned (it still had pre-ANSI headers not long ago)
> and unmaintained.
> 
> >> Modified: head/sys/ddb/db_break.c
> >> ==============================================================================
> >> --- head/sys/ddb/db_break.c	Mon May 18 22:14:06 2015	(r283087)
> >> +++ head/sys/ddb/db_break.c	Mon May 18 22:27:46 2015	(r283088)
> >> @@ -155,12 +155,12 @@ db_find_breakpoint_here(db_addr_t addr)
> >> 	return db_find_breakpoint(db_map_addr(addr), addr);
> >> }
> >> 
> >> -static boolean_t	db_breakpoints_inserted = TRUE;
> >> +static boolean_t	db_breakpoints_inserted = true;
> > 
> > This code hasn't been churned to use the boolean type.  It still uses
> > boolean_t, which is plain int.  TRUE and FALSE go with this type.  true
> > and false go with the boolean type.  This probably makes no difference,
> > because TRUE happens to be implemented with the same value as true and
> > there are lots of implicit versions between the types.
> > 
> 
> Yes, I noticed the return types are still ints. It doesn’t look difficult
> to convert it to use a real boolean type.  In any case, I would prefer to go
> forward (using bool) instead of reverting this change.
> 

Yes, please do.  Pedanticism aside, boolean types are extremely valuable
because they document the intended use of the data.  IMO the value in
that far outweighs arguments about spelling and conversions and other
whinging about things that work just fine.

To sum it up, "int" is one of the vaguest things you can say in C, and
"boolean" (in any reasonable spelling variation) is one of the clearest.

-- Ian

> > The boolean type is almost useless since C's type system is too weak to
> > distinguish between plain int used as a boolean and pure boolean.  If
> > it were stronger, then it would complain about all the implicit conversions
> > between int and boolean, and the boolean type would be harder to use for
> > other reasons.
> > 
> 
> And I would like that to happen, but it would probably break a lot of legacy code.
> I thought boolean_t was a transition type.
> 
> 
> Pedro.
> 
> 
> 




More information about the svn-src-all mailing list