svn commit: r283088 - head/sys/ddb
Pedro Giffuni
pfg at FreeBSD.org
Tue May 19 05:34:47 UTC 2015
> Il giorno 18/mag/2015, alle ore 23:34, Bruce Evans <brde at optusnet.com.au> ha scritto:
>
> On Mon, 18 May 2015, 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.
>
> For that, apply the reverse change to NetBSD.
>
Actually, the NetBSD code uses bool. (I hate CVS, commits are not atomic.)
>> 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.
>
> It is fairly well maintained (not churned to unimprove its portability).
> Why would newcomers want too look at it?
>
Unrelated fun: last year a student started adding support for CTF and pretty printing of the kernel structures. I think the NetBSD guys have been having fun with Lua.
>>>> 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.
>
> That wuld be sideways.
>
> I forgot to mention (again) in my previous reply that boolean_t is a mistake
> by me. KNF code doesn't even use the ! operator, but uses explicit
> comparison with 0. The boolean_t type and TRUE and FALSE are from Mach.
> They were used mainly in ddb and vm, and are still almost never used in
> kern. I used to like typedefs and a typedef for boolean types, and didn't
> know KNF very well, so in 1995 I moved the declaration of boolean_t from
> Mach vm code to sys/types.h to try to popularize it. This was a mistake.
> Fortunately, it is still rarely used in core kernel code.
>
> The boolean type is also almost never used for syscalls. In POSIX.1-2001,
> <stdbool.h> is inherited from C99, but is never used for any other POSIX
> API. Using it for syscalls would mainly cause portability problems.
>
OK, I do understand the kernel wants to keep the C dialect somewhat limited,
and adding stdbool.h doesn’t buy us any type safety here.
I’ll revert the change (prob. tomorrow though).
Pedro.
More information about the svn-src-all
mailing list