Date: Mon, 1 Jan 2018 11:15:21 -0800 (PST) From: "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net> To: Warner Losh <imp@bsdimp.com> Cc: Larry McVoy <lm@mcvoy.com>, FreeBSD Hackers <freebsd-hackers@freebsd.org>, Poul-Henning Kamp <phk@phk.freebsd.dk> Subject: Re: Is it considered to be ok to not check the return code of close(2) in base? Message-ID: <201801011915.w01JFLS5087715@pdx.rh.CN85.dnsmgr.net> In-Reply-To: <CANCZdfpLpMo1gz0ZYX7i9wjS=TrMC1c_naHoHHkPnj%2BFnNBLEg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[ Charset UTF-8 unsupported, converting... ] > On Mon, Jan 1, 2018 at 10:55 AM, Rodney W. Grimes < > freebsd-rwg@pdx.rh.cn85.dnsmgr.net> wrote: > > > > On Mon, Jan 01, 2018 at 08:52:57AM -0800, Rodney W. Grimes wrote: > > > > > On Mon, Jan 01, 2018 at 04:14:33PM +0000, Poul-Henning Kamp wrote: > > > > > > But this is bikeshedding at this point anyway. > > > > > > > > > > +1 > > > > > > > > Bike shedding is good, people learn things from it. I never knew that > > > > assert was altered by NDEBUG for example, thanks for that enlightenment > > > > > > Um, does the FreeBSD man page not start like the Linux man page with > > > > > > If the macro NDEBUG was defined at the moment <assert.h> > > was last > > > included, the macro assert() generates no code, and hence does > > nothing > > > at all. > > > > > > ? > > > > It further says that an assert() appeared in V6, and I bet that NDEBUG > > didnt exist at that time. > > > http://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/assert.h says by > at least v7 it was there. The man page appears to be incorrect that it > appeared in V6 unix, as I can find no file named *assert* in the two > distributions available at TUHS, nor could grep turn up anything on assert > apart from: > > doc/c/c3:an assertion that when a construction of > > So it was definitely in V7 (I'll fix the man page), and had NDEBUG from the > start. Please do not do that, so far I have found in a v6 pwb: #define ASSERT(p) #ifdef debug #define ASSERT(p) if(!(p))botch("p");else botch(s) char *s; { printf("assertion botched: %s\n",s); abort(); } #endif Which is more of how I rember it being, not the presence of NDEBUG cleaning the code of asserts, but the lack of DEBUG. The online manual pages for v6 are abismal compared to the printed hard copies. I have a set in storage, I'll retrieve them and see what is there. -- Rod Grimes rgrimes@freebsd.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801011915.w01JFLS5087715>