Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Oct 2002 15:13:36 +0100
From:      Tony Finch <dot@dotat.at>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        Bruce Evans <bde@zeta.org.au>, Craig Rodrigues <rodrigc@attbi.com>, freebsd-standards@FreeBSD.ORG, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Problem detecting POSIX symbolic constants
Message-ID:  <20021012151336.A24868@chiark.greenend.org.uk>
In-Reply-To: <3DA7E0F4.5988CA77@mindspring.com>; from tlambert2@mindspring.com on Sat, Oct 12, 2002 at 01:44:36AM -0700
References:  <20021012171803.F15910-100000@gamplex.bde.org> <3DA7E0F4.5988CA77@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Oct 12, 2002 at 01:44:36AM -0700, Terry Lambert wrote:
> 
> I think the lack of "||" and "&&" mostly had to do with the fact
> that there was conditional evaluation of the RHS of the operator,
> based on the result of the LHS.
> 
> With just an "&" or an "|", you actually need a much less complicated
> state machine to evaluate a constant expression.  With the "||"/"&&",
> you almost have to do an edge associative operation, which implies a
> much more complex state machine for the preprocessor, I think.

No -- the short-circuiting behaviour of && and || only matters if
you can have side-effects, which you can't in the preprocessor,
so there is no need to implement it (unifdef doesn't).

Tony.
-- 
f.a.n.finch <dot@dotat.at> http://dotat.at/
THAMES DOVER: SOUTHEASTERLY VEERING NORTHWESTERLY 4 OR 5, OCCASIONALLY 6,
BECOMING VARIABLE 3. RAIN OR SHOWERS. MODERATE OR GOOD.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021012151336.A24868>