Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 May 2015 00:28:05 -0500
From:      Pedro Giffuni <pfg@FreeBSD.org>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r283088 - head/sys/ddb
Message-ID:  <BA474AEC-A0A8-4FF8-8881-397E8280C72F@FreeBSD.org>
In-Reply-To: <20150519135341.R2157@besplex.bde.org>
References:  <201505182227.t4IMRljx078812@svn.freebsd.org> <20150519113755.U1840@besplex.bde.org> <406A7AE3-1891-4B2C-B917-14C150EBBAB5@FreeBSD.org> <20150519135341.R2157@besplex.bde.org>

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

> 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.au> 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.)

>> 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 =
pretty printing of the kernel structures. I think the NetBSD guys have =
been having fun with Lua.


>>>> 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	=
(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);
>>>> }
>>>>=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=E2=80=99t =
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.
>=20
> That wuld be sideways.
>=20
> 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.
>=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 =
limited,
and adding stdbool.h doesn=E2=80=99t buy us any type safety here.

I=E2=80=99ll revert the change (prob. tomorrow though).

Pedro.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BA474AEC-A0A8-4FF8-8881-397E8280C72F>