This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Configuration/Makefile cleanups
- To: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Subject: Re: Configuration/Makefile cleanups
- From: "Zack Weinberg" <zackw at Stanford dot EDU>
- Date: Wed, 8 Nov 2000 18:13:32 -0800
- Cc: gcc-patches at gcc dot gnu dot org
- References: <200011082225.RAA02415@caip.rutgers.edu>
On Wed, Nov 08, 2000 at 05:25:14PM -0500, Kaveh R. Ghazi wrote:
> > From: "Zack Weinberg" <zackw@stanford.edu>
> >
> > * configure.in: Use gcc_AC_PROG_YACC. Look for flex in the
> > unified tree, then use AC_PROG_LEX.
>
>
> I'm not sure we should use anything besides bison/flex. Otherwise we
> have the potential to cause subtle bugs which one cannot reproduce
> because a different yacc/lex was used by the person sending the
> bugreport.
I don't agree with this assessment.
> We already have this somewhat due to possible bison/flex
> version differences, but using entirely different programs makes it
> more likely IMHO.
First off, no code in GCC actually uses lex/flex. The infrastructure
is only there for additional front ends that might want it.
There have been no substantial changes to either bison or byacc for at
least two years. The specification of Yacc's behavior (ignoring
Bison-specific extensions) has not changed since 1994. Therefore, I
believe the probability of "subtle bugs due to different versions of
yacc/lex" is vanishingly small even if byacc is used instead of bison.
(It's worth pointing out that both byacc and bison implement dynamic
parser stacks - again, for at least the last two years.)
Furthermore, there's a significant minority of GCC users that hacks up
the Makefile so that byacc is used anyway. If it were going to be a
problem, we would've heard about it by now.
zw