Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 May 2015 22:56:31 -0700
From:      Garrett Cooper <yaneurabeya@gmail.com>
To:        Pedro Giffuni <pfg@FreeBSD.org>
Cc:        Bruce Evans <brde@optusnet.com.au>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r283088 - head/sys/ddb
Message-ID:  <161C0DB1-E570-4A92-A98B-4098C510E96B@gmail.com>
In-Reply-To: <BA474AEC-A0A8-4FF8-8881-397E8280C72F@FreeBSD.org>
References:  <201505182227.t4IMRljx078812@svn.freebsd.org> <20150519113755.U1840@besplex.bde.org> <406A7AE3-1891-4B2C-B917-14C150EBBAB5@FreeBSD.org> <20150519135341.R2157@besplex.bde.org> <BA474AEC-A0A8-4FF8-8881-397E8280C72F@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> On May 18, 2015, at 22:28, Pedro Giffuni <pfg@FreeBSD.org> wrote:
>=20
>=20
>> Il giorno 18/mag/2015, alle ore 23:34, Bruce Evans <brde@optusnet.com.au>=
 ha scritto:
>>=20
>> On Mon, 18 May 2015, Pedro Giffuni wrote:
>>=20
>>>> Il giorno 18/mag/2015, alle ore 20:48, Bruce Evans <brde@optusnet.com.a=
u> ha scritto:
>>>>=20
>>>>> On Mon, 18 May 2015, Pedro F. Giffuni wrote:
>>>>>=20
>>>>> Log:
>>>>> ddb: stop boolean screaming.
>>>>>=20
>>>>> TRUE --> true
>>>>> FALSE--> false
>>>>>=20
>>>>> Hinted by:	NetBSD
>>>>=20
>>>> This is not just churn to a style regression, but a type mismatch.
>>>=20
>>> It is an attempt to reduce differences with NetBSD.
>>=20
>> For that, apply the reverse change to NetBSD.
>=20
> Actually, the NetBSD code uses bool. (I hate CVS, commits are not atomic.)=

>=20
>>> 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.
>>=20
>> It is fairly well maintained (not churned to unimprove its portability).
>> Why would newcomers want too look at it?
>=20
> Unrelated fun: last year a student started adding support for CTF and pret=
ty printing of the kernel structures. I think the NetBSD guys have been havi=
ng fun with Lua.
>=20
>=20
>>>>> Modified: head/sys/ddb/db_break.c
>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D
>>>>> --- head/sys/ddb/db_break.c	Mon May 18 22:14:06 2015	(r2=
83087)
>>>>> +++ head/sys/ddb/db_break.c	Mon May 18 22:27:46 2015	(r2=
83088)
>>>>> @@ -155,12 +155,12 @@ db_find_breakpoint_here(db_addr_t addr)
>>>>> 	return db_find_breakpoint(db_map_addr(addr), addr);
>>>>> }
>>>>>=20
>>>>> -static boolean_t	db_breakpoints_inserted =3D TRUE;
>>>>> +static boolean_t	db_breakpoints_inserted =3D true;
>>>>=20
>>>> 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.
>>>=20
>>> Yes, I noticed the return types are still ints. It doesn=81ft look diffi=
cult
>>> to convert it to use a real boolean type.  In any case, I would prefer t=
o go
>>> forward (using bool) instead of reverting this change.
>>=20
>> That wuld be sideways.
>>=20
>> I forgot to mention (again) in my previous reply that boolean_t is a mist=
ake
>> 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.
>>=20
>> 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.
>=20
> OK, I do understand the kernel wants to keep the C dialect somewhat limite=
d,
> and adding stdbool.h doesn=81ft buy us any type safety here.
>=20
> I=81fll revert the change (prob. tomorrow though).

Too bad. You could just convert bool to an enum, add a compile-time assert, a=
nd chase down all of the -Werrors with clang...

... Nevermind. Not fun :(..=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?161C0DB1-E570-4A92-A98B-4098C510E96B>