Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Dec 2020 15:58:53 +0100
From:      Steffen Nurpmeso <steffen@sdaoden.eu>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Kevin Bowling <kevin.bowling@kev009.com>, Ian Lepore <ian@freebsd.org>, Jessica Clarke <jrtc27@freebsd.org>, Mateusz Piotrowski <0mp@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r368714 - head/lib/libc/string
Message-ID:  <20201219145853.pLBGG%steffen@sdaoden.eu>
In-Reply-To: <X94M/cQuHwf0R%2B2E@kib.kiev.ua>
References:  <202012171241.0BHCfl1r008452@repo.freebsd.org> <X9tU0kTm9V6KoCRr@kib.kiev.ua> <686CF2E6-1D3C-4A83-A323-02CD9F536675@freebsd.org> <X9uFtba%2BjzVroNPV@kib.kiev.ua> <452cbb1060b7134315999c2323ed431714dc03fe.camel@freebsd.org> <CAK7dMtBP4L42-o01ohLoPdsRFV6yAiLjKREtDo_KL1ACWvA9qA@mail.gmail.com> <20201219135225.B6y3g%steffen@sdaoden.eu> <X94M/cQuHwf0R%2B2E@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Konstantin Belousov wrote in
 <X94M/cQuHwf0R+2E@kib.kiev.ua>:
 |On Sat, Dec 19, 2020 at 02:52:25PM +0100, Steffen Nurpmeso wrote:
 |> Kevin Bowling wrote in
 |>  <CAK7dMtBP4L42-o01ohLoPdsRFV6yAiLjKREtDo_KL1ACWvA9qA@mail.gmail.com>:
 |>|On Thu, Dec 17, 2020 at 9:33 AM Ian Lepore <ian@freebsd.org> wrote:
 |>|> On Thu, 2020-12-17 at 18:22 +0200, Konstantin Belousov wrote:
 |>|>> On Thu, Dec 17, 2020 at 01:01:01PM +0000, Jessica Clarke wrote:
 |>|>>> On 17 Dec 2020, at 12:53, Konstantin Belousov <kostikbel@gmail.com>
 |>|>>> wrote:
 |>|>>>> On Thu, Dec 17, 2020 at 12:41:47PM +0000, Mateusz Piotrowski
 |>|>>>> wrote:
 |>|>>>>> Author: 0mp (doc,ports committer)
 |>|>>>>> Date: Thu Dec 17 12:41:47 2020
 |>|>>>>> New Revision: 368714
 |>|>>>>> URL: https://svnweb.freebsd.org/changeset/base/368714
 |>  ...
 |>|>>>>> +       return (0);
 |>|>>>>
 |>|>>>> return (0) is redundand.
 |>  ...
 |>|>> Why it is bad practice ?
 |>|>>
 |>|>> C is a small language, and while knowing some quirks (like this one)
 |>|>> seems to be optional, others are not. And worse, that other quirks a=
re
 |>  ...
 |>|> How obscure is this quirk?  I've been writing C code since 1983,
 |>|> including having released a freeware compiler (pre-gcc days) and
 |>|> working on a commercial C compiler.  I used to moderate the c_language
 |>|> conference on BIX (back when that was a thing).  I make my living
 |>|> writing C and C++ code every day.  And yet, I had completely forgotten
 |>|> about this quirk.
 |>  ...
 |>|In Kib=E2=80=99s defense I think this is commonly mentioned in C99 book=
s \
 |>|(at least
 |>|that=E2=80=99s where I learned of it) so it depends on when and where s=
omeone
 |>|learned.  There are merits approaches of being explicit or brief.  I ha=
ve
 |>=20
 |> Nicely said.  K&R C 2nd Ed. explicitly uses return(0) many times.
 |
 |We are long after K&R in any of its form.
 |
 |My point was that the example if of very low quality, and return (0); is
 |an indicator.  Perhaps even more interesting point to make is the mix of
 |return from main() and exit(3) use in same 4 lines.  Besides inconsistenc=
y,
 |exit(3) from main() should probably not used in examples or recommended
 |to novices at all.

I .. cannot see this from the context above?

I personally use _?exit only if execution must not continue aka
control cannot be given back to code flow.
For me .. not.  C89 can be used here.  (It is annoying only for
field initializers, and there especially that the order must be
correct in C89 mode, when FIELD_INIT[IN]() expands to nothing.)

(Yes, one of the things i personally was out for was
restartability without leaks for at least development, ie, it was
only "fine" if one could have entered sf_main() multiple times
without causing problems.  This required "atexit_uninstall" and
two distinct priorities for exit handlers, and a clean order of
the "final" ones, also atcrash_uninstall, but it was nice to see
"SF: memcache empty!" messages in debug code, knowing it is nice.
Today i only do this a bit as i link other libraries anyway, and
everybody uses ctors and dtors and it is all dynamically linked,
.. and all that.)

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20201219145853.pLBGG%steffen>