Skip site navigation (1)Skip section navigation (2)
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>