Date: Thu, 20 Mar 1997 11:49:59 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: imp@village.org (Warner Losh) Cc: james@wgold.demon.co.uk, hackers@FreeBSD.ORG Subject: Re: Barb problem, FOUND Message-ID: <199703201849.LAA14080@phaeton.artisoft.com> In-Reply-To: <E0w7jaw-0002sI-00@rover.village.org> from "Warner Losh" at Mar 20, 97 08:17:28 am
next in thread | previous in thread | raw e-mail | index | archive | help
> : Just because a particular compiler is full of bugs doesn't mean that a > : construct allowed by the language spec is dubious. No way. > > I misspoke myself. There are several compilers that don't handle this > construct correctly. They generally don't whine about it, but they > generally do generate horrible code for this case. We saw a few years > ago that by removing the inline virtuals we had binaries that were > 500k! smaller. We also found with OI that lots of compilers had > subtle bugs with inline virtuals. > > Given all the problems that multiple compilers have implementing it > effectively, I think that it is as least unwise to use the construct. > In my book, that makes it dubious, but others will have a different > opinion. I remember when people were applying the same logic to dynamic scoping of stack variables: if( foo) { int my_dynamic_i; ... } Use of the register keyword on Lattice (later SASC) compilers: fum() { register int a, b, c, d, e, f; /* all the registers...*/ register int q; /* XXX reuses register 'a'!!!*/ } And use of bit fields, unsigned values. and enumerated types (which didn't work in so many odd ways that it's not worth going into). Oh yeah: don't use sbrk() because you can't brk() back to the OS... 8-P. The argument is without merit: if a compiler is buggy, it should be fixed, or the vendor should be forced out of business by word of mouth. Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703201849.LAA14080>