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>
